expandierte Form des Ausdrucks (a+b)^n ausgeben
-
Sone schrieb:
Für Michael ist es ein Kinderspiel!
Wie doof muss ich erst sein?Das hat nichts mit Doofsein zu tun, sondern mit Übung mit den Binomialkoeffizienten. Das können nämlich ganz schön biestige Viecher sein. Naja, hier willst du ausgeben. Der erste Term ist 1 und jeden weiteren erhälst du durch Einsetzen der Definition: .
-
Michael E. schrieb:
.
Prinzipiell was ich "entdeckt" hab, oder?
-
Ja, wenn man a := k+1 setzt, steht da dasselbe.
-
Und was ist jetzt die Laufzeitklasse meiner letzten Version? Ist das schon O(n)?
Edit: Müsste es sein.. ist prinzipiell nur eine Schleife mit N Durchläufen.Da fällt mir auf, µ hätte mir, wie war das, "auf die Finger geschlagen", wenn ich über Laufzeitklassen rede...

-
Sone schrieb:
Und was ist jetzt die Laufzeitklasse meiner letzten Version? Ist das schon O(n)?
Edit: Müsste es sein.. ist prinzipiell nur eine Schleife mit N Durchläufen.Du hast es verstanden. Es sind 2 Schleifen mit N und N+1 Durchläufen, also insgesamt O(n+(n+1)+c) bzw. O(n).
Vollständiger Code:
std::cout << "1*a^0*b^" << n; for (int i=1, c=n; i<=n; c*=n-i,c/=++i) std::cout << " + " << c << "*a^"<< n-i << "*b^" << i; std::cout << '\n';
-
Ach klar, man kann natürlich auch ohne Pufferung machen...
