Advent of Code 2019 Vorige deel Overzicht Volgende deel Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 2 3 4 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • schoene
  • Registratie: Maart 2003
  • Laatst online: 10:44
Ik had deel 2 ook eerst met de hand gedaan, maar uiteindelijk heb ik het toch geprogrammeerd, het is toch eenvoudiger dan ik eerst dacht.

spoiler:
Een brute force algoritme om 3 subsets van de uit te voeren bewegeningen te vinden waarmee je de volledige set kan opbouwen duurde hier (op een pc van 8 jaar oud) 5ms

[ Voor 40% gewijzigd door schoene op 17-12-2019 22:13 ]


  • bakkerjangert
  • Registratie: Februari 2012
  • Laatst online: 13:14
Gisteren was wel pittig. Na veel gepuzzel ben ik er uit.

spoiler: title
Uiteindelijk heb ik de volgorde handmatig bepaald en de lengte laten bepalen met een A* search package in python. De deuren heb ik dan dus ook initeel allemaal als open staan aangezien ik handmatig de volgorde al correct bepaald had. Door dit voorwerk was Part 2 een appeltje eitje voor mij. Tip: Je moet alleen alle keys zoeken --> Niet alle deuren hoeven bezocht te worden.

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
Dag 19 na wat 1-based 0-based misverstanden niet zo'n probleem. Nu nog 16 en 18 afmaken. Het kost toch wel wat meer tijd dan verwacht.

Acties:
  • +1 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

veldsla schreef op donderdag 19 december 2019 @ 10:51:
Dag 19 na wat 1-based 0-based misverstanden niet zo'n probleem. Nu nog 16 en 18 afmaken. Het kost toch wel wat meer tijd dan verwacht.
Ik vond het leuk dat ik vandaag in een paar minuten kon oplossen; gisteren ben ik 1,5-2 uur bezig geweest en ik weet hoe ik het moet gaan oplossen, maar ik heb gewoon de tijd niet momenteel om hem te doen, met als resultaat dat ik nu voor het eerst een dag niet opgelost heb :-/

Ik ga 'm nog wel doen, maar ik heb echt geen idee wanneer ik even een blok van 2 uur heb om het netjes te doen zoals ik wil.

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • GeertenVink
  • Registratie: November 2012
  • Laatst online: 03-12-2023
Ja, dag 18 had ik ook niet af voor mijn werk, en dan blijft ie toch gewoon liggen tot het weekend is. Beetje jammer.

Acties:
  • +2 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:51
