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 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
Advent des Codes 2019 Serie
- Advent of Code 2019 hat begonnen - Machen Sie mit!
- Advent of Code 2019 - Tag 2
- Advent des Codes: Wie Excel mir den Tag rettete und auch meinem Sohn den Tag rettete
- Advent des Codes - Tag 4: Visualisieren
- Advent des Codes - Tag 5: Saintaerkla2s
- Advent of Code - Tag 6: Wie ich an AoC hängen geblieben bin
- Advent of Code - Tag 7: Teilen Sie Ihren Arbeitsablauf
- Advent of Code - Tag 8: Wie einfache Dinge für manche Menschen sehr schwer sein können
- Advent of Code - Tag 9: Wie ich anfing, Spaß am Lösen von Programmierrätseln zu haben
- Advent of Code - Tag 10: Weltraum-Cowboys schießen Pixel in den Himmel
- Advent des Codes - Tag 11: Sein oder nicht sein
- Advent of Code - Tag 12: Nach dem Mond schießen
- Advent des Codes - Tag 14: Kettenreaktion
- Advent des Codes - Tag 16: Flüche
- Advent of Code - Tag 17: Vakuumieren eines Gerüsts mit dem Intcode-Programm
- Wie kleine grüne Männchen mir geholfen haben, ein Rätsel zu lösen
- Advent of Code - Tag 20: Ein bisschen Überarbeitung
- Advent of Code - Tag 21: Es ist ein Marathon, kein Sprint
- Advent of Code - Tag 22: Mischen von Karten bis in alle Ewigkeit
- Advent of Code - Tag 23: Das Netzwerk ist zuverlässig
- Advent of Code - Tag 24 & 25: Unkonventionelles Denken
Verfasst von
Jochem Schulenklopper
Contact