Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aoc2021:day24:start [26.12.2021 14:21] – [Reverse Engeneering] sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day24:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Tag 24: Arithmetic Logic Unit ====== | ||
- | |||
- | ===== Untersuchung des Problems ===== | ||
- | |||
- | Zunächst kann man einen Parser implementieren, | ||
- | |||
- | Man wird sehr wahrscheinlich erkennen, dass der Wert des z-Registers - scheinbar unabhängig von der eingegebenen Modellnummer - immer größer wird. | ||
- | |||
- | Der Versuch, alle denkbaren Modellnummern in der so geschaffenen ALU durch das Programm prüfen zu lassen, schlägt (zumindest mit Java) fehl, da die Eingabemenge mit 10< | ||
- | |||
- | ===== Reverse Engeneering ===== | ||
- | |||
- | Man sollte sich also als nächstes den als Puzzle-Input gegebenen Code ansehen. Bei einer ersten Analyse fällt auf, dass die 14 Segmente, die jeweils von einem '' | ||
- | < | ||
- | Variante A | ||
- | |||
- | 1 inp w inp w | ||
- | 2 mul x 0 mul x 0 | ||
- | 3 add x z add x z | ||
- | 4 mod x 26 mod x 26 | ||
- | 5 div z 1 div z 26 | ||
- | 6 add x 11 add x -5 | ||
- | 7 eql x w eql x w | ||
- | 8 eql x 0 eql x 0 | ||
- | 9 mul y 0 mul y 0 | ||
- | 10 add y 25 add y 25 | ||
- | 11 mul y x mul y x | ||
- | 12 add y 1 add y 1 | ||
- | 13 mul z y mul z y | ||
- | 14 mul y 0 mul y 0 | ||
- | 15 add y w add y w | ||
- | 16 add y 6 add y 12 | ||
- | 17 mul y x mul y x | ||
- | 18 add z y add z y | ||
- | </ | ||
- | |||
- | Unterschiede: | ||
- | |||
- | * In Zeile 5 taucht wahlweise '' | ||
- | * In Zeile 6 wird mit '' | ||
- | * (1) ''< | ||
- | * (2) ''< | ||
- | * In Zeile 16 unterscheidem sich die Anweisungen in der Zahl, die hier mit dem Befehl '' | ||
- | |||