Advent of Code 2021 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 ... 15 16 Laatste
Acties:

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
MrHaas schreef op donderdag 23 december 2021 @ 09:23:
[...]


Mja, het voelt een beetje vies, maar I'll take it
Op zich eens, al weet ik niet of met de hand per se "makkelijker" is dan

spoiler:
Een A*/Dijkstra oplossing met constraints

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 01-05 10:06
Diderikdm schreef op donderdag 23 december 2021 @ 10:03:
[...]


Op zich eens, al weet ik niet of met de hand per se "makkelijker" is dan

spoiler:
Een A*/Dijkstra oplossing met constraints
spoiler:
Ja, zoiets zat ik ook aan te denken. Als heuristic kan je de minimale cost gebruiken als je elke node zo in de goede cel kan moven.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:53

Creepy

Tactical Espionage Splatterer

Ik wilde ook al aan de slag met de hand. Ik merk wel dat ik een beetje AoC moe begin te worden. De oplossing voor dag 19 moet ik nog afronden, dat werkt bijna en voor dag 22 moet ik deel 2 nog, ook daar heb ik een oplossing voor maar nog niet af. En dan zie je hier deel 1 en dan denk ik, met de hand is misschien wel sneller dan uit programmeren.
spoiler:
Lijkt een beetje op de toren van Hanoi maar dan met wat extra contraints?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • +4 Henk 'm!

  • tarlitz
  • Registratie: Maart 2010
  • Niet online
Leuke puzzel vandaag, ik ben voor de 'no-code' optie gegaan :D

spoiler:
Afbeeldingslocatie: https://tweakers.net/i/AHnXEeMpQQJKTrLekOV7l_kmm9Q=/800x/filters:strip_icc():strip_exif()/f/image/LQ3ZfynL7SFSw6cpdvcc4AVW.jpg?f=fotoalbum_large

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
spoiler:
Ik heb ene A* gebouwd, maar hij convergeert nog niet lekker. Dus ergens gaat iets mis met mijn cost-calculatie.
.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
Puzzel van het jaar voor mij vandaag. Geen gepriegel, gewoon puzzelen. Wel 6 uur mee bezig en in alle fouten getrapt die er maar te maken waren

spoiler:
Uiteindelijk met dijkstra opgelost.
En een amphipod mag boven geen enkele kolom stoppen, niet alleen zijn doelkolom. Iets met lezen...

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 03-06 12:49

Varienaja

Wie dit leest is gek.

Jeemig de peemig. Ik schatte dat er maar een paar mogelijke toestanden waren. Maar mijn pc heeft overuren gedraaid.
spoiler:
En voordat ik doorhad dat mijn domme code niet toeliet dat een letter dat al in het goede vakje zit er soms uit moet op een andere letter eruit te laten...

Ik heb de puzzle uiteindelijk ook met de hand opgelost om m'n algoritme te controleren en fouten te vinden. |:(

Siditamentis astuentis pactum.


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Wat een k*(*)t(*) opgave. En daarnaast maakte ik een optelfout, waardoor ik de stappen al uren eerder goed had, maar de score niet. Maar ook omdat ik per ongeluk een pagina terugging op de website en ik nog een keer extra mocht wachten voordat ik het goede antwoord kon intikken. Wel uitgevonden wat AoC doet als je meerdere keren een fout antwoord intikt: eerste twee keer een minuut wachten en een hint of je te hoog of te laag zit. Dan 5 minuten wachten zonder hint. En daarna wordt de wachttijd nog langer.

When life gives you lemons, start a battery factory


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 20:37

DataGhost

iPL dev

Het goede algoritme voor vandaag ontgaat me nog even. Waarschijnlijk op een verkeerde aanpak vastgebeten waar ik later nog eens met een frisse blik naar moet kijken. De lelijke brute-force is bijna een kwartier bezig geweest op m'n laptopje en natuurlijk gaat dat voor deel 2 niet werken. Stiekem had ik voor vandaag wel de testinvoer geopend om te kijken of en welke aannames ik kon doen over de vorm van de input
spoiler:
maar het wijzigen van de input voor deel 2 had ik niet verwacht, kak :D

Deze laat ik voor als ik er tijd voor heb.

Jammer dat deze kennelijk makkelijk genoeg is om met de hand te doen, want daar heb ik geen zin in.
spoiler:
Dat klinkt dan wel alsof een greedy oplossing correct is


Hm, ironisch genoeg heeft deel 2 het makkelijker gemaakt een strategie te verzinnen :+

[ Voor 29% gewijzigd door DataGhost op 23-12-2021 14:29 ]


  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
Python dag 23

Toch fijn dat het nu ook via code gelukt :) (De handmatige versie onderaan toegevoegd)

runtime is 14s voor part 1 & 2 elk, voor nu prima

[ Voor 15% gewijzigd door Diderikdm op 23-12-2021 16:09 ]


  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Ik had deel 1 op papier uitgewerkt, maar voor deel 2 is dat nog wel wat moeilijker...

En mijn algoritme wil ook niet echt vlotten, ik vermoed dat die nogal graag de A-tjes loopt te verplaatsen omdat die zo lekker goedkoop zijn...

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 03-06 12:49

Varienaja

Wie dit leest is gek.

Remcoder schreef op donderdag 23 december 2021 @ 14:52:
ik vermoed dat die nogal graag de A-tjes loopt te verplaatsen omdat die zo lekker goedkoop zijn...
Dat maakt toch niet uit? Ook A-tjes kunnen maar hooguit 2 zetten doen.
Vanuit een hok naar een hok. En daarna nooit meer bewegen.
Vanuit een hok naar de gang. En daarna naar een hok.

Siditamentis astuentis pactum.


  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Varienaja schreef op donderdag 23 december 2021 @ 14:55:
[...]

Dat maakt toch niet uit? Ook A-tjes kunnen maar hooguit 2 zetten doen.
Vanuit een hok naar een hok. En daarna nooit meer bewegen.
Vanuit een hok naar de gang. En daarna naar een hok.
Ook op de gang kunnen ze bewegen ;)

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
Remcoder schreef op donderdag 23 december 2021 @ 14:56:
[...]

Ook op de gang kunnen ze bewegen ;)
spoiler:
"Once an amphipod stops moving in the hallway, it will stay in that spot until it can move into a room. (That is, once any amphipod starts moving, any other amphipods currently in the hallway are locked in place and will not move again until they can move fully into a room.)"


^ tenzij je bedoelt dat ze meer dan 2 vakjes per keer kunnen bewegen?

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Diderikdm schreef op donderdag 23 december 2021 @ 14:58:
[...]


spoiler:
"Once an amphipod stops moving in the hallway, it will stay in that spot until it can move into a room. (That is, once any amphipod starts moving, any other amphipods currently in the hallway are locked in place and will not move again until they can move fully into a room.)"


^ tenzij je bedoelt dat ze meer dan 2 vakjes per keer kunnen bewegen?
Fuuuuu....

Heb ik dáár overheen gelezen |:(

Dat verandert wel redelijk de boel.

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 20:37

DataGhost

iPL dev

Okee, toch een fatsoenlijke strategie verzonnen naar aanleiding van deel 2 en het blijkbare gemak van het met de hand oplossen. Deze draait nu redelijk snel, 2-8 seconden afhankelijk van de input. Eigenlijk een soort heuristische bruteforce dus er zal ongetwijfeld een nog snellere methode zijn. Zelfs hieraan is nog een hoop op te lossen omdat het een en ander dubbel gecheckt wordt, maar goed.

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

[ Voor 11% gewijzigd door DataGhost op 23-12-2021 15:46 ]


  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Remcoder schreef op donderdag 23 december 2021 @ 14:59:
[...]

Fuuuuu....

Heb ik dáár overheen gelezen |:(

Dat verandert wel redelijk de boel.
Fuuuuuuu…. Ik ook.
Dat maakt de boel aanzienlijk meer constrained.

[ Voor 9% gewijzigd door armageddon_2k1 op 23-12-2021 16:02 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
tarlitz schreef op donderdag 23 december 2021 @ 11:04:
Leuke puzzel vandaag, ik ben voor de 'no-code' optie gegaan :D
Ik had dit ook geprobeerd maar helaas kreeg ik er het verkeerde antwoord uit... Misschien heb ik ergens een optimale zet gemist of heb ik me verrekend. Gelukkig kan ik beter programmeren dan rekenen.
Creepy schreef op donderdag 23 december 2021 @ 10:33:
Ik merk wel dat ik een beetje AoC moe begin te worden.
Ik vind het zelf nog wel leuk maar ik vind dat er wel veel tijdrovende opdrachten tussen zitten. Ik kan me voorstellen dat als je weinig vrije tijd hebt het moeilijk bij te benen is.
spoiler:
Lijkt een beetje op de toren van Hanoi maar dan met wat extra contraints?
Ik dacht zelf meer aan
spoiler:
Sokoban
, waar ik ook wel eens een solver voor geschreven heb.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Remcoder schreef op donderdag 23 december 2021 @ 14:59:
Heb ik dáár overheen gelezen |:(

Dat verandert wel redelijk de boel.
Ik weet niet eens zeker of het wel uitmaakt voor de state space. Zijn er toestanden die je zonder die restrictie wel kunt bereiken, en met de restrictie niet?

Zoniet, dan maakt het alleen uit voor het aantal zetten per toestand, maar dat is op z'n hoogst een constante factor.

[ Voor 14% gewijzigd door Soultaker op 23-12-2021 16:22 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:53

Creepy

Tactical Espionage Splatterer

Soultaker schreef op donderdag 23 december 2021 @ 16:16:
[...]
Ik vind het zelf nog wel leuk maar ik vind dat er wel veel tijdrovende opdrachten tussen zitten. Ik kan me voorstellen dat als je weinig vrije tijd hebt het moeilijk bij te benen is.
Vrije tijd is op het moment het probleem niet :P

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Zo, Dag 23 opgelost in Python.
Draait in 1 à 2 seconde.

spoiler:
Dijkstra's algoritme gebruikt. A* helemaal niet nodig gehad.

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

Soultaker schreef op donderdag 23 december 2021 @ 16:16:
Ik vind het zelf nog wel leuk maar ik vind dat er wel veel tijdrovende opdrachten tussen zitten. Ik kan me voorstellen dat als je weinig vrije tijd hebt het moeilijk bij te benen is.
Pff inderdaad. 's morgens lees ik de opgave als ik opsta en onderweg naar werk denk ik er over na. Oplossen moet dan tussen de bedrijven door, tijdens lunch en 's avonds. Als het dan niet zo vlot gaat, kom ik in tijdnood.

Zo ben ik ook nog met deel 2 van de cuboids van gisteren bezig, zit nog ergens een bug in, maar met driedimensionale tekenstijl is het allemaal net wat lastiger.

Vandaag wel gelezen, maar niet aan begonnen. Ach, in de afgelopen jaren ben ik nog nooit zover gekomen als dit jaar dus dat is al winst :)

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


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 20:37

DataGhost

iPL dev

P_Tingen schreef op donderdag 23 december 2021 @ 21:53:
[...]

Pff inderdaad. 's morgens lees ik de opgave als ik opsta en onderweg naar werk denk ik er over na. Oplossen moet dan tussen de bedrijven door, tijdens lunch en 's avonds. Als het dan niet zo vlot gaat, kom ik in tijdnood.

Zo ben ik ook nog met deel 2 van de cuboids van gisteren bezig, zit nog ergens een bug in, maar met driedimensionale tekenstijl is het allemaal net wat lastiger.

Vandaag wel gelezen, maar niet aan begonnen. Ach, in de afgelopen jaren ben ik nog nooit zover gekomen als dit jaar dus dat is al winst :)
Met de juiste aanpak maakt het aantal dimensies niet eens uit als het goed is, en zou een upping the ante net zo goed dezelfde opgave maar dan in 4D kunnen zijn. Dus als je dingen wilt uittekenen kan dat prima in 2D.

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 03-06 12:49

Varienaja

Wie dit leest is gek.

Het is nog steeds een beetje (EEN BEETJE??) een slagveld. Maar ik heb geen zin meer in refactorings. Java dag 23.

Ik ben allang blij, dat de goede antwoorden er weer uitkomen. (Daarnet bij het fatsoeneren van de code liep alles ineens in de soep.)

Siditamentis astuentis pactum.


  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

DataGhost schreef op donderdag 23 december 2021 @ 22:03:
[...]

Met de juiste aanpak maakt het aantal dimensies niet eens uit als het goed is, en zou een upping the ante net zo goed dezelfde opgave maar dan in 4D kunnen zijn. Dus als je dingen wilt uittekenen kan dat prima in 2D.
Ja dat had ik ook al bedacht. Ik denk dat ik op zich de goede aanpak heb, een aantal testcases lopen goed in 2D maar niet allemaal, dus zoeken zoeken zoeken

(het is soms net werk :+ )

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


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 20:37

DataGhost

iPL dev

P_Tingen schreef op donderdag 23 december 2021 @ 22:08:
[...]

Ja dat had ik ook al bedacht. Ik denk dat ik op zich de goede aanpak heb, een aantal testcases lopen goed in 2D maar niet allemaal, dus zoeken zoeken zoeken

(het is soms net werk :+ )
Niet dat het per se is wat je nu moet doen, maar dikke kans dat je probleem zich vanzelf oplost als je je code zo maakt dat een cuboid een arbitrair aantal dimensies kan hebben :+ 8)7 Dan vallen als het goed is alle typfoutjes eruit.

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Is er iemand in staat mijn puzzle input voor dag 23 part 1 te draaien? Ik zie het niet meer. Test input gaat goed maar mijn input niet en handmatig kom ik ook op hetzelfde uit en m’n vrouw na 1 uur puzzelen ook….

code:
1
2
3
4
5
#############
#...........#
###D#A#C#A###
  #D#C#B#B#
  #########

[ Voor 6% gewijzigd door armageddon_2k1 op 24-12-2021 07:54 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
armageddon_2k1 schreef op vrijdag 24 december 2021 @ 07:54:
Is er iemand in staat mijn puzzle input voor dag 23 part 1 te draaien? Ik zie het niet meer. Test input gaat goed maar mijn input niet en handmatig kom ik ook op hetzelfde uit en m’n vrouw na 1 uur puzzelen ook….

code:
1
2
3
4
5
#############
#...........#
###D#A#C#A###
  #D#C#B#B#
  #########
Ik heb hem tot nu alleen met de hand opgelost, maar wat is de score waarop je uitkomt?

Acties:
  • 0 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
armageddon_2k1 schreef op vrijdag 24 december 2021 @ 07:54:
Is er iemand in staat mijn puzzle input voor dag 23 part 1 te draaien? Ik zie het niet meer. Test input gaat goed maar mijn input niet en handmatig kom ik ook op hetzelfde uit en m’n vrouw na 1 uur puzzelen ook….

code:
1
2
3
4
5
#############
#...........#
###D#A#C#A###
  #D#C#B#B#
  #########
Mijn code komt uit op
spoiler:
19167


Belangrijkste bij part 1 is:
spoiler:
Je hebt de twee allerbuitenste kamers in de gang niet nodig en je wilt met je laagste amphipods de meeste stappen zetten. Alleen met C/D een extra stap als het echt nodig is


Visueel uitgeschreven:

spoiler:
Afbeeldingslocatie: https://tweakers.net/i/SK_IYtx3QcGrqaHPn14DuJ8zYYU=/x800/filters:strip_icc():strip_exif()/f/image/Su6JYQCuIva2uvXZqftkd4pP.jpg?f=fotoalbum_large

[ Voor 41% gewijzigd door Diderikdm op 24-12-2021 08:30 ]


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Remcoder schreef op vrijdag 24 december 2021 @ 08:09:
[...]

Ik heb hem tot nu alleen met de hand opgelost, maar wat is de score waarop je uitkomt?
Ik kom uit op 19167, zoals hierboven ook aangegeven en em dat is niet correct…

Ik weet dus niet of ik moet lachen of huilen.

[ Voor 8% gewijzigd door armageddon_2k1 op 24-12-2021 08:30 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
armageddon_2k1 schreef op vrijdag 24 december 2021 @ 08:30:
[...]


Ik kom uit op 19167, zoals hierboven ook aangegeven en em dat is niet correct…

Ik weet dus niet of ik moet lachen of huilen.
.. Ik heb je even opgezocht op de eerste pagina van dit topic.. Kijk nog eens naar je sterren voor deze dag :X

Acties:
  • +2 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Diderikdm schreef op vrijdag 24 december 2021 @ 08:33:
[...]


.. Ik heb je even opgezocht op de eerste pagina van dit topic.. Kijk nog eens naar je sterren voor deze dag :X
Huh?

Maar als ik naar m’n aoc pagina ga dan is alleen part 1 geactiveerd. Ik kan letterlijk part 2 niet zien. Wat ik ook probeer.

EDIT: In cognito wel 8)7

EDIT: Aaaaaaaargh. Ingelogd met m’n verkeerde GitHub. Die van m’n werk!

[ Voor 19% gewijzigd door armageddon_2k1 op 24-12-2021 08:36 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
armageddon_2k1 schreef op vrijdag 24 december 2021 @ 08:34:
[...]


Huh?

Maar als ik naar m’n aoc pagina ga dan is alleen part 1 geactiveerd. Ik kan letterlijk part 2 niet zien. Wat ik ook probeer.
Kan het zijn dat je bent uitgelogd op AoC/op een ander account zit? op het leaderboard zie ik dat je part1 al af hebt.

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Maar dan snap ik het nog steeds niet. Want op een gegeven moment heb ik het dus goed ingevuld maar niet doorgehad….snugger.

Oftewel de grootste beperking van succesvol aoc doen ben ik zelf.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 01-05 10:06
Holy shit, wat was dit!

spoiler:
In eerste instantie vm gebouwd om te kijken wat er gebeurde maar kon weinig patronen vinden. Uiteindelijk in de "source code" gedoken om te kijken of ik daar iets zag. Daar heb je 14 gelijke blokken met 3 variabelen (a, b en c) per blok. Uiteindelijk doet elk blok het volgende: er wordt gecheckt of (z % 26) + b == N (N is huidige input). Zo ja, dan wordt z door a gedeeld. Zo nee, dan wordt z = z * 26 + N + c.

Ik heb de variabelen uit de input geextract en daar zie je dat a altijd 1 of 26 is en b > 10 als a == 1. Beide gevallen komen even vaak voor. In het geval van a == 1 groeit z dus altijd met z * 26 + N + c. Het andere geval moet je dus kloppend maken om te zorgen dat dan altijd z / 26 wordt gedaan door (z % 26) + b te berekenen en alleen verder te gaan als die tussen 1 en 9 valt. Met backtracking zoek ik dan de values voor de overige gevallen.

https://github.com/arjand...ain/python/24/solution.py

Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
MrHaas schreef op vrijdag 24 december 2021 @ 09:07:
Holy shit, wat was dit!

spoiler:
In eerste instantie vm gebouwd om te kijken wat er gebeurde maar kon weinig patronen vinden. Uiteindelijk in de "source code" gedoken om te kijken of ik daar iets zag. Daar heb je 14 gelijke blokken met 3 variabelen (a, b en c) per blok. Uiteindelijk doet elk blok het volgende: er wordt gecheckt of (z % 26) + b == N (N is huidige input). Zo ja, dan wordt z door a gedeeld. Zo nee, dan wordt z = z * 26 + N + c.

Ik heb de variabelen uit de input geextract en daar zie je dat a altijd 1 of 26 is en b > 10 als a == 1. Beide gevallen komen even vaak voor. In het geval van a == 1 groeit z dus altijd met z * 26 + N + c. Het andere geval moet je dus kloppend maken om te zorgen dat dan altijd z / 26 wordt gedaan door (z % 26) + b te berekenen en alleen verder te gaan als die tussen 1 en 9 valt. Met backtracking zoek ik dan de values voor de overige gevallen.

https://github.com/arjand...ain/python/24/solution.py
spoiler:
Ik heb maar een formule-parser gebouwd, omdat ik te lui was om met de hand uit te zoeken wat er eigenlijk gebeurt. Dit levert dit soort formules op (ik ziet nu dat ik mijn MONAD als stack gedefinieerd heb, dus MONAD[0] is het 14e getal):
z=(z14==0)
z14=(z13//26*(25*c14+1)+(MONAD[0]+7)*c14)
c14=((z13%26)!=MONAD[0])
z13=(z12//26*(25*c13+1)+(MONAD[1]+13)*c13)
c13=(((z12%26)-9)!=MONAD[1])
...
...
z1=(z0*(25*c1+1)+(MONAD[13]+6)*c1)
c1=(((z0%26)+11)!=MONAD[13])
z0=0
Soms wordt de eerste term niet door 26 gedeeld, soms wel. Zal wel te maken hebben met de grootte van het getal.

Anyway, nu maar gaan backtracken om de hoogste getallen in MONAD te vinden.

When life gives you lemons, start a battery factory


Acties:
  • +2 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
Ja dacht dat we de moeilijke wel hadden gehad… na veel gepruts wel een mooie methode gebruikt:
spoiler:
Bij het laatste blok begonnen en gesimuleerd voor welke z waardes een 0 eruit kwam. Dan weet je dus wat de output van het blok ervoor moet zijn. Toen voor dat blok gekeken bij welke inputs er geldige outputwaardes uitkwamen. Zo doorgaan totdat je bij begin bent.

En uiteindelijk van voren naar achter en beginnen van z=0. Door over de waardes 9..1 te itereren vindt je dan een geldige waarde voor dat blok. Veertien keer doen en klaar.

Deel twee itereren over 1..9

Acties:
  • 0 Henk 'm!

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 01-05 10:06
Asgardian28 schreef op vrijdag 24 december 2021 @ 11:41:
Ja dacht dat we de moeilijke wel hadden gehad… na veel gepruts wel een mooie methode gebruikt:
spoiler:
Bij het laatste blok begonnen en gesimuleerd voor welke z waardes een 0 eruit kwam. Dan weet je dus wat de output van het blok ervoor moet zijn. Toen voor dat blok gekeken bij welke inputs er geldige outputwaardes uitkwamen. Zo doorgaan totdat je bij begin bent.

En uiteindelijk van voren naar achter en beginnen van z=0. Door over de waardes 9..1 te itereren vindt je dan een geldige waarde voor dat blok. Veertien keer doen en klaar.

Deel twee itereren over 1..9
Nice, goed gevonden!

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23:10

Janoz

Moderator Devschuur®

!litemod

spoiler:
Ik heb uiteindelijk maar flink met de hand lopen puzzelen. Uiteindelijk er achter gekomen dat ik het hele probleem kon reduceren tot het samen voegen van paren waarbij het ene deel het antwoord ophoogde en het andere deel dat weer verlaagde. Van elk paar bruteforce ik de 81 mogelijkheden van bovenaf en stop ik bij de eerste mogelijkheid waar 0 uitkomt.

Nu heb ik alles nog met de hand uitgeschreven dus ik moet later vandaag de boel nog even netter maken zodat het ook gewoon voor de input werkt.


Wel jammer dat ik eigenlijk helemaal voor niks een VM gemaakt heb :). Maar aan de andere kant kon ik die mooi wel gebruiken om constant mijn refactoring te valideren.

spoiler:
Oh, nu ik er naar kijk heb ik zelfs nog een beetje dom gedaan en zijn het maar 9 mogelijkheden om te controleren

[ Voor 8% gewijzigd door Janoz op 24-12-2021 12:53 ]

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


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23:10

Janoz

Moderator Devschuur®

!litemod

spoiler:
Zo, alles een beetje opgeruimd en alle hardcoded meuk vervangen door inlezen. Paartjes bij elkaar zoeken en dan per paar bepalen welk hoogste/laagste digit een oplossing is. Dat 7 keer doen en klaar.


dag 24 in java

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


Acties:
  • 0 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
Python dag 24

Deze puzzel heeft me een aantal uur gekost voordat ik überhaupt een richting had waar ik op moest denken.

spoiler:
Al dacht ik nog wel op basis van 2018 - 16, 19 en 21 dat er waarschijnlijk wel subroutines in zouden zitten voor 9 ** 14 mogelijkheden

[ Voor 31% gewijzigd door Diderikdm op 24-12-2021 15:13 ]


Acties:
  • +1 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 03-06 14:34
spoiler:
Tip: tijdens het debuggen z converteren naar 26-tallig stelsel. Dan zie je dat er elke stap alleen een 'cijfer' achteraan bijkomt of het laatste 'cijfer' wegvalt.

Ik heb uiteindelijk het 'programma' handmatig vertaald naar Excel formules. Eens een leuk alternatief.
Met formules had ik het punt bereikt dat ik al een heel kleine z over had, door telkens het input cijfer zo veel mogelijk zo te kiezen dat er van z een 'cijfer' af viel.
Vervolgens experimenteel ontdekt dat het resultaat alleen nog afhing van het eerste input cijfer. Die handmatig 9...1 uitgeprobeerd en dat leidde tot het goede antwoord.

Acties:
  • 0 Henk 'm!

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
joppybt schreef op vrijdag 24 december 2021 @ 15:43:
spoiler:
Tip: tijdens het debuggen z converteren naar 26-tallig stelsel. Dan zie je dat er elke stap alleen een 'cijfer' achteraan bijkomt of het laatste 'cijfer' wegvalt.

Ik heb uiteindelijk het 'programma' handmatig vertaald naar Excel formules. Eens een leuk alternatief.
Met formules had ik het punt bereikt dat ik al een heel kleine z over had, door telkens het input cijfer zo veel mogelijk zo te kiezen dat er van z een 'cijfer' af viel.
Vervolgens experimenteel ontdekt dat het resultaat alleen nog afhing van het eerste input cijfer. Die handmatig 9...1 uitgeprobeerd en dat leidde tot het goede antwoord.
spoiler:
Grappig, die functie kende ik nog niet.

Ik had wel in google spreadsheets alles uitgewerkt en gereduceerd tot de daadwerkelijke formules, alleen ik zat me nog af te vragen hoe dat nu zit met die pairs waar de rest het over had, maar ook met de tips (en de code) snapte ik nog niet wat er nu precies gebeurt. Ik had de code lokaal gedraaid en met de debugger erdoorheen gestapt of ik ergens een aha-moment zou krijgen, maar nee.

Ik snap het overigens nog steeds niet, maar uiteindelijk met de BASE functie en jouw tip gaan puzzelen en de getallen gevonden. Dus toch nog enigszins op eigen kracht :P

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
joppybt schreef op vrijdag 24 december 2021 @ 15:43:
spoiler:
Tip: tijdens het debuggen z converteren naar 26-tallig stelsel. Dan zie je dat er elke stap alleen een 'cijfer' achteraan bijkomt of het laatste 'cijfer' wegvalt.

Ik heb uiteindelijk het 'programma' handmatig vertaald naar Excel formules. Eens een leuk alternatief.
Met formules had ik het punt bereikt dat ik al een heel kleine z over had, door telkens het input cijfer zo veel mogelijk zo te kiezen dat er van z een 'cijfer' af viel.
Vervolgens experimenteel ontdekt dat het resultaat alleen nog afhing van het eerste input cijfer. Die handmatig 9...1 uitgeprobeerd en dat leidde tot het goede antwoord.
Thanks, de tip met het 26-tallig stelsel zorgde ervoor dat ik eindelijk een oplossingsrichting had!

When life gives you lemons, start a battery factory


Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Diderikdm schreef op vrijdag 24 december 2021 @ 14:56:
Python dag 24

Deze puzzel heeft me een aantal uur gekost voordat ik überhaupt een richting had waar ik op moest denken.

spoiler:
Al dacht ik nog wel op basis van 2018 - 16, 19 en 21 dat er waarschijnlijk wel subroutines in zouden zitten voor 9 ** 14 mogelijkheden
Als ik mijn data door jouw code gooi, krijg ik een ander getal voor deel 2.

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • FCA
  • Registratie: April 2000
  • Laatst online: 22:28

FCA

Poeh, deel 24 was me er eentje...
Uiteindelijk veel zitten rekenen op papier om tot een oplossing te komen

spoiler:
Al snel gezien dat er 14 bijna identieke blokken waren, waarin telkens 3 getallen varieerden, en de x en y telkens op 0 werden gezet. Alleen w en z waren dus belangrijk, en w was telkens de input.

Uiteindelijke oplossing was om een inverse "functie" (kan meerdere outputs hebben) hiervoor te bouwen (met als input 5 waardes: uitkomst, w, en de 3 varierende getallen), en zo terug te itereren vanaf de uitkomst z=0. alle paden bijhoudend. Daarna alle paden naar getallen omzetten, lijst sorteren en onderste en bovenste pakken.

Niet megasnel, berekent veel te veel (namelijk alle mogelijke oplossingen, had gehoopt dat dat deel 2 zou zijn).

Maar goed, wel helemaal zelf gedaan, en blijf tot nu toe lekker elke dag de opgave van die dag oplossen.
spoiler:
Trouwens, als er niet zoveel patronen in hadden gezeten (de mod 26 truc), had je met een known-start en known-end een mooie 2* 9 **7 oplossing nog kunnen bouwen). Ik was daar ook een heel eind mee, tot ik erachter kwam dat bij sommige stappen het aantal mogelijk paden drastisch gereduceerd werd.

[ Voor 15% gewijzigd door FCA op 24-12-2021 17:26 ]

Verandert z'n sig te weinig.


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 03-06 14:34
Voor dag 22 (3D cuboid matchen) hebben op dit moment 10860 mensen goud en 6110 zilver.

Dat betekent volgens mij dat maar liefst 36% deel 2 daar nog niet heeft weten op te lossen. En fors percentage zo op het eind.

Acties:
  • +1 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
KabouterSuper schreef op vrijdag 24 december 2021 @ 16:40:
[...]

Als ik mijn data door jouw code gooi, krijg ik een ander getal voor deel 2.
Ah je hebt gelijk! Had iets gerefactord en niet meer gecheckt of het klopte 8)7
spoiler:
Althans.. de leading 1's waren hetzelfde en ik had niet de rest niet meer gecheckt

Had de a en b van de mn omgedraaid en de lijst reversed.. maar dat kan alleen als de paren lineair index 0 -> -1, 1 -> -2, 2 -> -3.. etc zijn


Ik heb mn code terug aangepast thanks!

[ Voor 22% gewijzigd door Diderikdm op 24-12-2021 18:00 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Ik vond het een leuk probleem vandaag! Ook omdat er, in tegenstelling tot vorige jaren, na het analyseren van de machinecode ook nog wat geprogrammeerd moest worden, en je dus niet alleen de invoer kunt bekijken. Ik neem tenminste aan dat niemand het antwoord handmatig heeft kunnen vinden (ik heb het even kort geprobeerd, maar kwam er niet uit).

Ik denk trouwens dat dit wel de hoogste ratio van tijd-voor-deel-1 tot tijd-voor-deel-2 heeft van alle problemen, gezien hoe ingewikkeld deel 1 is en hoe eenvoudig deel 2 daarna is.

(Python code, voor de volledigheid).
MrHaas schreef op vrijdag 24 december 2021 @ 09:07:
spoiler:
daar zie je dat a altijd 1 of 26 is en b > 10 als a == 1.
Ah, dat had ik me nog niet eens gerealiseerd! Goed gezien.

Acties:
  • 0 Henk 'm!

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Ik houd mijn hart vast voor morgen. Traditioneel is die op eerste kerstdag normaal wel eenvoudig, maar na vandaag en gister heb ik daar geen vertrouwen meer in...

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:53

Creepy

Tactical Espionage Splatterer

Sterkte gewenst dan maar voor morgen ;) . En fijne feestdagen!

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • +1 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

joppybt schreef op vrijdag 24 december 2021 @ 17:35:
Voor dag 22 (3D cuboid matchen) hebben op dit moment 10860 mensen goud en 6110 zilver.

Dat betekent volgens mij dat maar liefst 36% deel 2 daar nog niet heeft weten op te lossen. En fors percentage zo op het eind.
HA! maak daar +1 van want ik heb hem zojuist ook gefixt.
Het heeft even geduurd, maar ik heb hem (het was 1268313839428137 overigens).

spoiler:
Ik heb eerst een tijd zitten puzzelen hoe ik het moest aanpakken. Toen zag ik hier de tip om bij overlappingen alle stukken eraf te snijden die niet overlappen. Daar kon ik wat mee.

Bij het inlezen vergelijk ik de net ingelezen kubus (de "nieuwe") met alle bestaande kubussen. Ik check de bestaande kubussen één voor één of de nieuwe kubus die overlapt. Zo ja, dan snij ik alle delen van de bestaande kubus af en maak daar een zelfstandige delen van. Na afloop is de 'oude' kubus gereduceerd tot dat deel wat overlapte met de nieuwste kubus, maar omdat dat ook al in de nieuwe kubus zit, kan het weg (moet het weg, anders heb je dubbeltellingen).

Schematisch:
Afbeeldingslocatie: https://tweakers.net/i/87z20dCzGNYt6j8L4kEOoiy7AvQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/dxvZBlkT82ZYUVaa8CdWOXdq.png?f=user_large

Dat deel werkte redelijk vlot. Het duurde even voor ik doorhad dat je ook moet checken of een nieuwe kubus aan alle kanten een reeds bestaande kubus overlapt. Als dat zo is, kan de bestaande in 1x weg en ben je klaar met die kubus. Na het controleren op overlappingen kun je de nieuwe kubus ook gelijk weggooien als die "uit" staat, want dan heeft die verder geen invloed, maar is het alleen maar extra data wat je proces vertraagt.

Uiteindelijk had ik alles wel door hoe het moest, maar had ik nog steeds fouten bij de testinvoer. Eindeloos mijn algoritme zitten checken wat controleert op uitstulpingen aan x- y- en z-kant, maar dat leek allemaal in orde. Tot ik uiteindelijk met de debugger de fout vond in het deel wat controleert of een nieuwe kubus een bestaande volledig overlapt. Daar zat een kopieerfoutje in en had ik ergens x2 en y2 staan in plaats van x1 en y2. Tja, dan wordt het niks.

Fun fact: mijn vrouw zit tv te kijken en ik kom even dansend de kamer in om te melden dat ik mijn kubusprobleem heb opgelost. Ze kijkt me aan: "ok, haha, word je daar zo blij van?". Toch leuk, ik denk dat je programmeur moet zijn om dat te snappen. Uren en uren pielen en dat alleen voor die mooie tekst "That's the right answer!". :*)

* P_Tingen is even een blije guppie

[ Voor 4% gewijzigd door P_Tingen op 24-12-2021 20:56 ]

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


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

DataGhost schreef op donderdag 23 december 2021 @ 22:10:
[...]
Niet dat het per se is wat je nu moet doen, maar dikke kans dat je probleem zich vanzelf oplost als je je code zo maakt dat een cuboid een arbitrair aantal dimensies kan hebben :+ 8)7 Dan vallen als het goed is alle typfoutjes eruit.
Ik heb het nu niet zo opgelost, maar met een fixed aantal dimensies. Heb jij het wel generiek gedaan? Voorbeeldje?

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


Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 20:37

DataGhost

iPL dev

P_Tingen schreef op vrijdag 24 december 2021 @ 20:57:
[...]

Ik heb het nu niet zo opgelost, maar met een fixed aantal dimensies. Heb jij het wel generiek gedaan? Voorbeeldje?
Nee dat heb ik niet gedaan, maar moeilijk is dat verder niet als je de "juiste" manier van overlap hebt geimplementeerd.

spoiler:
Als je twee overlappende rechthoeken (2D dus) A en B hebt dan kan je in de x-richting kijkend A opsplitsen in maximaal drie rechthoeken A, A1 en A2, waarbij A1 de rechthoek is gevormd door het deel van A wat links van B ligt en met dezelfde y-coordinaten van A, als dat deel bestaat. Je past in dat geval van A het linker x-coordinaat aan naar het linker x-coordinaat van B. Hetzelfde doe je aan de rechterkant om A2 te krijgen (of niet). A is nu een kleinere rechthoek, nog steeds even hoog maar met precies dezelfde breedte als het gedeelte van B wat overlapt. A1 en A2 overlappen niet met elkaar, A of B, dus je hoeft alleen nog maar te kijken naar het restant wat tussen A en B overlapt. Dus je kan hetzelfde riedeltje herhalen voor de Y-richting, waarbij je dus maximaal twee extra rechthoeken A3 en A4 krijgt. A is nu precies het gedeelte wat overlapt tussen A en B. Nu gooi je A weg. Als je B aan moest zetten, houd je B, anders gooi je B ook weg. Uiteindelijk heb je dus maximaal A1, A2, A3, A4 en misschien B overgehouden, welke allemaal niet met elkaar overlappen.
Voor drie dimensies doe je exact hetzelfde maar kijk je daarna ook nog in de Z-richting en zijn het balken in plaats van rechthoeken. Daarmee krijg je maximaal A1, A2, A3, A4, A5, A6 en misschien B. Als je je coordinaten niet in hardcoded variabelen x1, x2, y1, y2, z1, z2 opslaat maar in twee arrays begin[dim] en eind[dim] met dim dus het aantal dimensies kan je diezelfde berekeningen doen in een loopje voor een arbitrair aantal dimensies. Het kan bijv. ook in 1D, dan zijn het allemaal lijnstukken, maar 6D is ook geen probleem. Op een gegeven moment krijg je wel veel hyperrechthoeken natuurlijk


Edit: niet echt getest maar je kan ze naast elkaar leggen en vergelijken. De minus-method doet het meeste werk.
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

[ Voor 5% gewijzigd door DataGhost op 24-12-2021 22:16 ]


Acties:
  • +1 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Zo bijvoorbeeld.

Oorspronkelijk had ik het zelf ook voor 3 dimensies uitgeschreven, maar de code is korter en in een zekere zin simpeler als je 'm generiek schrijft.

[ Voor 5% gewijzigd door Soultaker op 25-12-2021 15:33 ]


Acties:
  • +3 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
Nou het zit er weer op, leuke laatste puzzel om mee af te sluiten!

Ging dit jaar weer beter dan vorig jaar, 22 keer top 1000 met als uitschieter een keertje 119e.

Gefeliciteerd Christofer Ohlsson en UnderKoen. En mezelf met plek 3 :)
Werd nog spannend op het einde!

