Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. ioBroker Advent of Code

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill lĂ€uft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • MonatsrĂŒckblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

ioBroker Advent of Code

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
86 BeitrÀge 12 Kommentatoren 12.4k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bluegaspodeB bluegaspode

    @haus-automatisierung

    Und, wer von euch hat auch initial 'Brute Force' verwendet und spĂ€ter noch die alten SchulbĂŒcher aufgemacht, wie die Formel x^2 +bx +c aufgelöst wird?

    😀

    BananaJoeB Online
    BananaJoeB Online
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von
    #49

    @bluegaspode sagte in ioBroker Advent of Code:

    Und, wer von euch hat auch initial 'Brute Force' verwendet

    Ich ... musste eh gerade hoch zum Essen machen, hatte gesehen das er nach 20 Sekunden den Start gefunden hatte und dachte mir "ist bestimmt fertig wenn ich in nach dem Essen wieder runter komme".

    Hatte mir zwar wĂ€hrend des Essen eine AbkĂŒrzung ĂŒberlegt (Mit verdoppelt und halbieren als Feinsuche) ... aber schön wenn es auch mal schnell ging.
    In meiner Formelsammlung aus der Realschule 1985-1989 habe ich x^2 +bx +c nicht gefunden, in der Lehre habe ich ein paar Sinuskurven mal berechnet ... https://www.lernhelfer.de/schuelerlexikon/mathematik/artikel/quadratische-funktionen

    ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    bluegaspodeB 1 Antwort Letzte Antwort
    0
    • BananaJoeB BananaJoe

      @bluegaspode sagte in ioBroker Advent of Code:

      Und, wer von euch hat auch initial 'Brute Force' verwendet

      Ich ... musste eh gerade hoch zum Essen machen, hatte gesehen das er nach 20 Sekunden den Start gefunden hatte und dachte mir "ist bestimmt fertig wenn ich in nach dem Essen wieder runter komme".

      Hatte mir zwar wĂ€hrend des Essen eine AbkĂŒrzung ĂŒberlegt (Mit verdoppelt und halbieren als Feinsuche) ... aber schön wenn es auch mal schnell ging.
      In meiner Formelsammlung aus der Realschule 1985-1989 habe ich x^2 +bx +c nicht gefunden, in der Lehre habe ich ein paar Sinuskurven mal berechnet ... https://www.lernhelfer.de/schuelerlexikon/mathematik/artikel/quadratische-funktionen

      bluegaspodeB Offline
      bluegaspodeB Offline
      bluegaspode
      schrieb am zuletzt editiert von
      #50

      @bananajoe das ist aber eine lange Laufzeit.
      Meine Lösung, die stur alles durchprobiert ist auch fĂŒr Teil 2 in kleiner einer Sekunde durch.

      Ohne Optimierung und nix, nur durchprobieren und rechnen.

      haus-automatisierungH BananaJoeB 2 Antworten Letzte Antwort
      0
      • bluegaspodeB bluegaspode

        @bananajoe das ist aber eine lange Laufzeit.
        Meine Lösung, die stur alles durchprobiert ist auch fĂŒr Teil 2 in kleiner einer Sekunde durch.

        Ohne Optimierung und nix, nur durchprobieren und rechnen.

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #51

        @bluegaspode sagte in ioBroker Advent of Code:

        Meine Lösung, die stur alles durchprobiert ist auch fĂŒr Teil 2 in kleiner einer Sekunde durch.

        Ja, hier auch. Daher gar keine weiteren Gedanken gemacht... :)

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        đŸŽ„ Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        1 Antwort Letzte Antwort
        0
        • bluegaspodeB bluegaspode

          @bananajoe das ist aber eine lange Laufzeit.
          Meine Lösung, die stur alles durchprobiert ist auch fĂŒr Teil 2 in kleiner einer Sekunde durch.

          Ohne Optimierung und nix, nur durchprobieren und rechnen.

          BananaJoeB Online
          BananaJoeB Online
          BananaJoe
          Most Active
          schrieb am zuletzt editiert von
          #52

          @bluegaspode sagte in ioBroker Advent of Code:

          Meine Lösung, die stur alles durchprobiert ist auch fĂŒr Teil 2 in kleiner einer Sekunde durch.

          Ich nutze AutoIt, das performt ggf. nicht so gut

          ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          1 Antwort Letzte Antwort
          1
          • haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #53

            Gestern (Tag 7) habe ich probiert den Teil 2 vorauszuahnen und die Logik so gebaut, dass noch die Wertigkeit der einzelnen Treffer (also AAA wĂ€re höher gewertet als KKK) berĂŒcksichtigt wird. Fazit: War Quatsch und zu kompliziert :) Also wieder vereinfacht.

            • Vorher: https://github.com/klein0r/advent-of-code-2023/blob/60780a67f4eba378f7a522b34b3dd3a110e4f45c/day-07/index.js
            • Nachher: https://github.com/klein0r/advent-of-code-2023/blob/299c79fccfdd4b23e4873a89cd9021b54c5475a0/day-07/index.js

            Habt ihr auch mit Bitmasken gearbeitet um die Wertigkeit der Typen festzulegen?

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            đŸŽ„ Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • I Offline
              I Offline
              ignis-draco
              schrieb am zuletzt editiert von
              #54

              Ich habe das ĂŒber ein enum gelöst

              class Strong(IntEnum):
                HIGH_CARD = 0
                ONE_PAIR = 1
                TWO_PAIR = 2
                THREE_OF_A_KIND = 3
                FULL_HOUSE = 4
                FOUR_OF_A_KIND = 5
                FIVE_OF_A_KIND = 6
              
                @classmethod
                def maxKind(self, value):
                  if value == self.FIVE_OF_A_KIND:
                    return 5 
                  if value == self.FOUR_OF_A_KIND:
                    return 4
                  if value == self.THREE_OF_A_KIND or value == self.FULL_HOUSE:
                    return 3
                  if value == self.ONE_PAIR or value == self.TWO_PAIR:
                    return 2 
                  return 1
                
                @classmethod
                def addOneKind(self, value):
                  if value == self.FIVE_OF_A_KIND:
                    return self.FIVE_OF_A_KIND
                  if value == self.FOUR_OF_A_KIND:
                    return self.FIVE_OF_A_KIND
                  if value == self.THREE_OF_A_KIND or value == self.FULL_HOUSE:
                    return self.FOUR_OF_A_KIND
                  if value == self.ONE_PAIR or value == self.TWO_PAIR:
                    return self.THREE_OF_A_KIND
                  return self.ONE_PAIR
              

              Proxmox [DMAF5] = LXC [Debian 12]
              ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

              1 Antwort Letzte Antwort
              1
              • haus-automatisierungH haus-automatisierung

                Gestern (Tag 7) habe ich probiert den Teil 2 vorauszuahnen und die Logik so gebaut, dass noch die Wertigkeit der einzelnen Treffer (also AAA wĂ€re höher gewertet als KKK) berĂŒcksichtigt wird. Fazit: War Quatsch und zu kompliziert :) Also wieder vereinfacht.

                • Vorher: https://github.com/klein0r/advent-of-code-2023/blob/60780a67f4eba378f7a522b34b3dd3a110e4f45c/day-07/index.js
                • Nachher: https://github.com/klein0r/advent-of-code-2023/blob/299c79fccfdd4b23e4873a89cd9021b54c5475a0/day-07/index.js

                Habt ihr auch mit Bitmasken gearbeitet um die Wertigkeit der Typen festzulegen?

                BananaJoeB Online
                BananaJoeB Online
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von
                #55

                @haus-automatisierung sagte in ioBroker Advent of Code:

                Habt ihr auch mit Bitmasken gearbeitet um die Wertigkeit der Typen festzulegen?

                Maximal kompliziert mit Zerlegen in Arrays (die Zeilen und die KartensÀtze), Textvergleich in der Reihenfolge der Kartenwertigkeit und Feststellung ob es nun ein 5er, 4er, Full House usw. ist und zuweisen eines Wertes je nach Treffer, anhand diesen Wertes die Wertigkeit der KartensÀtze festgelegt, festgestellt das ich damit meine Liste genau falsch herum aufgebaut habe. Nach dem Umdrehen der Liste waren aber auch innerhalb eines Wertes (z.B. Full House) die Reihenfolge nun falsch herum war ... aber nicht immer. Um mir dann bei einem anderen die Idee mit "Suchen und Ersetzen" abzuschauen und die neuen Buchstaben dann zu sortieren damit die Wertigkeit der einzelnen Karten Alphabetisch wird. Dann kam der Einfall PrÀfixe zu setzen damit ich das einfach nach Text sortieren kann.

                Da hat man dann seine 200 Zeilen Lösung und staunt wie kurz andere das hinbekommen mit Funktionen die ich noch nie benutzt habe.

                ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                1 Antwort Letzte Antwort
                1
                • haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #56

                  Teil 2 heute nervt mal richtig :) Durchrechnen dauert ewig... Wollte mal gucken wie hoch das Ergebnis ungefÀhr liegt und habe 10000000000000 eingegeben. "Answer too low". Oha...

                  Heute Abend mal mehr Gedanken machen wie das klappen könnte.

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  đŸŽ„ Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    Teil 2 heute nervt mal richtig :) Durchrechnen dauert ewig... Wollte mal gucken wie hoch das Ergebnis ungefÀhr liegt und habe 10000000000000 eingegeben. "Answer too low". Oha...

                    Heute Abend mal mehr Gedanken machen wie das klappen könnte.

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #57

                    @haus-automatisierung

                    hah, teil2, hat ein weilchen gedauert, aber es geht dann schnell
                    hier mit spoiler.
                    meine zahl ist 13133452426987.
                    da hÀtte er ein weilchen gerechnet (monate?)


                    den algoritmus aus teil1 fĂŒr jeden einzelnen start bis ende pfad durchrechnen und dann den kleinsten gemeinsamen vielfachen fĂŒr alle durchlĂ€ufe finden
                    alle ergebnisse fĂŒr jeden durchlauf hier komma-separiert eintragen
                    https://www.matheretter.de/rechner/kgv

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    haus-automatisierungH bluegaspodeB 2 Antworten Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @haus-automatisierung

                      hah, teil2, hat ein weilchen gedauert, aber es geht dann schnell
                      hier mit spoiler.
                      meine zahl ist 13133452426987.
                      da hÀtte er ein weilchen gerechnet (monate?)


                      den algoritmus aus teil1 fĂŒr jeden einzelnen start bis ende pfad durchrechnen und dann den kleinsten gemeinsamen vielfachen fĂŒr alle durchlĂ€ufe finden
                      alle ergebnisse fĂŒr jeden durchlauf hier komma-separiert eintragen
                      https://www.matheretter.de/rechner/kgv

                      haus-automatisierungH Online
                      haus-automatisierungH Online
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #58

                      @oliverio Jau habe ich mittlerweile auch so umgesetzt 🙃 19ms

                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                      đŸŽ„ Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                      📚 Meine inoffizielle ioBroker Dokumentation

                      1 Antwort Letzte Antwort
                      0
                      • BananaJoeB Online
                        BananaJoeB Online
                        BananaJoe
                        Most Active
                        schrieb am zuletzt editiert von
                        #59

                        Ich fĂŒrchte ich brĂ€uchte mal einen Tipp in die richtige Richtung. Ich habe auch schon auf Reddit gelesen das LCM bzw. die Multiplikation der Pfade mein Freund ist, mich durch diverse Seiten gehangelt welche das zu versuchen zu erklĂ€ren. Aber ich verstehe trotzdem nur Bahnhof.

                        ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                        bluegaspodeB 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @haus-automatisierung

                          hah, teil2, hat ein weilchen gedauert, aber es geht dann schnell
                          hier mit spoiler.
                          meine zahl ist 13133452426987.
                          da hÀtte er ein weilchen gerechnet (monate?)


                          den algoritmus aus teil1 fĂŒr jeden einzelnen start bis ende pfad durchrechnen und dann den kleinsten gemeinsamen vielfachen fĂŒr alle durchlĂ€ufe finden
                          alle ergebnisse fĂŒr jeden durchlauf hier komma-separiert eintragen
                          https://www.matheretter.de/rechner/kgv

                          bluegaspodeB Offline
                          bluegaspodeB Offline
                          bluegaspode
                          schrieb am zuletzt editiert von
                          #60

                          @oliverio Das klappt aber nur, weil der Input das 'zufÀllig' erlaubt.

                          Ich bin gar nicht auf die Idee Idee gekommen und hab daher gar nicht dran gedacht.

                          Mal als Beispiel, wo der Ansatz nicht klappt :

                          Kette A: 3 Schritte bis zum ersten Z, 20 Schritte bis zu einem anderen Z, 3 Schritte zurĂŒck zum ersten Z.

                          Kette B: 2 Schritte bis zum ersten Z, 7 Schritte zurĂŒck zum ersten Z.

                          Dein kGV wÀre dann 6. Nach 6 Schritten treffen sich die Geister aber gar nicht.

                          Gibt grĂ¶ĂŸere Diskussionen auf Reddit, aber am Ende stellt sich raus, dass der Weg den man vom Anfang zum ersten Z braucht der gleiche Weg wie zum nĂ€chsten Z ist (obwohl die Kette nichtmal wieder am Anfang vorbeigeht).

                          Naja, ich habe zu kompliziert gedacht und deswegen meine Lösung mit all den Tagesablenkungen immer noch nicht.

                          1 Antwort Letzte Antwort
                          0
                          • BananaJoeB BananaJoe

                            Ich fĂŒrchte ich brĂ€uchte mal einen Tipp in die richtige Richtung. Ich habe auch schon auf Reddit gelesen das LCM bzw. die Multiplikation der Pfade mein Freund ist, mich durch diverse Seiten gehangelt welche das zu versuchen zu erklĂ€ren. Aber ich verstehe trotzdem nur Bahnhof.

                            bluegaspodeB Offline
                            bluegaspodeB Offline
                            bluegaspode
                            schrieb am zuletzt editiert von bluegaspode
                            #61

                            @bananajoe

                            Ein einfaches Beispiel:

                            Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                            Pfad 2: du brauchst 14 Schritte zum Z (und 14 zum dann nÀchsten)

                            kgv ist 42 (7*3*2).

                            Die 6er Kette kommt da nach 7 Runden an.
                            Die 14er Kette nach 3 Runden.

                            Dann hast du ĂŒberall gleichzeitig ein Z.

                            Alles nur multiplizieren (6*14) ist auch ein Punkt wo ĂŒberall ein Z ist, der ist aber zu weit 'hinten'

                            BananaJoeB 1 Antwort Letzte Antwort
                            0
                            • bluegaspodeB bluegaspode

                              @bananajoe

                              Ein einfaches Beispiel:

                              Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                              Pfad 2: du brauchst 14 Schritte zum Z (und 14 zum dann nÀchsten)

                              kgv ist 42 (7*3*2).

                              Die 6er Kette kommt da nach 7 Runden an.
                              Die 14er Kette nach 3 Runden.

                              Dann hast du ĂŒberall gleichzeitig ein Z.

                              Alles nur multiplizieren (6*14) ist auch ein Punkt wo ĂŒberall ein Z ist, der ist aber zu weit 'hinten'

                              BananaJoeB Online
                              BananaJoeB Online
                              BananaJoe
                              Most Active
                              schrieb am zuletzt editiert von BananaJoe
                              #62

                              @bluegaspode ich habe da gerade eine Schranke im Gehirn.
                              Was meinst du mit

                              Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                              Ich nehme an du beziehst die auf die Beispieldaten?

                              Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                              Verstehe ich in diesem Zusammenhang nicht.

                              Ich starte in der ersten Zeile Ich starte mit AAA, man muss den Text schon genau lesen

                              AAA = (BBB, CCC)
                              BBB = (DDD, EEE)
                              CCC = (ZZZ, GGG)
                              DDD = (DDD, DDD)
                              EEE = (EEE, EEE)
                              GGG = (GGG, GGG)
                              ZZZ = (ZZZ, ZZZ)
                              

                              AAA ist der aktuelle "node"
                              BBB und CCC sind die nÀchsten "nodes", abhÀngig davon wie die Anweisung gerade ist.
                              Die ist RL, also nehme ich fĂŒr das R die CCC und schaue dort nach was dort bei L, also links steht.
                              Da steht GGG. Und weil das nicht ZZZ ist fange ich mit den Anweisungen wieder von vorne an.

                              Solange bis ich auf ZZZ stoße. In Part 1 zĂ€hle ich die einzelnen Schritte dafĂŒr und das ist die Lösung.
                              Ich erkenne aber die AbkĂŒrzung nicht. Per "Brute Force" war das noch machbar, aber natĂŒrlich fĂŒr Teil 2 nicht

                              Nachtrag: ErklÀre es bitte als wÀre ich 10 Jahre alt ...

                              ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                              bluegaspodeB 1 Antwort Letzte Antwort
                              0
                              • BananaJoeB BananaJoe

                                @bluegaspode ich habe da gerade eine Schranke im Gehirn.
                                Was meinst du mit

                                Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                                Ich nehme an du beziehst die auf die Beispieldaten?

                                Pfad 1: du brauchst 6 Schritte zum Z (und 6 bis zum nÀchsten)

                                Verstehe ich in diesem Zusammenhang nicht.

                                Ich starte in der ersten Zeile Ich starte mit AAA, man muss den Text schon genau lesen

                                AAA = (BBB, CCC)
                                BBB = (DDD, EEE)
                                CCC = (ZZZ, GGG)
                                DDD = (DDD, DDD)
                                EEE = (EEE, EEE)
                                GGG = (GGG, GGG)
                                ZZZ = (ZZZ, ZZZ)
                                

                                AAA ist der aktuelle "node"
                                BBB und CCC sind die nÀchsten "nodes", abhÀngig davon wie die Anweisung gerade ist.
                                Die ist RL, also nehme ich fĂŒr das R die CCC und schaue dort nach was dort bei L, also links steht.
                                Da steht GGG. Und weil das nicht ZZZ ist fange ich mit den Anweisungen wieder von vorne an.

                                Solange bis ich auf ZZZ stoße. In Part 1 zĂ€hle ich die einzelnen Schritte dafĂŒr und das ist die Lösung.
                                Ich erkenne aber die AbkĂŒrzung nicht. Per "Brute Force" war das noch machbar, aber natĂŒrlich fĂŒr Teil 2 nicht

                                Nachtrag: ErklÀre es bitte als wÀre ich 10 Jahre alt ...

                                bluegaspodeB Offline
                                bluegaspodeB Offline
                                bluegaspode
                                schrieb am zuletzt editiert von bluegaspode
                                #63

                                @bananajoe
                                etwas ausfĂŒhrlicher.

                                FĂŒr Teil 1 hast du alles richtig gemacht. Teil 2 baut darauf auf, du musst es mit etwas Mathematik kombinieren.

                                Stell dir vor, du verfolgt die LR Anweisungen, dann entsteht ja eine "Kette" wie du von xxA nach xxZ kommst. Im Original sind mehrere Ketten 'versteckt', die du ja alle gleichzeitig ablaufen sollst.

                                Dies hier ist ein neues ausgedachtes Beispiel:

                                Pfad 1 (mit 6 Schritten vom ersten xxA bis zum ersten xxZ):
                                AAA -> AAB -> AAC -> AAD -> AAE -> AAF -> AAZ

                                Pfad2 (mit 14 Schritten vom ersten xxA bis zum ersten xxZ)

                                BBA -> BBB -> BBC-> BBD -> BBE -> BBF -> BBG -> BBH -> BBI -> BBJ -> BBK -> BBL -> BBM -> BBN -> BBZ

                                Die "Ketten" gehen dann natĂŒrlich weiter, man landet ja immer wieder regelmĂ€ĂŸig beim AAZ oder BBZ. Die Inputdaten des RĂ€tsels sind so aufgebaut, dass du in der ersten Kette, wenn du 'AAZ' nach 6 Schritten gefunden hast, die Kette weitergeht und du dann erneut nach 6 Schritten das nĂ€chste 'AAZ' findest.

                                In der 2ten Kette findest du nach jedem 14ten Schritt das 'BBZ'.

                                Wenn man das in Zahlen ausdrĂŒckst, findest du ein 'AAZ' aus der ersten Kette also an folgenden Stellen (vielfache von 6)
                                06 -> 12 -> 18 -> 24 -> 30 -> 36 -> 42 -> 48 -> 56 -> ...

                                Das 'BBZ' findest du an vielfachen von 14:
                                14 .........................-> 28 ...............-> 42

                                42 ist hier die magische Nummer. Beide 'Ketten' haben an der 42igsten Stelle ihr AAZ bzw. BBZ als die Bedingung die du suchen sollst.

                                42 ist das kleinste gemeinsame Vielfache von 6 und 14.

                                Um das RÀtsel zu lösen musst du also:

                                • alle Startpunkte finden ('xxA'). Von jedem Startpunkt suchen, bis du das erste 'xxZ' findest. Diese "KettenlĂ€nge" musst du dir merken.

                                Wenn du weißt, wie lang alle Ketten sind, musst du von allen Ketten das kleinste gemeinsame Vielfache berechnen. Das wĂ€re der Punkt, wo, wenn du alle Ketten mehrfach gleichzeitig abfĂ€hrst zum ersten mal bei allen gleichzeitig ein 'xxZ' findest.

                                BananaJoeB 1 Antwort Letzte Antwort
                                1
                                • bluegaspodeB bluegaspode

                                  @bananajoe
                                  etwas ausfĂŒhrlicher.

                                  FĂŒr Teil 1 hast du alles richtig gemacht. Teil 2 baut darauf auf, du musst es mit etwas Mathematik kombinieren.

                                  Stell dir vor, du verfolgt die LR Anweisungen, dann entsteht ja eine "Kette" wie du von xxA nach xxZ kommst. Im Original sind mehrere Ketten 'versteckt', die du ja alle gleichzeitig ablaufen sollst.

                                  Dies hier ist ein neues ausgedachtes Beispiel:

                                  Pfad 1 (mit 6 Schritten vom ersten xxA bis zum ersten xxZ):
                                  AAA -> AAB -> AAC -> AAD -> AAE -> AAF -> AAZ

                                  Pfad2 (mit 14 Schritten vom ersten xxA bis zum ersten xxZ)

                                  BBA -> BBB -> BBC-> BBD -> BBE -> BBF -> BBG -> BBH -> BBI -> BBJ -> BBK -> BBL -> BBM -> BBN -> BBZ

                                  Die "Ketten" gehen dann natĂŒrlich weiter, man landet ja immer wieder regelmĂ€ĂŸig beim AAZ oder BBZ. Die Inputdaten des RĂ€tsels sind so aufgebaut, dass du in der ersten Kette, wenn du 'AAZ' nach 6 Schritten gefunden hast, die Kette weitergeht und du dann erneut nach 6 Schritten das nĂ€chste 'AAZ' findest.

                                  In der 2ten Kette findest du nach jedem 14ten Schritt das 'BBZ'.

                                  Wenn man das in Zahlen ausdrĂŒckst, findest du ein 'AAZ' aus der ersten Kette also an folgenden Stellen (vielfache von 6)
                                  06 -> 12 -> 18 -> 24 -> 30 -> 36 -> 42 -> 48 -> 56 -> ...

                                  Das 'BBZ' findest du an vielfachen von 14:
                                  14 .........................-> 28 ...............-> 42

                                  42 ist hier die magische Nummer. Beide 'Ketten' haben an der 42igsten Stelle ihr AAZ bzw. BBZ als die Bedingung die du suchen sollst.

                                  42 ist das kleinste gemeinsame Vielfache von 6 und 14.

                                  Um das RÀtsel zu lösen musst du also:

                                  • alle Startpunkte finden ('xxA'). Von jedem Startpunkt suchen, bis du das erste 'xxZ' findest. Diese "KettenlĂ€nge" musst du dir merken.

                                  Wenn du weißt, wie lang alle Ketten sind, musst du von allen Ketten das kleinste gemeinsame Vielfache berechnen. Das wĂ€re der Punkt, wo, wenn du alle Ketten mehrfach gleichzeitig abfĂ€hrst zum ersten mal bei allen gleichzeitig ein 'xxZ' findest.

                                  BananaJoeB Online
                                  BananaJoeB Online
                                  BananaJoe
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #64

                                  @bluegaspode Danke!

                                  Ich behaupte nicht es verstanden zu haben, aber ich habe das Ergebnis (und den 2. Stern).
                                  Ich habe alle gefunden Pfade bzw. deren Anzahlen in den von @OliverIO geposteten kgv Rechner gepackt und es kam tatsÀchlich die richtige Lösung dabei heraus.

                                  Nur der VollstÀndig halber habe ich das noch als Funktion in mein Programm eingebaut.

                                  So habe ich doch noch meinen 2. Stern heute geschafft, ich hatte schon verzweifelt ...

                                  ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                  OliverIOO 1 Antwort Letzte Antwort
                                  1
                                  • BananaJoeB Online
                                    BananaJoeB Online
                                    BananaJoe
                                    Most Active
                                    schrieb am zuletzt editiert von BananaJoe
                                    #65

                                    Das lief heute, Day 9 schon besser, auch wenn ich wieder einen selten dÀmlichen Fehler drin hatte.
                                    Meine Ausstiegsbedingung war das die Summe(!!!) aller Werte einer Stufe 0 ist. Nun gab es natĂŒrlich 4 Zeilen in den Daten wo es auch einen Schritt gab der ZufĂ€llig 0 ergibt. Ich hatte mir alles ausgeben lassen, aber erst auf den 10. Blick gesehen das bei einigen Zeilen die 0 0 0 0 fehlte.

                                    DafĂŒr war Part 2 mal ausgesprochen leicht ... es musste nur eine Zeile mit einem ArrayReverse ergĂ€nzt werden

                                    ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                    1 Antwort Letzte Antwort
                                    0
                                    • BananaJoeB BananaJoe

                                      @bluegaspode Danke!

                                      Ich behaupte nicht es verstanden zu haben, aber ich habe das Ergebnis (und den 2. Stern).
                                      Ich habe alle gefunden Pfade bzw. deren Anzahlen in den von @OliverIO geposteten kgv Rechner gepackt und es kam tatsÀchlich die richtige Lösung dabei heraus.

                                      Nur der VollstÀndig halber habe ich das noch als Funktion in mein Programm eingebaut.

                                      So habe ich doch noch meinen 2. Stern heute geschafft, ich hatte schon verzweifelt ...

                                      OliverIOO Offline
                                      OliverIOO Offline
                                      OliverIO
                                      schrieb am zuletzt editiert von
                                      #66

                                      @bananajoe sagte in ioBroker Advent of Code:

                                      Ich behaupte nicht es verstanden zu haben

                                      aber eigentlich dann simpel. evtl denkt man nicht direkt gleich daran, das es so funktionieren könnte.

                                      du hast 3 start-nodes. mit
                                      bei 1 kommst du in 2 schritten durch,
                                      bei 2 kommst du in 3 schritten durch
                                      bei 3 kommst du mit 4 schritten durch

                                      dann musst du 234 machen, das ist die Anzahl der schritte wo zum ersten mal alle 3 startnodes zugleich am gleichen endpunkt ankommen. daher auch kgv=kleinster gemeinsamer vielfacher.
                                      theoretisch kann man das auch in javascript rechnen. es kann da aber schnell zu ĂŒberlĂ€ufen kommen. ich denke die webseite nimmt eine andere bibliothek als die javascript eigenen rechenfunktionen zu verwenden.

                                      Meine Adapter und Widgets
                                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                      Links im Profil

                                      1 Antwort Letzte Antwort
                                      1
                                      • BananaJoeB Online
                                        BananaJoeB Online
                                        BananaJoe
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #67

                                        So, der ganze Sonntag ist nur fĂŒr das RĂ€tsel drauf gegangen ... also Teil B.
                                        Ich hatte mir gleich am Anfang gebaut das er mir das ganze - mit richtigen Ecken und Linien - wieder als Text ausgibt (aka ASCII-Art).
                                        Ich hatte dann zwar eine Lösung, die war aber nur nah dran und die letzten Fehler habe ich dann von Hand gezĂ€hlt und abgezogen. Ich hatte alle Leerzeichen innerhalb des Pfades mit X markiert, es waren aber noch zu viele da einige ja nicht umschlossen wirklich waren. Aus dem ASCII ein png gemacht, im Malprogramm einmal das FĂŒllwerkzeug genommen und die X die im bunten waren abgezogen.
                                        Aber mich hatte natĂŒrlich mein Ehrgeiz gepackt das ich das mit dem Programm hinbekomme.

                                        Da habe ich jetzt 5h dran verschwendet, ich inzwischen wieder weiter weg von der Lösung wie am Anfang. und bei fast 600 Zeilen Code.

                                        Und sieht man andere "Flitzpiepen" die das mit weniger als 100 Zeilen machen.
                                        Ok, ich musste mir meinen "FloodFill" auch selbst schreiben, inklusive das ich immer wieder an das Limit bei den Rekursiven Aufrufen gestoßen bin.

                                        Hoffentlich ist morgen wieder einfach, eigentlich wollte ich heute doch ganz viel andere Sachen machen.

                                        ioBroker@Ubuntu 24.04 LTS (VMware) fĂŒr: >260 GerĂ€te, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                        bluegaspodeB 1 Antwort Letzte Antwort
                                        1
                                        • BananaJoeB BananaJoe

                                          So, der ganze Sonntag ist nur fĂŒr das RĂ€tsel drauf gegangen ... also Teil B.
                                          Ich hatte mir gleich am Anfang gebaut das er mir das ganze - mit richtigen Ecken und Linien - wieder als Text ausgibt (aka ASCII-Art).
                                          Ich hatte dann zwar eine Lösung, die war aber nur nah dran und die letzten Fehler habe ich dann von Hand gezĂ€hlt und abgezogen. Ich hatte alle Leerzeichen innerhalb des Pfades mit X markiert, es waren aber noch zu viele da einige ja nicht umschlossen wirklich waren. Aus dem ASCII ein png gemacht, im Malprogramm einmal das FĂŒllwerkzeug genommen und die X die im bunten waren abgezogen.
                                          Aber mich hatte natĂŒrlich mein Ehrgeiz gepackt das ich das mit dem Programm hinbekomme.

                                          Da habe ich jetzt 5h dran verschwendet, ich inzwischen wieder weiter weg von der Lösung wie am Anfang. und bei fast 600 Zeilen Code.

                                          Und sieht man andere "Flitzpiepen" die das mit weniger als 100 Zeilen machen.
                                          Ok, ich musste mir meinen "FloodFill" auch selbst schreiben, inklusive das ich immer wieder an das Limit bei den Rekursiven Aufrufen gestoßen bin.

                                          Hoffentlich ist morgen wieder einfach, eigentlich wollte ich heute doch ganz viel andere Sachen machen.

                                          bluegaspodeB Offline
                                          bluegaspodeB Offline
                                          bluegaspode
                                          schrieb am zuletzt editiert von
                                          #68

                                          @bananajoe Dich hat der AoC Virus gefangen :)
                                          Ich habe fĂŒr den 2ten Teil auch was ziemlich komplexes geschrieben.

                                          In dem Moment wo sich dir Lösung hatte, fiel mir was viel einfacheres ein...

                                          Man kann in in Polygonen sehr einfach bestimmen, was innen und was außen ist.

                                          Du musst dir nur aus Teil eins alle Positionen der Strecke merken (damit du den ganzen anderen 'MĂŒll' ignorieren kannst).

                                          Dann einfach jede Zeile von links nach rechts wandern. Dabei zĂ€hlst du nur, ob du die Strecke kreuzt. Hast du sie einmal gekreuzt: bist du 'innen', zweimal gekreuzt wieder 'außen' und sie weiter. Also testest du, ob du eine gerade oder ungerade Anzahl Wege gekreuzt hast und je nachdem die leeren Felder an denen du vorbeikommst zĂ€hlen oder nicht. Bei den Ecken nur bestimmte Ecke zĂ€hlen, damit einen waagerechte WĂ€nde die Rechnung nicht kaputt machen.

                                          Schau mal hier unter 'Raycasting' :
                                          https://en.m.wikipedia.org/wiki/Point_in_polygon

                                          Das ist hier relativ einfach weil alles schön gerade ist.

                                          Andere haben das Labyrinth 'aufgeplustert'. Aus Jedem Punkt eine 3x3 FlĂ€che machen., dann lĂ€sst sich der FloodFill auf der grĂ¶ĂŸeren FlĂ€che einsetzen, weil er sich dann gut zwischen den WĂ€nden durchschlĂ€ngeln kann.

                                          BananaJoeB 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          835

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          BeitrÀge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe