Advent of Code 2020 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 ... 13 14 Laatste
Acties:

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
@Dricus Wel apart, ik gebruik geen van die kunstgrepen en zit ook rond 300ms in Kotlin. Maar mutable hash maps etc gaan hielp enorm.

Engineering is like Tetris. Succes disappears and errors accumulate.


  • Singelaar
  • Registratie: November 2008
  • Laatst online: 04-06 08:29
Even iets heel anders:
Ging er iemand anders ook stuk bij het definieren van de functie: count_black_neighbours()? Ik heb toch maar een andere naam gekozen... :)

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 15:06

DataGhost

iPL dev

Singelaar schreef op donderdag 24 december 2020 @ 15:45:
Even iets heel anders:
Ging er iemand anders ook stuk bij het definieren van de functie: count_black_neighbours()? Ik heb toch maar een andere naam gekozen... :)
Um, nee. Dat was bij mij gewoon een built-in method van de native datastructuur die ik gebruikte dus daar heb ik helemaal geen aparte functie voor nodig gehad. En tbh, racisme in een kerstpuzzel over tegeltjes zien is wel erg vergezocht.

spoiler:
Als we daar toch bezig zijn, bij mij is het len(black), volgens mij kan je daar ook nog wel wat stereotypes bij verzinnen :+

[ Voor 13% gewijzigd door DataGhost op 24-12-2020 15:50 ]


  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Dag 24 in Java.

spoiler:
Ik had eerst een HashMap<Point,Boolean> om te onthouden welke tile zwart en welke wit was. Bij het fatsoeneren heb ik hiervan een Set gemaakt, met daarin alleen de zwarte Points. Dat maakt alles veel eenvoudiger zeg :D

Siditamentis astuentis pactum.


Acties:
  • +2 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Singelaar schreef op donderdag 24 december 2020 @ 15:45:
Even iets heel anders:
Ging er iemand anders ook stuk bij het definieren van de functie: count_black_neighbours()? Ik heb toch maar een andere naam gekozen... :)
_O- black tiles matter

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • MerijnB
  • Registratie: Oktober 2000
  • Nu online
MerijnB schreef op woensdag 23 december 2020 @ 10:21:
Ik heb een paar dagen niet zoveel tijd gehad, ben nu weer aan het inhalen, nog even een verlate vraag over day 19 part 2.
Kan iemand me vertellen waarom uit het voorbeeld "babbbbaabbbbbabbbbbbaabaaabaaa" als match zou gelden? Ik vind wel een match, maar die heb ik al voordat alle rules zijn afgelopen, dat geldt dan toch niet denk ik? Heeft iemand nog een app die log kan genereren over dit voorbeeld oid?
Hier een past van mijn log.
Nu het stof van vandaag een beetje gezakt is, iemand die me hier mee kan helpen? Tx!

A software developer is someone who looks both left and right when crossing a one-way street.


  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

MerijnB schreef op donderdag 24 december 2020 @ 17:21:
Nu het stof van vandaag een beetje gezakt is, iemand die me hier mee kan helpen? Tx!
Ik wil niet flauw doen hoor, maar er posten hier velen hun code. Ik zou zeggen doe er je voordeel mee: copy, paste, debug en vergelijk met je eigen code We blijven wel tweakers hé! ;)

Siditamentis astuentis pactum.


Anoniem: 511810

MerijnB schreef op donderdag 24 december 2020 @ 17:21:
[...]


Nu het stof van vandaag een beetje gezakt is, iemand die me hier mee kan helpen? Tx!
Volgens mij gaat het niet lukken alsje achter elkaar de rules gaat interpreteren (te langzaam,in ieder geval bij mij)
spoiler:
wat ik gedaan heb, en volgens mij iedereen?, is een grote regexp maken waar alle rules inzitten, en die loslaten op de individuele strings.
Moet ook, want je string moet aan alle regels voldoen die uiteindelijk in de lijst voorkomen en niet maar een subset. Het zou bijvoorbeeld kunnen zijn dat je string dan eigenlijk te kort is en er nog een stuk aan hoort).


Alsje wilt kun je mijn matlab code bekijken, linkje staat hierboven wel ergens. Daar zit ook dag 19 tussen. Deel1 heb ik op de 'lompe' manier opgelost en in matlabkun je rustig breakpoints zetten en de output bekijken.

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 15:06

DataGhost

iPL dev

Anoniem: 511810 schreef op donderdag 24 december 2020 @ 18:30:
[...]


Volgens mij gaat het niet lukken alsje achter elkaar de rules gaat interpreteren (te langzaam,in ieder geval bij mij)
spoiler:
wat ik gedaan heb, en volgens mij iedereen?, is een grote regexp maken waar alle rules inzitten, en die loslaten op de individuele strings.
Moet ook, want je string moet aan alle regels voldoen die uiteindelijk in de lijst voorkomen en niet maar een subset. Het zou bijvoorbeeld kunnen zijn dat je string dan eigenlijk te kort is en er nog een stuk aan hoort).