Ik heb medelijden met de deelnemers die zonder informatica-opleiding (of op z'n minst gedegen kennis van lineare algebra) deel twee van dag 22 op proberen te lossen.

De code zelf is uiteindelijk best eenvoudig (Python code voor deel 2, voor de nieuwsgierigen), maar voor je daar bent aangekomen moet je wel een aantal vertaalslagen gemaakt hebben.

Python heeft trouwens wel een aantal dingen die goed van pas kwamen:
  • Python's pow() functie accepteert een derde argument.
  • In Python heeft de uitkomst van de modulus-operator hetzelfde teken als de deler (e.g., -1 % 10 == 9). In de meeste andere programmeertalen heeft de uitkomst juist het teken van het deeltal (e.g., -1 % 10 = -1).

Acties:
  • +1 Henk 'm!

  • Daanoz
  • Registratie: Oktober 2007
  • Laatst online: 07-09 19:29
Geen fijne dag tot nu toe voor mij... Eerste oplossing voor deel 2 ging 3.8 jaar duren, dus dat werd hem niet, nu met een meer wiskundige aanvalshoek loop ik tegen het integer limiet van JS aan -O-. Daar is dan wel weer het alternatief BigInt voor, maar die kan dan weer niet zomaar machtsverheffen |:( .

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:51
Daanoz schreef op zondag 22 december 2019 @ 13:05:
Daar is dan wel weer het alternatief BigInt voor, maar die kan dan weer niet zomaar machtsverheffen |:( .
Hint:


Talen zonder bigints zijn hier inderdaad wel in het nadeel. Niet omdat de getallen belachelijk groot worden (je kunt alle operaties modulo N doen), maar omdat de tussenresultaten (het resultaat van een vermenigvuldiging, bijvoorbeeld) niet in een 64-bit integer passen, en je dus ofwel 128-bit integers (die bijna geen enkele taal ondersteunt) of bigints nodig hebt.

Acties:
  • +1 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Soultaker schreef op zondag 22 december 2019 @ 12:37:
Ik heb medelijden met de deelnemers die zonder informatica-opleiding (of op z'n minst gedegen kennis van lineare algebra) deel twee van dag 22 op proberen te lossen.
Om deel 2 van vandaag te tackelen heb je meer aan een wiskunde opleiding dan informatie opleiding. Heeft weinig met programmeren te maken imo.

Petje af als/dat je dit zo uit de mouw schudt. Voor mij was dit helaas een stap te ver om zonder enkele hints op te kunnen lossen.

Morgen maar weer de Intcomputer van stal halen :')

Acties:
  • 0 Henk 'm!

  • Ethikka
  • Registratie: Juli 2010
  • Laatst online: 05-09-2023
Zelfs met hints snap ik er de ballen van.

Informatica opleiding (en de bijbehorende discrete wiskunde) is meer als 20 jaar terug en verschillende hints leunen dusdanig op harde wiskunde dat ik er niks mee kan. Eerste puzzel in 4 jaar tijd die ik gevoelsmatig gewoon niet kan. Wellicht ga ik hem eens proberen, maar voor nu gooi ik de handdoek in de ring.

Acties:
  • +5 Henk 'm!

  • GeertenVink
  • Registratie: November 2012
  • Laatst online: 03-12-2023
Gisteren heb ik er acht en een half uur over gedaan, vandaag voor de derde keer ooit global points, en voor het eerst allebei de parts. #68/46.. dit was triviaal met mijn implementatie van de IntCode VMs. Best wel blij mee. :D

Acties:
  • 0 Henk 'm!

  • GeertenVink
  • Registratie: November 2012
  • Laatst online: 03-12-2023
Soultaker schreef op zondag 22 december 2019 @ 13:16:
Talen zonder bigints zijn hier inderdaad wel in het nadeel. Niet omdat de getallen belachelijk groot worden (je kunt alle operaties modulo N doen), maar omdat de tussenresultaten (het resultaat van een vermenigvuldiging, bijvoorbeeld) niet in een 64-bit integer passen, en je dus ofwel 128-bit integers (die bijna geen enkele taal ondersteunt) of bigints nodig hebt.
Niet per se, je kan (a * b) % m in een n-bits ruimte doen zolang m in (n-1) bits past.

Zoiets:
https://www.geeksforgeeks...egers-under-large-modulo/

Acties:
  • 0 Henk 'm!

  • Daanoz
  • Registratie: Oktober 2007
  • Laatst online: 07-09 19:29
Ik ben uiteindelijk overstag gegaan, en heb een library gezocht die mathematische berekening kon doen met de BigInt. Ook dat ging niet direct eenvoudig, de eerste die ik probeerde liep ook tegen een limiet bij iets van 1e10000000.

spoiler:
De sleutel zit hem inderdaad in het direct kunnen doen van de modulo bij een berekening.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:51
GeertenVink schreef op maandag 23 december 2019 @ 09:55:
Niet per se, je kan (a * b) % m in een n-bits ruimte doen zolang m in (n-1) bits past.
Ach ja, klopt inderdaad. Dat maakt het wel weer iets lastiger omdat je de 128-bits vermenigvuldiging zelf in tweeën moet splitsen. Hetzelfde zou ook in Javascript kunnen, aangezien de modulus ongeveer 48 bits nodig had, en IEEE double-precision floats die Javascript gebruikt een mantissa van 52 bits hebben.

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Soultaker schreef op zondag 22 december 2019 @ 12:37:
...
Python heeft trouwens wel een aantal dingen die goed van pas kwamen:
Voor C# is er BigInteger.ModPow

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

GeertenVink schreef op maandag 23 december 2019 @ 06:26:
Gisteren heb ik er acht en een half uur over gedaan, vandaag voor de derde keer ooit global points, en voor het eerst allebei de parts. #68/46.. dit was triviaal met mijn implementatie van de IntCode VMs. Best wel blij mee. :D
Congrats, dat lijkt me echt een goed gevoel geven :) Ik ga zelf niet zo ver dat ik er om 6:00 uit voor achter de PC ga zitten, maar dat moet een goed gevoel geven als je de top100 haalt :)

NKCSS - Projects - YouTube


Acties:
  • +2 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Leuke laatste puzzel om het af te sluiten. In het begin vond ik het intcode verhaal niet zoveel, maar ze hebben er echt coole puzzels mee kunnen maken. Veel van de andere dagen iets met pathfinding, waar bfs vaak prima werkte. Ook weer een paar zeer pittige wiskunde dagen erbij.

Ik heb er dit jaar gemiddeld langer over gedaan dan vorig jaar. Had het idee dat er vorig jaar net wat meer simpele puzzles inzaten die niet voortborduurde op iets wat je al moest hebben.

Heb er wel weer van genoten!

Acties:
  • +1 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:51
Reynouts schreef op woensdag 25 december 2019 @ 15:36:
In het begin vond ik het intcode verhaal niet zoveel, maar ze hebben er echt coole puzzels mee kunnen maken.
Ik vond de intcode-machine vooral een slimme manier om opgaven te kunnen maken waarin je meer moet doen dan alleen één antwoord berekenen. Meestal was de intcode-machine een soort obfuscated testomgeving, die client-side in plaats van server-side draait.

Dat heeft veel voordelen: je kunt interactieve opgaven maken (zoals de Breakout clone en de doolhof) en problemen waarbij je meer feedback krijgt dan alleen goed of fout (zoals de Springbot opgave) en zelfs deelnemers oplossingen laten brute-forcen zonder dat het de server belast. Deelnemers kunnen bovendien in elke taal en omgeving werken die ze maar willen, wat verschilt van wedstrijden waarin deelnemers hun code insturen en die op de server geëvalueerd wordt.

In vorige jaren waren er ook een aantal simulatie-opgaven, waarbij je vooral goed moest lezen en dan precies de beschreven logica moest implementeren, wat niet echt interessant was. Die opgaven lijken dit jaar te zijn vervangen door opgaven waarbij de logica simpelweg in de vorm van een intcode-programma werd aangeleverd. Dat leidde tot leukere programmeerproblemen.

Alleen al door de afwezigheid van simulatie-opgaven vond ik dit jaar leuker dan de vorige jaren.

Acties:
  • +1 Henk 'm!

  • Daanoz
  • Registratie: Oktober 2007
  • Laatst online: 07-09 19:29
Nog wat mooie grafiekjes van het leaderboard: (Credits to Adé Mochtar & Jeroen Heijmans)

AOC 2019 - Ranking

AOC 2019 - Graphs

Acties:
  • 0 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
@Daanoz tijd voor een nieuw draadje? 😁

Acties:
  • +1 Henk 'm!

  • Daanoz
  • Registratie: Oktober 2007
  • Laatst online: 07-09 19:29
Goeie, gaan we doen!

edit, here we go: Advent of Code 2020

[ Voor 28% gewijzigd door Daanoz op 29-11-2020 20:38 ]

Pagina: 1 2 3 4 Laatste