Aufgabe: Binomialkoeffizient

Fragen zu Java hier rein.

Aufgabe: Binomialkoeffizient

Beitragvon keyes » Fr 2. Okt 2009, 18:00

Hallo Leute,

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 :)
Try to live every day as though it were your last. Make the
most of every day and accomplish something. Even if it is
something small, every baby step adds up to a huge success
in the end.
keyes
 
Beiträge: 20
Registriert: Mo 15. Jun 2009, 13:48

Zurück zu Java

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron