Der schnellste Weg ist wahrscheinlich, die Formel zu verwenden, und nicht pascals Dreieck. Lass uns anfangen, keine Multiplikationen zu machen, wenn wir wissen, dass wir später durch die gleiche Zahl teilen werden. Wenn k < n/2, haben wir k = n - k.Wir wissen, dass C (n, k) = C (n, n-k) Jetzt:
n!/(k! x (n-k)!) = (product of numbers between (k+1) and n)/(n-k)!
Zumindest mit dieser Technik sind Sie nie durch eine Zahl dividiert, die Sie vor multiplizieren verwendet. Sie haben (n-k) Multiplikationen und (n-k) Divisionen.
Ich denke über einen Weg nach, alle Spaltungen zu vermeiden, indem wir GCDs zwischen den Zahlen finden, die wir multiplizieren müssen, und denen, die wir teilen müssen. Ich werde versuchen, später zu bearbeiten.
Faktorielle Berechnung ist viel effizienter als Ihre rekursive Alternative in Raum und Zeit – SomeWittyUsername
Nun, für den Anfang können Sie ersetzen 'n!/K!' Mit 'n * (n-1) * (n-2) * ... * (k + 1) 'Es gibt keinen Punkt, wenn' n! 'und' k! 'vollständig berechnet werden, wenn sich viele der Faktoren ausgleichen. –
Welchen Bereich von n erwägen Sie? –