Hallo liebe Forums Mitglieder,
ich habe ein Problem - ich soll ein Programm vervollständigen das den Binominalkoeffizient errechnen und den Überlauf verhindern unter Verwendung des ggT. Ich habe soweit auch das Programm geschrieben nur bekomme ich es nicht zum laufen. Ich wäre für jeden Tip dankbar.
sobald ich das in Eclipse oder auch mit der Konsole ausführe bekomme ich diese Meldung:
Ich wäre euch sehr dankbar wenn mir jemand sagen könnte ob ich mit dem Programm komplett auf dem Holzweg bin oder warum diese doof Fehlermeldung kommt. Die besagte Zeile habe ich mal hervorgehoben.
Beste Grüße
Dennis
ich habe ein Problem - ich soll ein Programm vervollständigen das den Binominalkoeffizient errechnen und den Überlauf verhindern unter Verwendung des ggT. Ich habe soweit auch das Programm geschrieben nur bekomme ich es nicht zum laufen. Ich wäre für jeden Tip dankbar.
Java:
public class Binom {
private static long binom(int m, int k) {
long binom = 1;
long i,fac;
long res = 1;
k = Math.min(k, m-k);
for ( i=1; i<=k; i++){
fac = m-i+1;
binom = Binom.ggT(fac, i);
res /= i/binom;
res *= fac/binom;
}
return binom;
}
private static long ggT(long a, long b) {
if (b==0){
return a;
}
else
{
return ggT(b, a%b);
}
}
public static void main(String[] args) {
[B] int m = Integer.parseInt(args[0]);[/B]
System.out.printf("%21d = %s%n", Long.MAX_VALUE, "Long.MAX_VALUE");
System.out.printf("%21d = %s%n", m, "m");
for (int k = 0; k <= m; ++k) {
System.out.printf("%21d = (%2d aus %2d)%n", binom(m,k), k, m);
}
}
}
sobald ich das in Eclipse oder auch mit der Konsole ausführe bekomme ich diese Meldung:
Java:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Binom.main(Binom.java:35)
Ich wäre euch sehr dankbar wenn mir jemand sagen könnte ob ich mit dem Programm komplett auf dem Holzweg bin oder warum diese doof Fehlermeldung kommt. Die besagte Zeile habe ich mal hervorgehoben.
Beste Grüße
Dennis