Alsje wilt kun je mijn matlab code bekijken, linkje staat hierboven wel ergens. Daar zit ook dag 19 tussen. Deel1 heb ik op de 'lompe' manier opgelost en in matlabkun je rustig breakpoints zetten en de output bekijken.
spoiler:
Lang niet iedereen. Ik had het direct al afgeschreven (met mij nog anderen) omdat het simpelweg geen reguliere grammatica is, dus die kan ook niet met een reguliere expressie beschreven worden. In deel 1 was het dat wel, maar je kon er donder op zeggen dat het in deel 2 niet het geval zou zijn, en dan moet je alsnog iets anders vanaf scratch gaan implementeren. Ook ging ik ervan uit (wederom ten onrechte) dat de input zodanig gevormd zou zijn dat het een regex van 1GB of groter zou opleveren na alle substituties, dus het leek me op meerdere vlakken onhandig om dat als implementatie te kiezen.

Dat er in de praktijk regex-engines zijn die niet-reguliere expressies accepteren betekent niet dat het dan opeens wel een reguliere expressie is. Daarom is m.i. in deel 2 de substitutie te "vriendelijk" gekozen waardoor het in pcre bijvoorbeeld nog steeds te doen is. Ik denk dat de bedoeling inderdaad was om in deel 1 mensen wat meer kennis te laten maken met reguliere expressies, maar dat in deel 2 duidelijk had moeten worden in welke gevallen die niet bruikbaar zijn.


@MerijnB je moet altijd een volledige match hebben. Een regel "a" "b" "b" matcht dus niet "a", "ab" of "abbb", maar alleen "abb". Afhankelijk van wat voor oplossingsrichting je gekozen hebt moet je waarschijnlijk opletten dat een "match" met een van de gesubstitueerde regels niet per se de juiste is. Probeer eerst even na te denken waarom dat zo is, anders heb ik een "spoiler" in de vorm van een voorbeeld wat ik eerder heb gemaakt, wat waarschijnlijk fout gaat met de code die je nu hebt.

  • MerijnB
  • Registratie: Oktober 2000
  • Nu online
Varienaja schreef op donderdag 24 december 2020 @ 18:29:
[...]
Ik wil niet flauw doen hoor, maar er posten hier velen hun code. Ik zou zeggen doe er je voordeel mee: copy, paste, debug en vergelijk met je eigen code We blijven wel tweakers hé! ;)
Mij lijkt uitzoeken waar ik een fout in mijn code heb / waar ik de regels verkeerd interpreteer meer des tweakers dan iemand anders z'n code copy/pasten :)
Anoniem: 511810 schreef op donderdag 24 december 2020 @ 18:30:
[...]


Volgens mij gaat het niet lukken alsje achter elkaar de rules gaat interpreteren (te langzaam,in ieder geval bij mij)
Deel 1 ging prima en best vlot ook, deel 2 weet ik nog niet natuurlijk :)
DataGhost schreef op donderdag 24 december 2020 @ 19:02:
[...]

spoiler:
Lang niet iedereen. Ik had het direct al afgeschreven (met mij nog anderen) omdat het simpelweg geen reguliere grammatica is, dus die kan ook niet met een reguliere expressie beschreven worden. In deel 1 was het dat wel, maar je kon er donder op zeggen dat het in deel 2 niet het geval zou zijn, en dan moet je alsnog iets anders vanaf scratch gaan implementeren. Ook ging ik ervan uit (wederom ten onrechte) dat de input zodanig gevormd zou zijn dat het een regex van 1GB of groter zou opleveren na alle substituties, dus het leek me op meerdere vlakken onhandig om dat als implementatie te kiezen.

Dat er in de praktijk regex-engines zijn die niet-reguliere expressies accepteren betekent niet dat het dan opeens wel een reguliere expressie is. Daarom is m.i. in deel 2 de substitutie te "vriendelijk" gekozen waardoor het in pcre bijvoorbeeld nog steeds te doen is. Ik denk dat de bedoeling inderdaad was om in deel 1 mensen wat meer kennis te laten maken met reguliere expressies, maar dat in deel 2 duidelijk had moeten worden in welke gevallen die niet bruikbaar zijn.


@MerijnB je moet altijd een volledige match hebben. Een regel "a" "b" "b" matcht dus niet "a", "ab" of "abbb", maar alleen "abb". Afhankelijk van wat voor oplossingsrichting je gekozen hebt moet je waarschijnlijk opletten dat een "match" met een van de gesubstitueerde regels niet per se de juiste is. Probeer eerst even na te denken waarom dat zo is, anders heb ik een "spoiler" in de vorm van een voorbeeld wat ik eerder heb gemaakt, wat waarschijnlijk fout gaat met de code die je nu hebt.
Dank, daar kan ik wat mee, ga ik even naar kijken!

@DataGhost wat zou de uitkomst moeten zijn van je voorbeeld?

Nvm ik zie het (en je hebt ws gelijk).

A software developer is someone who looks both left and right when crossing a one-way street.


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Joepie! Dat was een eenvoudige uitsmijter. Nu kan ik terug naar bed en eindelijk uitslapen :D

Dag 25 in Java.

[ Voor 43% gewijzigd door Varienaja op 25-12-2020 06:25 ]

Siditamentis astuentis pactum.


Acties:
  • +1 Henk 'm!

  • Asgardian
  • Registratie: Juli 2005
  • Laatst online: 14-10-2021
Leuke puzzel vandaag, vooral goed lezen. 3e op leaderboard geëindigd.

Moeilijkste dagen by far: monster messages waar ik bijna 7 uur over heb gedaan en de crab cubs, bijna 6 uur en de zeemonster puzzel (4 uur). Die drie nog eens goed bekijken hoe hier van te leren.