En iedereen die plezier heeft gehad met de puzzels, want daar gaat eigenlijk om zoals de bedenker van AoC Eric Wastl zegt. Uiteindelijk geeft het ook wel wat stress om de puzzel zo snel mogelijk op te lossen. Misschien volgend jaar maar eens rustig aan.

Acties:
  • +2 Henk 'm!

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 01-05 10:06
Asgardian28 schreef op zaterdag 25 december 2021 @ 06:35:
Nou het zit er weer op, leuke laatste puzzel om mee af te sluiten!

Ging dit jaar weer beter dan vorig jaar, 22 keer top 1000 met als uitschieter een keertje 119e.

Gefeliciteerd Christofer Ohlsson en UnderKoen. En mezelf met plek 3 :)
Werd nog spannend op het einde!

En iedereen die plezier heeft gehad met de puzzels, want daar gaat eigenlijk om zoals de bedenker van AoC Eric Wastl zegt. Uiteindelijk geeft het ook wel wat stress om de puzzel zo snel mogelijk op te lossen. Misschien volgend jaar maar eens rustig aan.
Goed gedaan! Ik ben blij dat ik de puzzel elke keer op de dag zelf heb weten op te lossen en meeste dagen ook voor 7:00! Altijd hoogtepuntje van het jaar dit, maar ik ben blij dat het er weer opzit want elke dag 5:30 opstaan begon er wel in te hakken >:)

