Advent of Code 2024 Vorige deel Overzicht

Pagina: 1
Acties:

Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 17:19

Reptile209

- gers -

heuveltje schreef op maandag 2 december 2024 @ 22:51:
[...]


maar op dat punt ben je het niet meer in excel bezig.
das net zoiets als claimen dat je het in notepad aan het doen bent omdat je daar je python in hebt getyped.
Klopt hoor. Kan vast ook wel echt in native-Excel denk ik, maar dan krijg je een heleboel hulpkokommen en onleesbare formules :).

Voordeel is voor mij vooral dat ik op mijn werk laptop geen developer-tools heb (want mijn werk is heel erg niet IT). Via Excel VBA kan je dan toch nog een beetje programmeren ;)

Edit:
Vooruit, de testcase van Part 1 in native Excel gedaan. De formules onderaan is wat er linksboven in dat blokje staat. Voor de echte input moet je ook nog een beetje rommelen met het wisselende aantal elementen per regel, maar dat is met een Count() snel op te lossen in plaats van de hardcoded 4 die er nu bijvoorbeeld in zit. Deel 2 is echt wel een uitdaging om zo te doen trouwens, daar begin ik even niet aan :D.
spoiler:
Afbeeldingslocatie: https://tweakers.net/i/JmzZHn0EeThY__qQjQU2eC-u-_4=/800x/filters:strip_exif()/f/image/93wNQFKthmJK3MW2oJnWDhNZ.png?f=fotoalbum_large

[ Voor 55% gewijzigd door Reptile209 op 02-12-2024 23:29 ]

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 14:52

P_Tingen

omdat het KAN

Ik lees iets niet goed denk ik. In mijn programma kom ik met de testinvoer al op 61 keer XMAS. Een steekproef in de resultaten laten geen valse positieven zien, dus ik snap iets niet.

Neem het onderste deel van het voorbeeld:
 7 S.S.S.S.SS  
 8 .A.A.A.A.A
 9 ..M.M.M.MM
10 .X.X.XMASX
   1234567890

Alleen hier haalt mijn programma al 29 combinaties uit.
Neem als voorbeeld de X linksonder. Daar haal ik deze combinaties uit:

Afbeeldingslocatie: https://imgur.com/W6WLKqS.png

Wat zie ik over het hoofd?

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Nu online
Najaaa..

Afbeeldingslocatie: https://tweakers.net/i/t55rbHwBvReOBBKoRiNEz6TSO1g=/800x/filters:strip_exif()/f/image/V9XZe4WHOG6LL3asWz40Axaq.png?f=fotoalbum_large

spoiler:
Wie van jullie had 1933

