Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aoc2021:day24:start [26.12.2021 15:25] – [Reverse Engeneering] sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day24:start [26.12.2021 18:50] (aktuell) – [Zusammenfassung] sbel | ||
---|---|---|---|
Zeile 52: | Zeile 52: | ||
==== Was passiert also? ==== | ==== Was passiert also? ==== | ||
+ | |||
+ | Das Register '' | ||
=== Standardfall === | === Standardfall === | ||
('' | ('' | ||
+ | < | ||
+ | Ziffer(w) | ||
+ | Start | ||
+ | 3 | ||
+ | 2 | ||
+ | 4 | ||
+ | .... | ||
+ | </ | ||
+ | |||
+ | === Variante B === | ||
+ | |||
+ | Wenn auf die obige Folge nun Variante B angewendet wird, erhält man in Zeile 4 den zuletzt abgelegten Wert im Register '' | ||
< | < | ||
- | y z | + | z3 = (26*z2) + (4+ADD_TO_Y) % 26 -> (4+ADD_TO_Y) |
- | 0 0 | + | </ |
- | 7 7 | + | Außerdem wird z durch 26 dividiert, d.h. in '' |
- | 11 7*26 + 11 = | + | < |
+ | z4 = z3 % 26 -> (26*z2) | ||
+ | </ | ||
+ | In '' | ||
+ | |||
+ | Jetzt kommt es darauf an, ob die Bedingung | ||
+ | < | ||
+ | Vorige Ziffer + ADD_TO_Y - ADD_TO_X = aktuelle Ziffer | ||
</ | </ | ||
+ | |||
+ | erfüllt ist. Wenn ja, bleibt der Wert vom Stapel entfernt, wenn nein wird '' | ||
+ | |||
+ | (*) ist also die Bedingung, die erfüllt sein muss, damit der Stack kleiner wird. | ||
+ | |||
+ | ==== Zusammenfassung ==== | ||
+ | |||
+ | Im Puzzle-Input gibt es 7 Blöcke, die auf jeden Fall '' | ||
+ | |||