Acties:
  • 0 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
Herkenbaar, ook als je paar dagen een lastige puzzel hebt dan hakt dat er ook wel in. En d'r zaten toch wel wat krakers tussen weer

Acties:
  • +2 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 03-06 12:49

Varienaja

Wie dit leest is gek.

Aan de tijd te zien die ik vandaag nodig had voor dit simpele klusje ben ik toe aan een slaapje. Prettige feestdagen allemaal! :>

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 03-06 14:34
Intrigerend dat vandaag 1444 mensen deel 1 wel af hebben maar deel twee niet. Terwijl deel 2 toch echt 'niet zo moeilijk' is 🙂

Acties:
  • 0 Henk 'm!

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 01-05 10:06
joppybt schreef op zaterdag 25 december 2021 @ 09:44:
Intrigerend dat vandaag 1444 mensen deel 1 wel af hebben maar deel twee niet. Terwijl deel 2 toch echt 'niet zo moeilijk' is 🙂
Deel 2 kan je alleen krijgen als je 49 sterren hebt

Acties:
  • +1 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
@joppybt die tweede ster krijg je alleen als je alle andere puzzels hebt opgelost.

Zat net te denken dat de ratio 1 ster / 2 sterren een mooie indicator is voor de moeilijkheid van een jaar (of er grote krakers tussen zaten). 2018 springt er daar uit.

Nu kan je dit jaar nog niet echt vergelijken, omdat deze ratio eerst heel erg wijzigt:
- eerst heel laag omdat de toppers als eerste klaar zijn en die ook alle puzzels hebben gehaald
- daarna stuk hoger (mensen die voor de lol doen en een puzzel hebben overgeslagen)
- daarna weer wat omlaag omdat mensen hun openstaande puzzels gaan oplossen

Acties:
  • 0 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
Python dag 25

Dat was weer een mooi event :) Leuke afsluiter aan een toch uiteindelijk pittig jaar!

Ik denk uiteindelijk dat puzzels 1 - 17 relatief aan de makkelijke kant waren vergeleken met voorgaande jaren, en de puzzels hierna juist aan de moeilijkere kant.

Fijne feestdagen iedereen!

Acties:
  • 0 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
@Diderikdm
Doe je filter en lambda expres ipv een comprehension? Ik ben niet zo bekend met beiden, maar dacht me te herinneren dat ieg filter vaak door een comprehension kan worden vervangen, net zoals map. Misschien kwestie van voorkeur

Trouwens ff len(data) en len(data[0]) in een variabele gooien, scheelt getyp

Mooi simpel gemaakt trouwens, gewoon alles in je originele grid gedaan, nice!

[ Voor 27% gewijzigd door Asgardian28 op 25-12-2021 10:34 ]