Hoogtepunt was de allergens puzzel (189), maar verder bijna altijd buiten de top 1000, (gemiddeld 2000, mediaan 1600). Alles voor dag 13 binnen 1 uur opgelost.

Was echt een belevenis, elke dag iets voor 6:00 opgestaan. Dan zijn 25 dagen wel veel. Maar met kinderen is dat enige rustige uurtje zo 's ochtends vroeg ook wel weer ideaal voor de puzzel.

Christofer Ohlsson en Niels gefeliciteerd met plek 1 en 2! Ennuh ik gebruik gewoon de 'stars' ordering :-)

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 12:18

Dido

heforshe

Varienaja schreef op vrijdag 25 december 2020 @ 06:22:
Joepie! Dat was een eenvoudige uitsmijter. Nu kan ik terug naar bed en eindelijk uitslapen :D
En dan zit ik bij deel 2 alsnog gewoon 5 minuten die tekst te lezen, me afvragend wat ik moet doen 8)7

Maar, yeay :) Plek 5 :) En dat leaderboard heeft wel geholpen om (bijna) elke dag om 6 uur te beginnen!
Vanaf morgen gewoon uitslapen in mijn kerstvakantie :z

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • ZieglerNichols
  • Registratie: Mei 2015
  • Niet online
Laatste dag in Matlab: https://pastebin.com/XAGLgDN2 . Was een makkelijke afsluiter! Het was weer erg leuk dit jaar. Blij met mijn 6e plek op de leaderboard!

Acties:
  • +4 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Dag 25 (Kotlin)

Fijn, zo'n lekker makkelijke uitsmijter.

spoiler:
Ik zat ook nog uitgebreid deel 2 te lezen in de verwachting dat er nog meer zou komen 8)7.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Inderdaad dag25 is een makkie: https://github.com/rverst.../blob/main/Y2020/Day25.cs

Ik ben benieuwd of er nog een shortcut mogelijk is, of inderdaad gewoon lekker makkelijk brute-forcen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@Dricus nette oplossing! Ik heb gewoon de simpele lelijke versie gedaan, geen zin om netter te maken vandaag, ik moet mijn kado's nog in gaan pakken :+

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Woy schreef op vrijdag 25 december 2020 @ 07:46:
@Dricus nette oplossing! Ik heb gewoon de simpele lelijke versie gedaan, geen zin om netter te maken vandaag, ik moet mijn kado's nog in gaan pakken :+
Dankje! Ik had tussen het marineren van de veganistische kalfshaasparfait en het opschuimen van de pastinaakbouillon nog net even tijd om mijn code een beetje op te schonen. :+

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Nou dit is wel de slechtste uitleg ooit. WTF.

spoiler:
Edit: Ik heb naar jullie code gekeken en ik snap nu wat er gebeurt, maar ik snap nog steeds echt de uitleg hierbij niet. Ik kom vanuit de tekst echt niet uit op dat beide dingen tegelijkertijd in de loop gebeuren. Ben ik nu zo dom?

Helaas als je eenmaal de code van een ander gezien hebt, is het extreem triviaal. En ook geen leuke deel 2. Nouja. Jammer.

[ Voor 80% gewijzigd door Hydra op 25-12-2020 08:14 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Mooi! Ik ga 'em later nog ombouwen denk ik. Eerst 24 even opschonen nog.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Dag 25 in Kotlin

Deze was wel heeeeeeeeeel erg makkelijk zeg. In 5 minuten opgeschreven en in 1x goed (nu nog even opschonen). Kwestie van even goed lezen, maar de tekst was vrij duidelijk.

Anyway, lekker makkelijk einde zodat ik niet de hele dag met mijn hoofd ergens anders ben ;) De eerste keer dat ik AoC helemaal gedaan heb!

Fijne kerst allemaal!

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Dricus schreef op vrijdag 25 december 2020 @ 07:23:
Dag 25 (Kotlin)

Fijn, zo'n lekker makkelijke uitsmijter.

spoiler:
Ik zat ook nog uitgebreid deel 2 te lezen in de verwachting dat er nog meer zou komen 8)7.
Deze is heel mooi.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Hydra schreef op vrijdag 25 december 2020 @ 07:59:
spoiler:
Edit: Ik heb naar jullie code gekeken en ik snap nu wat er gebeurt, maar ik snap nog steeds echt de uitleg hierbij niet. Ik kom vanuit de tekst echt niet uit op dat beide dingen tegelijkertijd in de loop gebeuren. Ben ik nu zo dom?
spoiler:
Er staat ook niet dat het beide tegelijk in de loop gebeurt. Maar de eerste stap is de public key vinden, en dan dezelfde transformatie met jouw loopcount op de public key van het andere device. Aangezien je twee maal dezelfde transformatie moet doen met jouw loopcount ( eenmaal met subject 7 om jouw key te vinden, en eenmaal met subject public key van het andere device ) kun je dat direct in dezelfde loop doen. Op het moment dat je jouw key vindt, heb je ook precies de private key.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
armageddon_2k1 schreef op vrijdag 25 december 2020 @ 08:32:
Deze was wel heeeeeeeeeel erg makkelijk zeg. In 5 minuten opgeschreven en in 1x goed (nu nog even opschonen). Kwestie van even goed lezen, maar de tekst was vrij duidelijk.
Okay, ligt aan mij dus :D

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Ja, het stoort me dat ik er zelf niet opkom een loop tail-recursive te maken. Moet ik nog aan werken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Hydra schreef op vrijdag 25 december 2020 @ 08:51:
[...]