[ Voor 33% gewijzigd door ZpAz op 08-12-2024 11:49 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • +4 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:22
Extra testdata voor dag 12: aoc-2024-day-12-challenge-1-and-2.zip

Om te benchmarken kun je combined-1.txt en combined-2.txt gebruiken. Er zitten wat extra bestanden bij die je kunt gebruiken om te debuggen als je niet het goede antwoord krijgt (de combined bestanden zijn simpelweg de andere bestanden aan elkaar geplakt). Ik heb daarvoor ook de oplossingen in de zip file gestopt. Natuurlijk is de uitdaging om de correcte antwoorden zelf te reproduceren!

Referentie-tijden (dit kan zeker veel sneller in een andere taal dan Python):
$ time pypy3 solve.py < combined-1.txt 
...54044
...18790

real    0m0.626s
user    0m0.565s
sys     0m0.058s

$ time pypy3 solve.py < combined-2.txt 
...62592
...00666

real    0m4.497s
user    0m4.231s
sys     0m0.253s


Overigens overweeg ik ook een carrière switch naar abstract kunstenaar:
Afbeeldingslocatie: https://i.imgur.com/nU2cosp.png
Mooi hè?

Acties:
  • +2 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 21:46
Paar daagjes griep gehad.. dus vanaf dag 7 niet meer bijgewerkt.. nu vrolijk verder met dag 12..

Die viel me aardig mee.
Qua snelheid vast niet vergelijkbaar met snellere loopjes.. maar qua code wel lekker kort :)
spoiler:
DEEL1:
Afbeeldingslocatie: https://tweakers.net/i/UJXuc0y5Vdub6ZO2TV7_zXE0_PE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/eDOQrIEzdqZrGbdCfWIMIDrc.png?f=user_large
- maak een netwerk van de matrix, en behoud alleen de verbindingen tussen gelijke letters.
- de componenten in de graaf zijn de verschillende blokken
- van iedere 'letter' is de omtrek gelijk aan (4 - aantal verbindingen naar naastgelegen letters)
- sommer dit per groep, en vermenigvuldig met groetsgrootte
DEEL 2
- maak een spatial grid van vierkanten, met afmetingen van input
- haal de groepen/blokken uit het antwoord van DEEL 1
Afbeeldingslocatie: https://tweakers.net/i/zZDPlFhOzKWY9Bx-2Nc4yxRScRQ=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/GrZ1I0vQhH7GbWtpe1ALWZnl.png?f=user_large
- simplificeer per blok, waardoor je alleen polylijnen (=omtrek) overhoudt.
Afbeeldingslocatie: https://tweakers.net/i/HFcM1hA__x0NSYstp48PeX2p0hA=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/6F34rfXsSNiFu2EIUS1jOdxA.png?f=user_large
- per blok, per polylijn, kijk uit hoeveel punten de polylijn bestaat. (aantal punten - 1) is aantal lijndelen.
- sommeer per blok, en vermenigvuldig met blokgrootte