Acties:
  • +1 Henk 'm!

  • Diderikdm
  • Registratie: December 2020
  • Laatst online: 04-01-2024
Asgardian28 schreef op zaterdag 25 december 2021 @ 10:32:
@Diderikdm
Doe je filter en lambda expres ipv een comprehension? Ik ben niet zo bekend met beiden, maar dacht me te herinneren dat ieg filter vaak door een comprehension kan worden vervangen, net zoals map. Misschien kwestie van voorkeur

Trouwens ff len(data) en len(data[0]) in een variabele gooien, scheelt getyp

Mooi simpel gemaakt trouwens, gewoon alles in je originele grid gedaan, nice!
Thanks!

Eerste puntje was eerder luiheid:) Itereerde eerst over de filter generator, maar dan veranderde de collectectie tijdens iteratie, dus toen maar een [x for x in ()] omheengeplakt (list(filter()) zou dan al mooier zijn), maar een filter is dan inderdaad al niet meer nodig.

Heb het even refactored thanks :)

Acties:
  • +1 Henk 'm!

  • Asgardian28
  • Registratie: December 2012
  • Laatst online: 02-06 21:12
@Diderikdm Top oplossing zo geworden!!

Acties:
  • +1 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 21:54
Deel 1 van vandaag was voor de verandering beter te doen dan de voorgaande dagen.

Uiteindelijk dit jaar 41 sterren gehaald. Had nog iets meer kunnen zijn wanneer ik wat meer tijd had, maar denk niet dat ik op eigen kracht dit jaar alle 50 sterren had kunnen behalen.
Mede doordat mijn puzzel en C# ervaring bestaat uit een paar jaar AOC, dus mis soms nog net ff de handigheid. Dus mijn doelstelling is dan ook alleen maar: zoveel mogelijk oplossen op eigen kracht/kennis.

De eerste helft was goed te doen, daarna vond ik ze pittiger worden.
Maar was weer een leuk december tijdverdrijf.

Misschien aankomende week nog ff kijken of ik er nog wat sterren kan bij sprokkelen.

Soms gaat het niet zoals het moet, maar moet het maar zoals het gaat


Acties:
  • +1 Henk 'm!

  • tarlitz
  • Registratie: Maart 2010
  • Niet online
Yes, leuke opdracht om mee af te sluiten! Ik vond de afgelopen week erg frustererend. Omslachtige puzzels die bijna als werk aanvoelen. Geef mij maar puzzels zoals vandaag, waarbij je met goed nadenken een elegante oplossing kan programmeren (niet dat dit me vandaag gelukt was trouwens 😅).

Dit was mijn eerste aoc, ik werd aangespoord door collega's om mee te doen, maar terugkijkend vond ik het erg leerzaam! Voornamelijk ook door oplossingen van anderen te bestuderen.

Acties:
  • 0 Henk 'm!

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Ik ben niet trots op mijn code van vandaag...

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen


spoiler:
Maar ik heb uiteindelijk 4x de code opnieuw geschreven omdat ik elke keer weer tegen problemen aan liep en ik niet zag waar de fout precies optrad.

Uiteindelijk met behulp van de mini-voorbeelden gevonden waar mijn denkfouten zaten, en daarna nog ruzie gehad met het euvel als een zeekomkommer van positie 0 verplaatst de code dacht dat de zeekomkommer op positie max wel verplaatst kon worden naar positie 0, terwijl die eigenlijk nog behandeld moest worden als bezet.

Uiteindelijk maar de lelijke oplossing van het nogmaals kopieren van de grid gepakt, mijn ster gepakt en klaar.


Voorlopig ben ik even klaar met AoC 2021. De laatste paar puzzels hebben aardig mijn plezier erin vergald, misschien dat ik later nog ga proberen dag 23 opgelost te krijgen met code, maar dat zie ik dan wel weer.

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Remcoder schreef op zaterdag 25 december 2021 @ 13:49:
Ik ben niet trots op mijn code van vandaag...


***members only***


spoiler:
Maar ik heb uiteindelijk 4x de code opnieuw geschreven omdat ik elke keer weer tegen problemen aan liep en ik niet zag waar de fout precies optrad.

Uiteindelijk met behulp van de mini-voorbeelden gevonden waar mijn denkfouten zaten, en daarna nog ruzie gehad met het euvel als een zeekomkommer van positie 0 verplaatst de code dacht dat de zeekomkommer op positie max wel verplaatst kon worden naar positie 0, terwijl die eigenlijk nog behandeld moest worden als bezet.

Uiteindelijk maar de lelijke oplossing van het nogmaals kopieren van de grid gepakt, mijn ster gepakt en klaar.


Voorlopig ben ik even klaar met AoC 2021. De laatste paar puzzels hebben aardig mijn plezier erin vergald, misschien dat ik later nog ga proberen dag 23 opgelost te krijgen met code, maar dat zie ik dan wel weer.
Yep, ik herken het gevoel. Er zaten veel leuke puzzels tussen, maar aan het einde kostte het net teveel moeite om de lol erin te blijven zien. Vanochtend heb ik niet eens geprobeerd om mooie code te schrijven, ik heb alles in een numpy array geknald, heb een while True-loop aangezet en ben koffie gaan maken. Na een handvol minuten had ik het antwoord. En dag 23 heb ik ook met de hand gedaan. Hulde voor degenen die het programmatisch hebben opgelost.

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

Ben nog niet aan het programmeren geslagen, maar wel de opgave al even bekeken. Als ik in aanmerking neem dat alle puzzels zelfs op een computer van 10 jaar oud moeten kunnen worden opgelost (aldus de maker van AoC) vraag ik me af of er een slimme aanpak is voor vandaag of is het gewoon dom doorrekenen?

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


Acties:
  • +1 Henk 'm!

  • Cranzai
  • Registratie: November 2012
  • Laatst online: 01-06 16:54
Diderikdm schreef op zaterdag 25 december 2021 @ 10:25:
Python dag 25

Dat was weer een mooi event :) Leuke afsluiter aan een toch uiteindelijk pittig jaar!

Ik denk uiteindelijk dat puzzels 1 - 17 relatief aan de makkelijke kant waren vergeleken met voorgaande jaren, en de puzzels hierna juist aan de moeilijkere kant.

Fijne feestdagen iedereen!
Respect aan alleen die de puzzel hebben afgemaakt d:)b

De eerste 17 puzzels waren inderdaad goed te doen maar bij mijn eerste deelname inderdaad op dag 18 gestrand.

Wellicht nog wat puzzeltjes later afmaken en anders volgend jaar weer van de partij! In ieder geval weer een goede opfrissen python gehad

Acties:
  • +1 Henk 'm!

  • Liveshort
  • Registratie: Februari 2011
  • Laatst online: 27-05 16:26

Liveshort

Certified Crazy Person

P_Tingen schreef op zaterdag 25 december 2021 @ 14:13:
Ben nog niet aan het programmeren geslagen, maar wel de opgave al even bekeken. Als ik in aanmerking neem dat alle puzzels zelfs op een computer van 10 jaar oud moeten kunnen worden opgelost (aldus de maker van AoC) vraag ik me af of er een slimme aanpak is voor vandaag of is het gewoon dom doorrekenen?
spoiler:
Volgens mij geen slimme aanpak, maar wel een mogelijkheid om het redelijk simpel vectorized te doen (in numpy). Als je de rechtsgaande en benedengaande komkommers splitst in aparte boolean arrays kun je met np.roll in een keer de hele bende naar rechts of onder verplaatsen (inclusief 'wrappen' door de muren). Vervolgens kun je met & collisions uitrekenen en op die manier bepalen wat er blijft staan en wat niet. Beetje goochelen met logical and, not en or en je bent er. Runt instantaan voor de ~400 stappen die voor mijn input nodig waren.

There once was a lady of Wight --- Who travelled much faster than light --- She departed one day --- In a relative way --- And arrived on the previous night


Acties:
  • +1 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Cranzai schreef op zaterdag 25 december 2021 @ 14:15:
De eerste 17 puzzels waren inderdaad goed te doen maar bij mijn eerste deelname inderdaad op dag 18 gestrand.
Niets verplicht je om de puzzels in de oorspronkelijke volgorde te doen he. Als je op dag 18 vast zit kun je gewoon doorgaan (misschien met dag 20, want 19 is ook pittig), en kun je altijd later nog besluiten om terug te komen (of niet).

Acties:
  • 0 Henk 'm!

  • tarlitz
  • Registratie: Maart 2010
  • Niet online
Liveshort schreef op zaterdag 25 december 2021 @ 15:42:
[...]


spoiler:
Volgens mij geen slimme aanpak, maar wel een mogelijkheid om het redelijk simpel vectorized te doen (in numpy). Als je de rechtsgaande en benedengaande komkommers splitst in aparte boolean arrays kun je met np.roll in een keer de hele bende naar rechts of onder verplaatsen (inclusief 'wrappen' door de muren). Vervolgens kun je met & collisions uitrekenen en op die manier bepalen wat er blijft staan en wat niet. Beetje goochelen met logical and, not en or en je bent er. Runt instantaan voor de ~400 stappen die voor mijn input nodig waren.
spoiler:
Prima oplossing idd met `np.roll`. Maar ik kan me wel voor de kop slaan dat ik daar niet aan gedacht heb. Ik heb daar nota bene veel mee gewerkt de afgelopen maanden. Uiteindelijk heb ik zelf met `ndimage.generic_filter` de puzzel opgelost. Maar later realiseerde ik me pas dat ik zelf een variant op `np.roll` gemaakt had 8)7

Acties:
  • +2 Henk 'm!

  • iThinkSo
  • Registratie: April 2011
  • Laatst online: 02-04 12:35

iThinkSo

Ik heb deze tekst en jij niet!

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

Nog even lastig gehad met 23 (omdat ik niet kan lezen) en 24 (gewoon lastig), maar uiteindelijk gelukt!

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:02
Aangezien ik DataGhost niet zie posten, is hier een extra uitdaging voor dag 25: 25-up1.in (980 KiB, afmetingen: 1000 x 1000). Antwoord:
spoiler:
10713


Mijn Python oplossing doet 't in 4,5 seconde. Wie is sneller?

Acties:
  • +1 Henk 'm!

  • Remcoder
  • Registratie: November 2004
  • Laatst online: 03-06 09:05
Ondanks de laatste paar dagen voelt het wel als een gemis nu om geen nieuwe puzzel te krijgen.

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Remcoder schreef op zondag 26 december 2021 @ 10:36:
Ondanks de laatste paar dagen voelt het wel als een gemis nu om geen nieuwe puzzel te krijgen.
Haha, als je je echt verveelt, kan ik je de challenges van Dirk Rijmenants aanraden. Je kunt je behoorlijk lang vermaken met de enigma challenge (http://users.telenet.be/d.rijmenants/en/challenge.htm), maar er zijn er nog een aantal (zie http://users.telenet.be/d.rijmenants/index.htm). Er is er eentje die nog niemand heeft opgelost (misschien eens een poging doen met wat tweakers samen?).

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Cranzai
  • Registratie: November 2012
  • Laatst online: 01-06 16:54
Als we nou eens een set inputs en antwoorden verzamelen, wie maakt dan ML oplossingen voor elke dag? :+

Acties:
  • +1 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Remcoder schreef op zondag 26 december 2021 @ 10:36:
Ondanks de laatste paar dagen voelt het wel als een gemis nu om geen nieuwe puzzel te krijgen.
Des te meer tijd voor https://www.spoj.com/problems/classical/ Spoj :) Het verschil met AoC is dat je je code submit aan spoj die het dan runt met hun input, dus met de hand het antwoord uitrekenen is er niet bij.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Ik ben maar eens begonnen om de vorige jaren ook te doen (2015). En krijg een melding bij een oplossing die ik nog nooit had gehad:
That's not the right answer; your answer is too high. Curiously, it's the right answer for someone else; you might be logged in to the wrong account or just unlucky.
Ik ga maar eens uitzoeken wat hier aan de hand is.

When life gives you lemons, start a battery factory


Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 06:59

Reptile209

- gers -

KabouterSuper schreef op woensdag 2 februari 2022 @ 08:32:
Ik ben maar eens begonnen om de vorige jaren ook te doen (2015). En krijg een melding bij een oplossing die ik nog nooit had gehad:

[...]

Ik ga maar eens uitzoeken wat hier aan de hand is.
Check dat je je eigen input gebruikt hebt O-)
En als dat het geval is, is het dus gewoon toeval (en een teken dat je algoritme nog niet klopt). Ik heb hem ook wel eens gehad :)

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 22:18

P_Tingen

omdat het KAN

Je kan dit krijgen als bv je login veranderd is, maar je nog oude input gebruikt. Ik heb ook nog eens gekeken naar de opgaven van 2015. Ik had die toen al opgeslagen, maar toen ik opnieuw inlogde en mijn input op AoC bekeek, bleek die te verschillen van wat ik had opgeslagen.

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


Acties:
  • +1 Henk 'm!

  • Kazu
  • Registratie: Juni 2004
  • Laatst online: 31-05 22:29
KabouterSuper schreef op woensdag 2 februari 2022 @ 08:32:
Ik ben maar eens begonnen om de vorige jaren ook te doen (2015). En krijg een melding bij een oplossing die ik nog nooit had gehad:

[...]

Ik ga maar eens uitzoeken wat hier aan de hand is.
Ik heb deze afgelopen jaar ook gehad, ondanks dat ik maar één account heb. Dus gewoon puur toeval om op een verkeerd (goed) antwoord te komen :+

PS5 PSN: UnrealKazu

Pagina: 1 ... 15 16 Laatste