Ja, het stoort me dat ik er zelf niet opkom een loop tail-recursive te maken. Moet ik nog aan werken.
Ik kom er zelf ook niet op. Vind het mooi wat Dricus doet. Ligt er maar net aan waar je voorkeur ligt denk ik. Vanwege ontwikkelsnelheid maak ik nou eerst altijd gewoon imperatief loopje. Daarna bouw ik het om. Ik ontwikkel vaak door wat code neer te plempen en breakpoints te zetten en er doorheen te stappen om dubbel te checken. Als ik dan megafunctioneel met al die Kotlin extension functies bezig ben is dat een stuk lastiger vind ik.

Als het allemaal werkt en gecheckt wordt met wat tests ga ik het ombouwen.

Daarnaast vind ik sequences nu eventjes erg leuk.

[ Voor 3% gewijzigd door armageddon_2k1 op 25-12-2020 08:57 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
armageddon_2k1 schreef op vrijdag 25 december 2020 @ 08:56:
Ik kom er zelf ook niet op. Vind het mooi wat Dricus doet. Ligt er maar net aan waar je voorkeur ligt denk ik. Vanwege ontwikkelsnelheid maak ik nou eerst altijd gewoon imperatief loopje. Daarna bouw ik het om.
Ja, zo begin ik ook. Mijn eerste opzet is vrijwel altijd iteratief. Zo zie je maar dat 22 jaar imperatief programmeren behoorlijk ingesleten zit :) En het gaat mij er ook niet zozeer om dat ik vind dat alles perse tailrecursive moet, ik stoor me eraan dat ik niet op het idee kom :) Maar heb dankzij de code van @Dricus hier nu wel wat meer gevoel voor ontwikkeld.
Ik ontwikkel vaak door wat code neer te plempen en breakpoints te zetten en er doorheen te stappen om dubbel te checken. Als ik dan megafunctioneel met al die Kotlin extension functies bezig ben is dat een stuk lastiger vind ik.

Als het allemaal werkt en gecheckt wordt met wat tests ga ik het ombouwen.

Daarnaast vind ik sequences nu eventjes erg leuk.
Ik knal voor deel 1 zo snel mogelijk wat code neer en check 't tegen de voorbeeld input. Werkt 't; mooi. Zo niet; breakpoints en erdoorheen steppen. Vooral bij de eerste opdrachten gaat 't meestal in 1 keer goed. Maar in de latere dagen gaat dat tegen me werken omdat ik de tekst verkeerd geinterpreteerd heb. Dat leidt dan vaak tot aardig wat frustraties aan mijn kant.

Het is ook een heel andere manier van werken dan je normale 'day to day' werk. Ik merk wel dat ik vaak te snel wil. Vanochtend ook. Ik begrijp ook echt nog steeds de tekst niet. Maargoed; ben altijd al beter geweest in formules lezen dan ellenlange teksten.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Mschamp
  • Registratie: April 2014
  • Nu online
:) Ben er ook geraakt. Deel 2 heeft wel veel te lang geduurd. Eerste keer dat ik deelnam. Proficiat iedereen en
bedankt. Heel leuk om te doen en op deze manier bij te leren. Fijne Kerst!

[ Voor 18% gewijzigd door Mschamp op 25-12-2020 09:48 ]


Acties:
  • +1 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Hydra schreef op vrijdag 25 december 2020 @ 09:10:
Ja, zo begin ik ook. Mijn eerste opzet is vrijwel altijd iteratief. Zo zie je maar dat 22 jaar imperatief programmeren behoorlijk ingesleten zit :) En het gaat mij er ook niet zozeer om dat ik vind dat alles perse tailrecursive moet, ik stoor me eraan dat ik niet op het idee kom :) Maar heb dankzij de code van @Dricus hier nu wel wat meer gevoel voor ontwikkeld.
Het is nooit te laat om te leren! Ik programmeer al zo'n 30 jaar bijna uitsluitend in imperatieve talen en heb me de functional style pas in de laatste paar jaren meer eigen kunnen maken. Daarbij heeft het enorm geholpen dat de meeste mainstream imperatieve talen zo veel concepten uit FP overgenomen hebben!
Ik knal voor deel 1 zo snel mogelijk wat code neer en check 't tegen de voorbeeld input. Werkt 't; mooi. Zo niet; breakpoints en erdoorheen steppen. Vooral bij de eerste opdrachten gaat 't meestal in 1 keer goed. Maar in de latere dagen gaat dat tegen me werken omdat ik de tekst verkeerd geinterpreteerd heb. Dat leidt dan vaak tot aardig wat frustraties aan mijn kant.
Ik werk al heel wat jaren met Test Driven Development. Daarmee leer je jezelf aan om in kleine stappen te denken en tussenresultaten te valideren. Voor AoC heb ik de moeilijkere puzzels ook veelal in kleine stapjes aangepakt. Daardoor houd je het overzicht over de code die je maakt en ben je meer bezig met het oplossen van het probleem, dan met het worstelen met je code.
Het is ook een heel andere manier van werken dan je normale 'day to day' werk. Ik merk wel dat ik vaak te snel wil. Vanochtend ook. Ik begrijp ook echt nog steeds de tekst niet. Maargoed; ben altijd al beter geweest in formules lezen dan ellenlange teksten.
Dat is wel erg herkenbaar! Mijn haast zat hem vooral in onzorgvuldig lezen, of de return 0 vergeten te vervangen door de echte oplossing 8)7.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Dricus schreef op vrijdag 25 december 2020 @ 09:29:
Het is nooit te laat om te leren! Ik programmeer al zo'n 30 jaar bijna uitsluitend in imperatieve talen en heb me de functional style pas in de laatste paar jaren meer eigen kunnen maken. Daarbij heeft het enorm geholpen dat de meeste mainstream imperatieve talen zo veel concepten uit FP overgenomen hebben!
Dat doe ik ook wel hoor. Ik werk als sinds Java 8 op een meer functionele manier en vooral in Kotlin gebruik ik veel map, filter, etc. Ik had 't ook specifiek over dit soort opdrachten waarbij je een loop moet doen; dan kom ik niet snel op 't idee dit tail-recursive te doen. Recursion zelf natuurlijk wel, maar de stap om van een loop naar specifiek tail recursion te gaan zit er nog niet in. Ook omdat dat soort dingen bij de meeste collega's een "WTF is deze?" reactie teweeg zou brengen :)
Ik werk al heel wat jaren met Test Driven Development. Daarmee leer je jezelf aan om in kleine stappen te denken en tussenresultaten te valideren.
Ik ook hoor. Alleen ben je dan langer bezig. Dus ik gok er eerst op dat ik 't in 1 keer goed heb (want dan heb je in 5-10 minuten een oplossing). Lukt dat niet, dan moet ik op de 'juiste' manier aan de gang. En dan ben je een stuk langer bezig vaak.

En ik zie dan dat die gok de eerste 7 dagen ofzo werkt, maar daarna niet meer, omdat de opdrachten net te complex zijn om in 1 keer "YOLO" de code uit te schrijven.
Dat is wel erg herkenbaar! Mijn haast zat hem vooral in onzorgvuldig lezen, of de return 0 vergeten te vervangen door de echte oplossing 8)7.
Of gewoon de voorbeeldinput nog laten staan en daarvoor het resultaat te submitten :D En dan moet je een minuut wachten :P

https://niels.nu


Acties:
  • +3 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Dido schreef op vrijdag 25 december 2020 @ 06:48:
En dat leaderboard heeft wel geholpen om (bijna) elke dag om 6 uur te beginnen!
Vanaf morgen gewoon uitslapen in mijn kerstvakantie :z
Ja zeg dat wel. Mooi iedere dag om kwart voor zes op. Wassen, aankleden en puzzelen! Zonder leaderbord had ik dat niet gedaan. En zonder jullie hulp en inspiratie had ik het ook niet tot het einde volgehouden. Mijn vrouw is blij dat deze bevlieging over is. En ben ook blij dat de wekker uit kan.

Iedereen bedankt voor het meedoen en meeposten. Prettige feestdagen allemaal!

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • ppx17
  • Registratie: December 2007
  • Laatst online: 17-04 16:47
Varienaja schreef op vrijdag 25 december 2020 @ 10:10:
[...]
Ja zeg dat wel. Mooi iedere dag om kwart voor zes op. Wassen, aankleden en puzzelen! Zonder leaderbord had ik dat niet gedaan. En zonder jullie hulp en inspiratie had ik het ook niet tot het einde volgehouden. Mijn vrouw is blij dat deze bevlieging over is. En ben ook blij dat de wekker uit kan.

Iedereen bedankt voor het meedoen en meeposten. Prettige feestdagen allemaal!
Haha, dit vooral ja. Morgen de eerste keer een beetje uitslapen deze vakantie. Het was weer erg leuk om een beetje hoog in het leaderboard te blijven. :*)

40D | 8 | 50 | 100 | 300


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Varienaja schreef op vrijdag 25 december 2020 @ 10:10:
Iedereen bedankt voor het meedoen en meeposten. Prettige feestdagen allemaal!
Hetzelfde! Ook aan de rest :) Ga het wel missen denk ik :D Ben uit 'pure ellende' maar begonnen met 2015 omzetten naar Kotin :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
ppx17 schreef op vrijdag 25 december 2020 @ 10:11:
Haha, dit vooral ja. Morgen de eerste keer een beetje uitslapen deze vakantie. Het was weer erg leuk om een beetje hoog in het leaderboard te blijven. :*)
Dat viel vies tegen. Voorgaande jaren ben ik redelijk hoog geeindigd maar een grote groep fanatiekelingen + 3 dagen ziek zijn, en je zit op plek 30 :D

https://niels.nu


