Hallo!
Ich möchte den Binomialkoeffizienten zweier Zahlen n und k rekursiv berechen.
Das funtkioniert mit folgendem Code:
Wenn jetzt dann aber binCoeff(n-1, k-1) ruft diese dann ja wiederum binCoeff(n-1,k-1) + binCoeff(n-1,k) auf, wodurch sich das ganze ebenfalls wiederholt.
Gleichzeitig würde ja auch der zweite Teil binCoeff(n-1,k) das selbe tun.
Mir ist klar, dass das solange geht bis k == 0 bzw k>n erreicht wird.
Das wäre dann bei n=3, k=0 das erste mal der Fall.(das aber nur beim ersten Ausdruck binCoeff(n-1,k-1))
Was genau passiert mit dem Wert 1 dann, der zurückgegeben wird? Womit wird dieser dann addiert? Bzw. wie funktioniert die Rekursion weiter?
Vielen Dank für eure Antworten gleich im Voraus!
Ich möchte den Binomialkoeffizienten zweier Zahlen n und k rekursiv berechen.
Das funtkioniert mit folgendem Code:
Code:
//BinomialKoeffizient n over k recursiv
static long binCoeff(long n, long k) {
if(k == 0) return 1;
else if(k>n) return 0;
else return binCoeff(n-1, k-1) + binCoeff(n-1, k);
Wenn jetzt dann aber binCoeff(n-1, k-1) ruft diese dann ja wiederum binCoeff(n-1,k-1) + binCoeff(n-1,k) auf, wodurch sich das ganze ebenfalls wiederholt.
Gleichzeitig würde ja auch der zweite Teil binCoeff(n-1,k) das selbe tun.
Mir ist klar, dass das solange geht bis k == 0 bzw k>n erreicht wird.
Das wäre dann bei n=3, k=0 das erste mal der Fall.(das aber nur beim ersten Ausdruck binCoeff(n-1,k-1))
Was genau passiert mit dem Wert 1 dann, der zurückgegeben wird? Womit wird dieser dann addiert? Bzw. wie funktioniert die Rekursion weiter?
Vielen Dank für eure Antworten gleich im Voraus!