Blog

Advent des Codes, Tag 14: Kettenreaktion

Jochem Schulenklopper

Aktualisiert Oktober 21, 2025
5 Minuten

Auch wenn die Kreativität von Eric Wastl groß genug ist, um die Leute bei #XebiaAoC regelmäßig zu überraschen, gibt es einige Rätsel in #AdventOfCode, die Erinnerungen an frühere Herausforderungen wecken. Beim Lesen des heutigen Advent of Code-Rätsels wurden sofort Erinnerungen an eines der schwierigeren Rätsel von 2015 wach.

Bei dem heutigen Rätsel ging es darum, die benötigten Ausgangsstoffe zu finden, um eine ausreichende Menge an Treibstoff zu erhalten. Die Eingabe des Rätsels war eine Liste von Formeln, die chemische Reaktionen beschreiben, bei denen Ausgangsstoffe in andere Stoffe umgewandelt werden. Die Herausforderung bestand darin, die richtige Menge an Ausgangsmaterial zu finden, um eine Einheit Treibstoff zu produzieren, indem man die Umwandlung dieses Ausgangsmaterials durch eine Reihe von Kettenreaktionen verfolgt. Nicht ganz originell, aber auf jeden Fall eine witzige Abwechslung, da bestimmte Mengen an Materialien benötigt werden.

Es ist eine schöne Erinnerung daran, dass man oft genau die richtige Menge an Ausgangsmaterial braucht, um dieses in obskure, neuartige und neue Komponenten umzuwandeln und am Ende einen wünschenswerten Stoff zu erhalten.

Das weckt Erinnerungen an den Hit "Chain Reaction", gesungen von Diana Ross. Der Song entstand aus einer großen Portion Talent beim Songwriting, der Umsetzung komplexer Akkordfolgen und cleverer Tonartwechsel (von B zu Db zu D sowohl im ersten als auch im zweiten Refrain und ein Wechsel von B zu Eb in Richtung E im letzten Refrain), die schließlich zu einem lustigen Song kombiniert wurden, der von einer hervorragenden Sängerin und Musikern vorgetragen wurde. Übrigens wurde der Song von den Bee Gees geschrieben und produziert, die auch den Background-Gesang beisteuerten. Vielleicht gefällt er Ihnen aber nicht, da er sehr tanzbar und peppig ist. Dann werden Sie vermutlich auch die Musik von Motown nicht mögen, denn Chain Reaction ist eine Hommage an diesen Stil.

Was lustig ist, denn viele Leute mochten dieses Rätsel im Dezember 2015 auch nicht. Wie ich schon sagte, lieferte Advent of Code an Tag 19 im Dezember 2015 das schwierigste Rätsel des Jahres 2015 und eines der schwierigsten Rätsel in Advent of Code überhaupt.

Wie können wir das wissen? Nun, eine Kennzahl, die einen Hinweis auf die Schwierigkeit eines Rätsels gibt, ist die Zeit, die hundert konkurrierende Programmierer für die Lösung des Rätsels benötigen. Im Durchschnitt werden die meisten Rätsel von den ersten hundert Personen in etwa 30 Minuten gelöst. Am 19. Dezember 2015 benötigte der hundertste Programmierer mehr als 3 Stunden und 50 Minuten, um beide Teile zu lösen und übertraf damit jedes andere Rätsel im Jahr 2015.

Wie können wir die Schwierigkeiten von Rätseln leicht vergleichen? Ich verweise oft auf eine Visualisierung von Maurits van der Schee, einem Xebia-Alumnus. Seine Scatterplot-Visualisierungen, inspiriert von einem Beispiel von Michael Fogleman, zeigen die ersten hundert Programmierer, die den ersten und zweiten Teil jedes täglichen Rätsels lösen, als Feuerwerksexplosion. Je mehr Zeit die Leute brauchen, um ein Rätsel zu lösen, desto höher wird das Feuerwerk am Himmel platziert. Es ist klar, dass Tag 19 des Jahres 2015 das Feuerwerk höher in den Himmel schickte als je zuvor.

Maurits aktualisiert die Streudiagramme regelmäßig, so dass es einfach ist, die Puzzles innerhalb eines Jahres, aber auch über die Jahre hinweg zu vergleichen. Beachten Sie jedoch, dass der letzte Vergleich nicht ganz so zuverlässig ist, da die Anzahl der Teilnehmer im Laufe der Jahre variiert und 2019 definitiv mehr (wettbewerbsfähige) Programmierer mitmachen als 2015. Ein Beispiel dafür ist, dass Tag 1 im Jahr 2015 von etwas mehr als 40.000 Personen gelöst wurde, aber Tag 1 im Jahr 2019 wurde bereits von fast 80.000 Personen gelöst.

Und schließlich, wollen Sie von weiteren Kettenreaktionen überrascht werden? Dann suchen Sie bei Google, Bing oder DuckDuckGo nach "Rube Goldberg machine". Eine Rube-Goldberg-Maschine ist so konzipiert, dass sie eine einfache Aufgabe auf indirekte und übermäßig komplizierte Weise ausführt. Oft bestehen die Maschinen aus einer Reihe von einfachen Vorrichtungen, bei denen eine Aktion die nächste auslöst, so dass schließlich das Ziel der Maschine erreicht wird. Zwei der besseren Apparate, die ich kenne, stammen von OK Go und Honda. Genießen Sie es, diese Kettenreaktionen zu beobachten und staunen Sie über das Talent und die Handwerkskunst der Hersteller.

Advent des Codes 2019 Serie

Verfasst von

Jochem Schulenklopper

Contact

Let’s discuss how we can support your journey.