Acties:
  • +2 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Pff, voor het leaderboard kan ik mij echt niet opwinden. Ik vind het puur leuk om de puzzels op te lossen, had er dan ook echt geen haast mee, en ben er ook zeker niet eerder voor opgestaan

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Hydra schreef op vrijdag 25 december 2020 @ 10:08:
Dat doe ik ook wel hoor. Ik werk als sinds Java 8 op een meer functionele manier en vooral in Kotlin gebruik ik veel map, filter, etc. Ik had 't ook specifiek over dit soort opdrachten waarbij je een loop moet doen; dan kom ik niet snel op 't idee dit tail-recursive te doen. Recursion zelf natuurlijk wel, maar de stap om van een loop naar specifiek tail recursion te gaan zit er nog niet in. Ook omdat dat soort dingen bij de meeste collega's een "WTF is deze?" reactie teweeg zou brengen :)
Ja, mee eens. Het zal nog wel even duren voor dat dat mainstream wordt. Kotlin is voor zover ik weet tussen de andere grote imperatieve talen wel een vreemde eend in de bijt met zijn support voor tail call optimization. Hmm, misschien ga ik over dit onderwerp op het werk eens een show & tell geven ter bevordering van de mainstreamisering van tailrec :D.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • +4 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Oh, en dank voor de leuke interactie die we hier gehad hebben. Ik vond het erg leuk en leerzaam! Hele fijne feestdagen toegewenst!

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dricus schreef op vrijdag 25 december 2020 @ 10:18:
[...]

Ja, mee eens. Het zal nog wel even duren voor dat dat mainstream wordt. Kotlin is voor zover ik weet tussen de andere grote imperatieve talen wel een vreemde eend in de bijt met zijn support voor tail call optimization. Hmm, misschien ga ik over dit onderwerp op het werk eens een show & tell geven ter bevordering van de mainstreamisering van tailrec :D.
Ja, ik vind het jammer dat dat niet in C# zit, de CLR schijnt er wel support voor te hebben.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 13:32

Dricus

ils sont fous, ces tweakers

Woy schreef op vrijdag 25 december 2020 @ 10:33:
Ja, ik vind het jammer dat dat niet in C# zit, de CLR schijnt er wel support voor te hebben.
Dat klopt. De F# compiler ondersteunt wel tail call optimization.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Daanoz
  • Registratie: Oktober 2007
  • Laatst online: 18-05 11:44
Dido schreef op vrijdag 25 december 2020 @ 06:48:
[...]
En dat leaderboard heeft wel geholpen om (bijna) elke dag om 6 uur te beginnen!
Haha, dat was dit jaar voor mij juist een drama... Normaal gesproken vroeg de deur uit om de files voor te zijn, dat hoeft dit jaar niet, dan is het heel verleidelijk om toch nog wat langer te blijven liggen.

Acties:
  • +5 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Zo, dat was weer een leuk jaar. Het viel me dit jaar op dat de puzzels over het algemeen iets makkelijker waren dan afgelopen jaren en er geen echte afhankelijkheden in de dagen zaten. Ook ontbrak dit jaar graph search, wat vorig jaar overdadig aanwezig was (net als de assembly). Ik had het idee dat door de moeilijkheidsgraad en de onafhankelijkheid ook meer mensen door bleven gaan in tegenstelling tot vorig jaar.

Al met al vond ik dit de perfecte workload als dagelijks puzzeltje. Dag 13 kostte me wel veel tijd op die desbetreffende zondag en over dag 20 heb ik langer dan een dag gedaan, mede omdat ik een aantal dagen ziek was. Maar geen van de puzzels waren onmogelijk, zonder dat je een vaag wiskundig truukje kende.

Ook leuk dat de simpele puzzels hier nog verder uitgewerkt, geoptimaliseerd en verbeterd werden door elkaars feedback en ideeën, gaaf!

Bedankt allemaal, een fijne kerst en tot volgend jaar!

[ Voor 4% gewijzigd door Reynouts op 25-12-2020 11:03 ]


Acties:
  • +1 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:58
Dag 25 in Wolfram Alpha (voorbeeld invoer, maar zelfde principe werkt ook voor de officiële test data!).

(Echte oplossing in Python.)

Vond het wel leuke puzzels dit jaar. Helaas hier en daar wat herhaling t.o.v. vorig jaar en zelfs eerder dit jaar (cellular automata aka Conway's Game of Life), maar het is ook niet eenvoudig om elk jaar 25 originele problemen te verzinnen.

Ik was begonnen met het oplossen van de problemen in Haskell. Ik ben nu halverwege dus daar ben ik de rest van het jaar nog wel zoet mee, denk ik.

[ Voor 3% gewijzigd door Soultaker op 25-12-2020 16:36 ]


Acties:
  • +2 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 23-06 21:58
Laten we het er voor vandaag maar op houden, dat de tekst lezen lastiger is dan de uiteindelijke code.
Ik had eigenlijk niet verwacht zo ver te komen, dus kan straks tevreden aan het kerst diner. Helaas wegens tijdgebrek drie sterren nog niet binnen, maar dat ga ik binnenkort nog wel proberen recht te trekken. Ik vond het leuk om te doen en heb her en der nog wat kunnen opsteken van de mede Tweakers in dit topic!

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:58
ydderf schreef op vrijdag 25 december 2020 @ 15:42:
Laten we het er voor vandaag maar op houden, dat de tekst lezen lastiger is dan de uiteindelijke code.
spoiler:
Eigenlijk hoef je loopSizeDoor helemaal niet te berekenen, hè ;)

Acties:
  • 0 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 23-06 21:58
Soultaker schreef op vrijdag 25 december 2020 @ 16:38:
[...]

spoiler:
Eigenlijk hoef je loopSizeDoor helemaal niet te berekenen, hè ;)
Klopt, is eigenlijk een beetje overbodige bouwpuin of een voorbereiding voor een extra check O-) .
Ik ben voor het laatste gegaan....

