Registermaschine Programm

Ajjj tak

Newbie
Registriert
Juli 2024
Beiträge
3
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
 
Ersters passt vom Syntax . Bin aber selber verwirrt wo ich das jetzt einfügen sollte
Ergänzung ()

StefanArbe schrieb:
wo ist FakN definiert?

FakN: LOAD 1
FakN: LOAD*1 oder so?
Ersters passt vom Syntax . Bin aber selber verwirrt wo ich das jetzt einfügen sollte
 
das Problem liegt daran dass du
i) einfach nicht weisst was du machen sollst und
ii) das was du jetzt hast von irgendwo herbekommen hast ... da hat dir die KI das so schoen generiert und du bist immer noch so schlau wie vorher

Findest du das sinnvoll?

StefanArbe schrieb:
wo ist FakN definiert?
im Code ist es definiert
StefanArbe schrieb:
FakN: LOAD 1
FakN: LOAD*1 oder so?
was genau soll das machen? Wenn dann musst du MUL in einer Zeile nutzen fuer Mutliplikation statt einem infix * .
 
abcddcba schrieb:
i) einfach nicht weisst was du machen sollst und
Da hast du völlig Recht.
Das scheint eine Hausaufgabe zu sein und @Ajjj tak hat gar keine Ahnung.
abcddcba schrieb:
ii) das was du jetzt hast von irgendwo herbekommen hast ... da hat dir die KI das so schoen generiert und du bist immer noch so schlau wie vorher
Nein, da ist nicht von einer KI, sondern von
https://arbeitsplattform.bildung.hessen.de/fach/informatik/registermaschine.html
(das hat der TE so gestern in folgendem schon geschlossenen Thema so gepostet):

https://www.computerbase.de/forum/threads/registermaschine-programmieren.2201701/
 
Drexel schrieb:
Ja nur, dass der Thread-Ersteller gar nichts lernen möchte sondern nur den fertigen Code haben will:
Ist mir klar, aber vielleicht ist ein Spiel mehr Anreiz etwas zu lernen.
 
Zurück
Oben