Binominalkoeffizient rekursiv selber berechnen, wie soll das genau gehen? (java)?

2 Antworten

kennst du google ? musst du lernen als programmierer , den das wurde alles schon mal gelösst https://www.google.com/search?q=Binominalkoeffizient+rekursiv+java

erstes ergebnis :

https://www.java-forum.org/thema/binomialkoeffizient-rekursiv-berechnen.94228/

das sind ja alles nur mathematische probleme , sollen ja auch nur trainieren , brauch man dann später weniger . ich finde solche aufgaben irgendwie nie nett . hindern einen das programmieren zu lernen weil man ewig auf die mathe runtergebrochen wird . aber da hat jeder prof etc sein eigenen vorstellungen . finde ich sortierungen etc schon besser um rekursionen zu lernen, da es auch sehr komplex werden kann bei mathematischen problemen .


jdqwio2 
Beitragsersteller
 24.10.2021, 17:16

Ach ne sorry bei mir hat die Seite nur gehangen, die haben das doch normal berechent

jdqwio2 
Beitragsersteller
 24.10.2021, 17:15

Das sollten wir eig. auch nicht rekursiv lösen, unser Prof meinte nur dass es geht und man sich ja mal Gedanken machen kann. Aber im Internet nutzen auch alle die vorgefertigte Methode von java

jdqwio2 
Beitragsersteller
 24.10.2021, 17:14

Aber da wird der Binomialkoeffizient auch ncith rekursiv berechent, sondern die nutzen eine schon vorgefertigte methode, die Java zur Verfügung stellt

Schönen guten Abend,

Leider kann ich Java nur sehr schlecht, für solche Berechnungen nutze ich meistens Python. Deine Aufgabe wird also sein, folgenden Algorithmus in Java zu schreiben.

Ich gehe davon aus, dass die Fakultät rekursiv berechnet werden soll. Daher habe ich 2 Funktionen verwendet. Erstere fk berechnet rekursiv die Fakultät der übergebenen Zahl, zweitere bk errechnet zunächst mithilfe von fk die Fakultät und berechnet daraus anschließend den Binomialkoeffizienten.

def fk(n):
  return 1 if n == 0 else n * fk(n - 1)

def bk(n, k):
  return fk(n) / (fk(k) * fk(n - k))

print(bk(3, 1))

In diesem Falle wird der Binomialkoeffizient von 3 über 1 berechnet. Du könntest den Code auch dahingehend erweitern, dass keine negativen Zahlen übergeben werden dürfen.

LG