Tevens dag 24 deel 2 nog ff afgerond. Al heeft hij wel een minuutje nodig om de uitkomst te berekenen, vind ik dat voor de 1e kerstdag acceptabel.

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


Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 15:06

DataGhost

iPL dev

ydderf schreef op vrijdag 25 december 2020 @ 16:49:
[...]


Klopt, is eigenlijk een beetje overbodige bouwpuin of een voorbereiding voor een extra check O-) .
Ik ben voor het laatste gegaan....

Tevens dag 24 deel 2 nog ff afgerond. Al heeft hij wel een minuutje nodig om de uitkomst te berekenen, vind ik dat voor de 1e kerstdag acceptabel.
Ik heb wel een hint voor je om een andere oplossingsrichting uit te denken die je vrijwel instant het antwoord geeft, in plaats van na een minuut pas. Als je nou eens doet alsof
spoiler:
de vloer daadwerkelijk oneindig groot is en dat je ver weg van het midden alsnog zwarte tegeltjes kan vinden, moet je wel iets slimmers verzinnen, wat er daarna voor zorgt dat je oplossing ruim binnen een minuut klaar is. Mijn Python-oplossing doet er op mijn oude laptop 820ms over om met zo'n 4000 tegeltjes als antwoord terug te komen. Als ik dan handmatig de volgende tegeltjes toevoeg voor de eerste ronde:
(-100000000,-100000000)
(-100000001,-100000001)
(100000000,100000000)
(100000001,100000001)
is het uiteindelijke antwoord na slechts 1.2 seconden ongeveer 7000 zwarte tegeltjes. Jouw huidige code gaat dit niet vóór 2025 oplossen.

Acties:
  • 0 Henk 'm!

  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 16-05 11:22

ElkeBxl

Tassendraagster

Finished! Dag 25 was inderdaad een makkelijke eens ik het goed had gelezen. Ik moest wel eerst dag 20 deel 2 nog verder oplossen, maar daar zullen we maar over de code zwijgen... :X
Ik ben te lui om het verder op te kuisen... O-)

Was leuk om mee te doen, dit is mijn eerste AoC die ik afwerk :)

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


Acties:
  • 0 Henk 'm!

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

CMG

Varienaja schreef op vrijdag 25 december 2020 @ 10:10:
[...]
Ja zeg dat wel. Mooi iedere dag om kwart voor zes op. Wassen, aankleden en puzzelen! Zonder leaderbord had ik dat niet gedaan. En zonder jullie hulp en inspiratie had ik het ook niet tot het einde volgehouden. Mijn vrouw is blij dat deze bevlieging over is. En ben ook blij dat de wekker uit kan.

Iedereen bedankt voor het meedoen en meeposten. Prettige feestdagen allemaal!
Haha, ja, hier zijn ze ook blij dat het voorbij is. En ik stond er niet eens extra vroeg voor op (deed elke dag nadag ik de kids naar school gebracht had/we samen ontbeten hadden de challenge live streamen op Twitch).

Zelf vind ik het erg jammer dat het nu voorbij is, maar ik heb nog een dag of 10 te editen voor YT; dus mijn AoC is voorlopig nog niet voorbij 😅 maar verheug me nu al op volgend jaar :)

Denk erover om de andere jaren ook te gaan livestreamen, maar ik vermoed dat dat thuis te veel gedoe gaat opleveren 😅

NKCSS - Projects - YouTube


Acties:
  • +3 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 23-06 21:58
Iets later dan sommige, maar ook hier zijn alle 50 sterren binnen.
Moest nog ff zweten met dag 19 deel 2 en dag 20 deel 2.

Bij dag 19 deel 2 (oneindige loop met rules met combinaties van A en B ) een tijdje lopen te stoeien, maar bij elke oplossing had mijn laptop alle 32GB intern geheugen nodig voor ruim een uur zonder met een oplossing te komen. Uiteindelijk een simpele oplossing bedacht die onder de 20msec beide delen uitvoert;
spoiler:
Voor elke input kijk ik of de eerste letters overeenkomen met een van de rules 42. Vervolgens verwijder ik de eerste letters en kijk ik weer of de passen bij een rule 42. Dit herhalen totdat de string op is, of er geen match is. Vervolgens hetzelfde voor regel 31 met de eventuele resterende karakters.
Wanneer alle karakters passen, dan is het een geldige tekst.


Bij dag 20 deel 2 (tegels aan elkaar plakken en een monster vinden) een tijd aan het klooien geweest omdat ik de tegels niet correct aan elkaar plakte (wel de juiste maar niet in de juiste oriëntatie). Het vervelende was alleen dat hiermee het antwoord van het voorbeeld wel klopte en met de echte input ook monsters werden gevonden. Alleen natuurlijk niet het juiste aantal. Maar gelukkig na wat debuggen dit ook kunnen oplossen.
Meteen maar een aantal hulp functies gemaakt die waarschijnlijk volgens jaar ook wel weer van pas komen.

Nu nog ff een aantal dagen doorkijken hoe andere het hebben opgelost en wat ik slimmer/anders had kunnen doen.

[ Voor 3% gewijzigd door ydderf op 29-12-2020 20:00 ]

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


Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Ik mis het wel hoor. Altijd een raar 'gat' tussen 25 dec en 1 jan :)

