Wie berechne ich den Binomialkoeffizienten
-
Hallo zusammen!
Ich will in einem Programm einen Binomialkoeffizienten bestimmen.
Leider habe ich bisher keine Funktion gefunden, die das für mich macht, also wollte ich selber etwas schreiben, was diese Aufgabe erfüllt.
Es scheitert allerdings schon bei der Fakulttätsberechnung.Hier mal mein Code:
int n, k, x, m; long y; main () { y = 1; n = 5; k = 2; m = 20; while(m!=0){ y*=m; m--; printf("%ld--%i\n",y,m); } }
Das Problem ist, dass ich für y schon bei Werten von >=20 völlig abstruse Ergebnisse bekomme. Für y habe ich "long" "double" und "long long" ausprobiert, aber nichts führte zum gewünschten Ergebnis.
Meine Frage lautet also: Kennt jemand eine Möglichkeit, wie ich in C den Binomialkoeffizenten berechnen kann, oder wenn nicht, wie muss ich y deklarieren, dass ich ohne weiteres "100!" berechnen kann.Danke schon mal jetzt für eure Hilfe
-
z.b. so: http://de.wikipedia.org/wiki/Binomialkoeffizient#Algorithmus_zur_effizienten_Berechnung
Wobei das nur eine Möglichkeit von vielen ist, Binomialkoeffizienten zu berechnen.