Huhu
Ich habe mir kurz ein kleines Programm gebastelt für die Kombinatorik.
Es läuft alles gut, abgesehen davon, dass bei z.B. Permutation, n > 25 ein negativer Wert zurückgegeben wird.
Soweit ich weiss, müsste long Zahlen dieser Grösse locker ausgeben können. Damit ihr vielleicht den Fehler findet hier mal ein bisschen Code:
Diese Methode wird in der acitonPerformed()-Methode aufgerufen:
Ich habe eine kleine Klasse geschrieben, die Factorials (Fakultät) berechnet:
Permutation erbt dann Factiorial
Damit ihr seht was ich meine hab ich noch eine runnable exe angehängt. Wählt Permutation, gebt für n eine Zahl grösser 25 ein (z.B. 26 )
Mir ist völlig unklar, wiso da auf einmal negative Werte ausgegeben werden, hat jmd ne Idee?
Ich habe mir kurz ein kleines Programm gebastelt für die Kombinatorik.
Es läuft alles gut, abgesehen davon, dass bei z.B. Permutation, n > 25 ein negativer Wert zurückgegeben wird.
Soweit ich weiss, müsste long Zahlen dieser Grösse locker ausgeben können. Damit ihr vielleicht den Fehler findet hier mal ein bisschen Code:
Diese Methode wird in der acitonPerformed()-Methode aufgerufen:
Code:
public long getPossibilities(Calculation c, int n, int k){
return c.calculateWithoutRepetition(n, k);
}
Ich habe eine kleine Klasse geschrieben, die Factorials (Fakultät) berechnet:
Code:
public class Factorial {
final public long fact(int x){
long a = 1;
while(x>0){
a *= x;
x--;
}
return a;
}
}
Permutation erbt dann Factiorial
Code:
public class Permutation extends Factorial implements Calculation {
@Override
public int calculateWithRepetition(int n, int k) {
return 0;
}
@Override
public long calculateWithoutRepetition(int n, int k) {
return fact(n);
}
}
Damit ihr seht was ich meine hab ich noch eine runnable exe angehängt. Wählt Permutation, gebt für n eine Zahl grösser 25 ein (z.B. 26 )
Mir ist völlig unklar, wiso da auf einmal negative Werte ausgegeben werden, hat jmd ne Idee?