https://niels.nu


Acties:
  • +1 Henk 'm!

  • Singelaar
  • Registratie: November 2008
  • Laatst online: 04-06 08:29
Hahaha zeker. Het voelt 'leeg'. Maar ook wel stress vrij, ik was wel toe aan vrij van aoc.
Maar eh, wat begint er 1 januari voor jou?

  • Hydra
  • Registratie: September 2000
  • Laatst online: 13:33
Singelaar schreef op woensdag 30 december 2020 @ 15:07:
Hahaha zeker. Het voelt 'leeg'. Maar ook wel stress vrij, ik was wel toe aan vrij van aoc.
Maar eh, wat begint er 1 januari voor jou?
Gewoon weer werk en een nieuw jaar :) Niks bijzonders verder :)

https://niels.nu


  • Camulos
  • Registratie: Januari 2009
  • Laatst online: 01-06 14:27

Camulos

Stampert

Ik zit al een tijdje vast in Dag 23, en met name in het voorbeeld dat op de site staat.

Voorbeeld move 7
code:
1
2
3
4
5
cups:  7  2  5  8  4  1 (9) 3  6 
pick up: 3, 6, 7
destination: 8

result: 8  3  6  7  4  1  9  2  5


Maar als ik de regels volg krijg je toch:
code:
1
2
3
4
5
6
7
8
9
cups:  7  2  5  8  4  1 (9) 3  6 
pick up: 3, 6, 7
destination: 8

haal cups weg:
intermediate: 2  5  8  4  1  9

insert bij 8
result: 2  5  8  3  6  7  4  1  9


Ik vermoed een denk fout met het wrappen in de cirkel, maar ik zie hem niet, wie-o-wie heeft de gouden tip voor me?

Not just an innocent bystander


  • Mschamp
  • Registratie: April 2014
  • Nu online
Camulos schreef op donderdag 31 december 2020 @ 13:41:
Ik zit al een tijdje vast in Dag 23, en met name in het voorbeeld dat op de site staat.

Voorbeeld move 7
code:
1
2
3
4
5
cups:  7  2  5  8  4  1 (9) 3  6 
pick up: 3, 6, 7
destination: 8

result: 8  3  6  7  4  1  9  2  5


Maar als ik de regels volg krijg je toch:
code:
1
2
3
4
5
6
7
8
9
cups:  7  2  5  8  4  1 (9) 3  6 
pick up: 3, 6, 7
destination: 8

haal cups weg:
intermediate: 2  5  8  4  1  9

insert bij 8
result: 2  5  8  3  6  7  4  1  9


Ik vermooed een denk fout met het wrappen in de circel, maar ik zie hem niet, wie-o-wie heeft de gouden tip voor me?
Dat klopt toch: het is een cirkel dus er is niet echt een eerste element, enkel een volgorde. Schrijf het eens in een cirkel en vergelijk dan (of haal de 2 elementen vooraan jouw lijst weg, en zet ze eens achteraan)

  • Camulos
  • Registratie: Januari 2009
  • Laatst online: 01-06 14:27

Camulos

Stampert

Mschamp schreef op donderdag 31 december 2020 @ 13:44:
[...]


Dat klopt toch: het is een cirkel dus er is niet echt een eerste element, enkel een volgorde. Schrijf het eens in een cirkel en vergelijk dan (of haal de 2 elementen vooraan jouw lijst weg, en zet ze eens achteraan)
dat zie ik wel, dat de eerste elementen achteraan zou kunnen zetten, but why?
Impliceert dit dat de start-index ook op hetzelfde start-index moet blijven staan?
(aka dat de 9 niet verplaatst in de platte lijst?)

Not just an innocent bystander


  • Mschamp
  • Registratie: April 2014
  • Nu online
Camulos schreef op donderdag 31 december 2020 @ 13:47:
[...]


dat zie ik wel, dat de eerste elementen achteraan zou kunnen zetten, but why?
Impliceert dit dat de start-index ook op hetzelfde start-index moet blijven staan?
(aka dat de 9 niet verplaatst in de platte lijst?)
Er is niet echt een eerste element (of dat is toch hoe ik het opgelost heb) voor je antwoord moet je ook bekijken tov de beker met tag '1'. In het voorbeeld is gewoon een keuze gemaakt wat als 1 getoond wordt, en jij (en ik ook) gebruiken blijkbaar een ander algoritme waardoor ons 1e element anders is. Zou voor je resultaat geen verschil mogen maken

  • Camulos
  • Registratie: Januari 2009
  • Laatst online: 01-06 14:27

Camulos

Stampert

thnx @Mschamp ik zit inderdaad bijzonder scheef te kijken :)
representatie was wel correct, behalve dat mijn 'volgende element' nu moet matchen met de '2' in het voorbeeld.

Not just an innocent bystander


Acties:
  • 0 Henk 'm!

  • ll roel j
  • Registratie: Maart 2003
  • Laatst online: 06:39
Helaas door tijdsgebrek niet meer doorgegaan na dag 4 :/
Dan maar het komende jaar rustig aan de puzzels oplossen en klaar zijn voor AoC 2021 :9

Misschien in de tussentijd eens een cursus Python starten en ook AoC gebruiken om extra te leren.
Pagina: 1 ... 13 14 Laatste