[ Voor 3% gewijzigd door breew op 12-12-2024 16:25 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-10 22:15

Janoz

Moderator Devschuur®

!litemod

Zo, even een animated gif van mijn connectedsets in elkaar kunnen hacken.

Afbeeldingslocatie: https://tweakers.net/i/RedJmj_w3T0kLDnKmSrN0HZADK0=/fit-in/4000x4000/filters:no_upscale():gifsicle():strip_exif()/f/image/Dmh6GFw0qqh6aQy8lCGgvPDg.gif?f=user_large

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • +1 Henk 'm!

  • bakkerjangert
  • Registratie: Februari 2012
  • Laatst online: 06:53
Moest wel even nadenken vandaag, maar uiteindelijk is het vrij simpel. Code in python.

spoiler:
Het zijn twee vergelijkingen met 2 onbekende dus is per machine maar één oplossing mogelijk. Uitschrijven en checken of de a en b waarden positieve integers zijn. Ik doe dat door te checken of waarden afgerond naar de dichtstbijzijnde int het juiste antwoord geeft. Uitwerking van de vergelijking:

Afbeeldingslocatie: https://tweakers.net/i/tuB1qSld8g0t3jk5Q1wAYnnA47Y=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/jCxFLbqKHdiCgaUz3Pgoexry.png?f=user_large

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-10 22:15

Janoz

Moderator Devschuur®

!litemod

Was ik helemaal met latex aan het kutten om mijn hanepoten op papier netjes te krijgen, zie ik dat @bakkerjangert dat ook al gedaan had :D. Maar hier dan toch mijn O(1) oplossing:

spoiler:
(1) herschrijf het issue naar 2 lineaire vergelijkingen
(2) los de 2e formule op voor a
(3) vul in bij de eerste en los op voor b
Afbeeldingslocatie: https://tweakers.net/i/4rJ04eu-p1v5xXzx9s_HZQauOYY=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/uZSJAJCvQu17ovvFw8MkdgUw.png?f=user_large

Nu is het gewoon een kwestie van kijken of de oplossing van b uit (3) een geheel getal oplevert, en dan a bepalen door (2) in te vullen.


https://github.com/Janoz-...2024/day13/Day13.java#L49

Wel grappig trouwens dat de uiteindelijke oplossing voor b van mij en @bakkerjangert relatief verschillend zijn (in vorm, niet in uitkomst)

[ Voor 30% gewijzigd door Janoz op 13-12-2024 10:42 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • +2 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-10 22:15

Janoz

Moderator Devschuur®

!litemod

Eigenlijk best leuk om te spelen met wat animaties. Hieronder mijn connectedSets algoritme van dag 12 waarbij ik de punten in willekeurige volgorde afhandel en in het midden begin (compleet onnodig, maar een leukere animatie dan de vorige)

Afbeeldingslocatie: https://tweakers.net/i/XejT8LD_lK63WECTEAG2keD2m2Y=/fit-in/4000x4000/filters:no_upscale():gifsicle():strip_exif()/f/image/T7wiSx2XZ8b8dyTOTW8hMHVG.gif?f=user_large

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • +1 Henk 'm!

  • torx
  • Registratie: Oktober 2006
  • Laatst online: 21:27
Pfff ik had mijn antwoord voor deel 2 al eerder dan ik dacht...
spoiler:
Ik zag op een gegeven moment de bovenkant van de kerstboom onderin mijn visualisatie (console), met daarboven willekeurige robots. Ik dacht dus dat ik nog meer stappen moest zetten totdat de kerstboom bovenint zat en de willekeurige punten de rest van de boom vormden. Maar blijkbaar moest ik scrollen om de rest te zien |:(

En het resultaat:
spoiler:
Afbeeldingslocatie: https://torxprojects.com/external/tweakers/advent-of-code/2024/day-14-xmas-tree-part-2.png

Honda CB750 Hornet :: Yamaha Fazer FZ6 SA (2011 - 2023) | F1Pool.net


Acties:
  • +1 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 21:46
Druk weekend.. maar dag 14 was leuk :)

duurde even voordat ik deel 2 "zag"
spoiler:
uiteindelijk was het genoeg om de coordinaten uit te rekenen voor de eerste 20000 stapen, en daarna de oplossing met kleinste standaarddeviatie te nemen..
Afbeeldingslocatie: https://tweakers.net/i/7WTZcz19St3izi4-qARic58_dXM=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/JXbaKFEZQ74qCywyxd71ADPK.png?f=user_large

Acties:
  • +2 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:22
Het algoritme zal inderdaad hetzelfde zijn, maar ik was benieuwd hoeveel variatie er in de rest van het programma zit. Inputs die gepost zijn: https://pastebin.com/raw/J5Se8UCe (spoilers)

spoiler:
De volgorde van de de bxl/bxc/adv instructies varieert.
De operands van beide bxl instructries variëren.
De ongebruikte operand van de bxc instructie varieert.

Ik denk dat dit de dependencies zijn:

Afbeeldingslocatie: https://i.imgur.com/fVhjGxR.png

Dus dan kom ik op een totaal van 12 verschillende programma's, met 3 verschillende parameters dus in theorie 6144 verschillende mogelijke invoeren.

[ Voor 25% gewijzigd door Soultaker op 17-12-2024 12:38 ]


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 14:52

P_Tingen

omdat het KAN

Dag 18: Ram run

Ik zag vandaag en dacht: hé, een map, dat is leuk, dus heb een zoekmechanisme gemaakt dat de uitgang zoekt. Werkt prima voor de test, maar verwerken van de echte data duurt veel te lang. Na een paar minuten maar afgebroken.
spoiler:
Ik ga recursief door de kaart, breek af als het pad al langer duurt dan wat tot nog toe is gevonden, maar het duurt nog steeds veel te lang. Als ik de kaart bekijk, na de eerste 1024 bytes, dan snap ik wel waarom; een groot open 'middenterrein' waar je eindeloos veel routes kan bedenken. Dit moet slimmer, maar hoe?

Afbeeldingslocatie: https://imgur.com/GNgoZlX.png

... en gaat over tot de orde van de dag

Pagina: 1