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:22] – [Betrachtung der Unterschiede und Auswirkungen] sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day24:start [26.12.2021 18:50] (aktuell) – [Zusammenfassung] sbel | ||
---|---|---|---|
Zeile 30: | Zeile 30: | ||
14 mul y 0 mul y 0 | 14 mul y 0 mul y 0 | ||
15 add y w add y w | 15 add y w add y w | ||
- | 16 add y 6 add y 12 (ADD_TO_Y) | + | 16 add y 6 add y 12 (ADD_TO_Y) |
17 mul y x mul y x | 17 mul y x mul y x | ||
18 add z y add z y | 18 add z y add z y | ||
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 '' | ||
+ | |||