Ich soll den BinomialKoeffizient berechnen , folgendes hab ich nur funktioniert es nicht kommt immer ein falsches Ergebnis raus
Berechnung des Binomialkoeffizienten (n über k)
//
// Registerbelegung
// Eingabe:
// R1 = n
// R2 = k
// Verarbeitung:
// R3 = Zwischenergebnis n!
// R4 = Zwischenergebnis k!
// R5 = Zwischenergebnis (n-k)!
// R6 = Zwischenergebnis Binomialkoeffizient
// Ausgabe:
// R0 = Binomialkoeffizient
// Sonderfälle k = 0 oder k = n
LOAD 2
JZERO SpecialCase
LOAD 1
SUB 2
JZERO SpecialCase
// Berechnung von n!
InitN: LOAD 1
STORE 3
FakN: LOAD 1
SUB #1
JZERO CalcK
STORE 1
MUL 3
STORE 3
GOTO FakN
// Berechnung von k!
CalcK: LOAD 2
SUB #1
JNZERO InitK
LOAD #1
STORE 4
GOTO CalcNK
InitK: LOAD 2
STORE 4
FakK: LOAD 2
SUB #1
JZERO CalcNK
STORE 2
MUL 4
STORE 4
GOTO FakK
// Berechnung von (n-k)!
CalcNK: LOAD 1
SUB 2
STORE 7 // (n-k) in Register 7 speichern
SUB #1
JNZERO InitNK
LOAD #1
STORE 5
GOTO Binom
InitNK: LOAD 7
STORE 5
FakNK: LOAD 7
SUB #1
JZERO Binom
STORE 7
MUL 5
STORE 5
GOTO FakNK
// Berechnung des Binomialkoeffizienten n! / (k! * (n-k)!)
Binom: LOAD 3
DIV 4
DIV 5
STORE 6
GOTO Ende
// Sonderfälle k = 0 oder k = n
SpecialCase: LOAD #1
STORE 6
Ende: LOAD 6
END
Berechnung des Binomialkoeffizienten (n über k)
//
// Registerbelegung
// Eingabe:
// R1 = n
// R2 = k
// Verarbeitung:
// R3 = Zwischenergebnis n!
// R4 = Zwischenergebnis k!
// R5 = Zwischenergebnis (n-k)!
// R6 = Zwischenergebnis Binomialkoeffizient
// Ausgabe:
// R0 = Binomialkoeffizient
// Sonderfälle k = 0 oder k = n
LOAD 2
JZERO SpecialCase
LOAD 1
SUB 2
JZERO SpecialCase
// Berechnung von n!
InitN: LOAD 1
STORE 3
FakN: LOAD 1
SUB #1
JZERO CalcK
STORE 1
MUL 3
STORE 3
GOTO FakN
// Berechnung von k!
CalcK: LOAD 2
SUB #1
JNZERO InitK
LOAD #1
STORE 4
GOTO CalcNK
InitK: LOAD 2
STORE 4
FakK: LOAD 2
SUB #1
JZERO CalcNK
STORE 2
MUL 4
STORE 4
GOTO FakK
// Berechnung von (n-k)!
CalcNK: LOAD 1
SUB 2
STORE 7 // (n-k) in Register 7 speichern
SUB #1
JNZERO InitNK
LOAD #1
STORE 5
GOTO Binom
InitNK: LOAD 7
STORE 5
FakNK: LOAD 7
SUB #1
JZERO Binom
STORE 7
MUL 5
STORE 5
GOTO FakNK
// Berechnung des Binomialkoeffizienten n! / (k! * (n-k)!)
Binom: LOAD 3
DIV 4
DIV 5
STORE 6
GOTO Ende
// Sonderfälle k = 0 oder k = n
SpecialCase: LOAD #1
STORE 6
Ende: LOAD 6
END