ich habe mal wieder eine kleine Aufgabe für mich gehabt. Ein Programm schreiben, dass mir den Binomialkoeffizienten berechnet. Natürlich kann man da sicher ein paar Verbesserungen finden, doch ich habe mal eine erste Version geschrieben. Wie wird der Binomialkoeffizient berechnet? Man nimmt einfach die Formel:
n! / (k! * (n - k)!)
Hier das Programm:
- Code: Alles auswählen
import java.lang.*;
import java.math.*;
public class Binomialkoeffizient {
public static void main(String[] args) {
System.out.println(fakultaet(new BigInteger("4")).toString());
System.out.println(binomial(new BigInteger("4"), new BigInteger("2")));
}
//berechnet die Fakultät einer Zahl
public static BigInteger fakultaet(BigInteger n) {
n.abs();
//speichert das Ergebnis und gibt das dann zurück
BigInteger erg = new BigInteger("1");
if(n.compareTo(new BigInteger("0")) != 0) {
//eine Schleife von 1 bis zur Zahl n wird durchgelaufen
//und dabei wird immer wieder multipliziert
BigInteger i = new BigInteger("1");
while(i.compareTo(n) <= 0) {
//das Ergebnis wird weiter multipliziert
erg = erg.multiply(i);
//und i um eines erhöht
i = i.add(new BigInteger("1"));
}
}
return erg;
}
//berechnet den Binomialkoeffizienten einer Zahl
public static BigInteger binomial(BigInteger n, BigInteger k) {
BigInteger erg;
erg = fakultaet(n).divide(fakultaet(k).multiply(fakultaet(n.subtract(k))));
return erg;
}
}
Falls ihr fragen habt, immer nur her damit
