-
[ Voor 100% gewijzigd door Anoniem: 610852 op 05-09-2023 11:15 ]
Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.
Eh, op het leaderboard? Alleen de top100 krijgt punten. Niet om je heel hard af te kraken maar 15 minuten lijkt me te langzaam voor een wereldwijde top100 finish op een opdracht als die van vandaag. Er zijn mensen met veel meer ervaring die hier voor klaar zitten op de F5-knop, binnen een paar seconden de relevante delen van de opdracht gelezen hebben en binnen een minuut of misschien twee een werkende oplossing ingestuurd hebben. Ik heb al een oplossing voor deel 1 gezien op Youtube die binnen 2,5 minuut was opgelost en correct, en toen waren er al 38 oplossingen voor hem ingestuurd. Deel twee had 'ie krap 10 minuten later opgelost en dat leverde een schamele 229e plek op. Daarna moest jij dus je deel 1 nog insturenAnoniem: 610852 schreef op vrijdag 3 december 2021 @ 18:30:
[...]
code:
1 func dominantBit(in column: Int) -> Bit[s][/s]
code:
1 func submissiveBit(in column: Int) -> Bit[s][/s]
OwO
Ik dacht vanochtend eindelijk misschien punten te krijgen, had mijn answer voor deel een binnen 15 minuten. Da's dus blijkbaar lang niet snel genoeg![]()
Kwam door dat ik in WSL zat te kutten en een wget deed op de url van de input, maar ik had niet door dat de je ingelogged moest zijn voor de input, en dat die uniek voor iedereen was. (ik was ofc wel ingelogged op mijn browser in Windows maar dat mocht niet baten, natuurlijk) :c
De hoeveel eerste N mensen krijgen eigenlijk punten is dat ergens te zien ofzo?
Ik had zoals wel meer mensen hier best wel moeite met deel twee, ik was echt eventjes flink gebamboozled.
spoiler:
[ Voor 7% gewijzigd door Moonsugar op 26-03-2024 15:06 . Reden: URL verwijderd op verzoek van gebruiker ]
Op het GoT-leaderboard kom je dan waarschijnlijk wel redelijk hoog binnen.Anoniem: 610852 schreef op vrijdag 3 december 2021 @ 18:43:
[...]
Nah it's fine. Ik had gewoon niet door hoe het werke, ik dacht misschien is de distributie wel zo dat je nog soort van pity points krijgt ofzo.
PS5 PSN: UnrealKazu
[ Voor 5% gewijzigd door Creepy op 03-12-2021 19:39 ]
"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
Allright, fixedCranzai schreef op vrijdag 3 december 2021 @ 20:48:
Man man man, wat een gedoe dat tweede deel.
Heb er op het moment een behoorlijke puinhoop van gemaakt.
[ Voor 19% gewijzigd door Cranzai op 03-12-2021 22:45 ]
“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.”
Ik heb alle 45 eruit gegooid, @Creepy probeer het nog eens?DataGhost schreef op vrijdag 3 december 2021 @ 20:02:
[...]
Hm. Er kunnen er wmb zeker 45 uitgeyeet worden want die staan nog op 0 sterren. @Daanoz?
"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
[ Voor 6% gewijzigd door zwippie op 04-12-2021 00:49 ]
How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.
[ Voor 38% gewijzigd door armageddon_2k1 op 04-12-2021 08:03 ]
Engineering is like Tetris. Succes disappears and errors accumulate.
[ Voor 60% gewijzigd door Varienaja op 04-12-2021 11:46 ]
Siditamentis astuentis pactum.
“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.”
[ Voor 8% gewijzigd door KabouterSuper op 04-12-2021 09:20 ]
When life gives you lemons, start a battery factory
[ Voor 9% gewijzigd door Woy op 04-12-2021 09:36 ]
“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.”
Haha, klinkt bekendWoy schreef op zaterdag 4 december 2021 @ 09:36:
Ik had vooral bij deel twee even lopen prutsen door:
spoiler:De 0 waardes op de kaarten. Ik markeer een nummer afgestreept door hem negatief te maken, maar voor 0 werkt dat natuurlijk niet. Voor deel 1 haalde dat toevallig niks uit
When life gives you lemons, start a battery factory
- I can accurately say I was born on Earth, but it's not very precise. I can precisely say I was born at latitude 37.229N, longitude 115.811W, but that is not at all accurate - Matt Parker
[ Voor 4% gewijzigd door Cranzai op 04-12-2021 09:54 ]
Moofnor schreef op zaterdag 4 december 2021 @ 09:51:
spoiler:Alleen checken op Bingo in de rijen ipv ook de kolommen...
Waar stoor je je concreet aan dan? Wat kan je niet maar wil je wel?Cranzai schreef op zaterdag 4 december 2021 @ 09:54:
(Hoewel dit niet perse het juiste topic is maar ik de vraag te klein vind voor een eigen topic...)
Python is een fijne taal maar het enige waar ik me aan stoor is hoe de lists/arrays werken. Natuurlijk is elke array uiteindelijk een soort list, maar ik vroeg me af:
Bestaat er een taal die in de meeste opzichten (vooral wat de easy I/O betreft) zoals python is maar dan wel met native arrays?
[ Voor 46% gewijzigd door EfBe op 04-12-2021 11:30 ]
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
Ik werk heel graag met multidimensional arrays en matrices, daarbij vind ik het irritant dat dat dus via numpy moet. Anderzijds is het fijne van de lists dat je van te voren niet hoeft te weten hoe groot ze zijn.DataGhost schreef op zaterdag 4 december 2021 @ 11:00:
[...]
Waar stoor je je concreet aan dan? Wat kan je niet maar wil je wel?
Cranzai schreef op zaterdag 4 december 2021 @ 11:52:
[...]
Ik werk heel graag met multidimensional arrays en matrices, daarbij vind ik het irritant dat dat dus via numpy moet. Anderzijds is het fijne van de lists dat je van te voren niet hoeft te weten hoe groot ze zijn.
Uiteindelijk zou ik ook vrede hebben met een taal waarin je wel de grootte van een array van tevoren moet specificeren maar je gewoon een .append() hebt.
1
2
3
4
5
6
7
| board = [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], ... ] board[2][3] == 14 |
1
2
| board = {} board[(2,3)] = 14 |
Ja precies het is idd meer een list of lists, denk dat het idd wel net zo praktisch is maar meer aan mijn koppigheid ligt dat ik liever een board[2,3] opvraag dan een board[2][3]DataGhost schreef op zaterdag 4 december 2021 @ 12:02:
[...]
code:
1 2 3 4 5 6 7 board = [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], ... ] board[2][3] == 14
Werkt gewoon hoor. Je moet alleen wel op elke dimensie een list maken ja, maar zodra die er is kan je er gewoon aan appenden of assignen op een index. Je kan er ook zelf een kleine convenience class voor maken. Numpy heb je in ieder geval nergens voor nodig. Ik heb het nog nooit gebruikt en toch vorig jaar alle sterren gehaald, het jaar daarvoor bijna allemaal.
Maar wat ik vaker doe is een dictionary gebruiken met een tuple als key. Dan kan je gewoon direct assignen en ook met zoveel dimensies als je graag wilt:
code:
1 2 board = {} board[(2,3)] = 14
Ik gok dat ik dat dit jaar ook weer bij een paar opdrachten ga doen. Voor bepaalde soorten opdrachten heeft dat ook heftige voordelen over lists/arrays. Er zitten ook een paar nadelen aan, maar ja, dat heb je overal wel mee eigenlijk.
Dat kan ook, die tuple-notatie werkt ook zonder haakjesCranzai schreef op zaterdag 4 december 2021 @ 12:10:
[...]
Ja precies het is idd meer een list of lists, denk dat het idd wel net zo praktisch is maar meer aan mijn koppigheid ligt dat ik liever een board[2,3] opvraag dan een board[2][3]
1
2
3
4
| >>> board = {} >>> board[2,3] = 14 >>> board {(2, 3): 14} |
[ Voor 29% gewijzigd door DataGhost op 04-12-2021 12:15 ]
Thanks haha, "i've just been schooled"DataGhost schreef op zaterdag 4 december 2021 @ 12:11:
[...]
Dat kan ook, die tuple-notatie werkt ook zonder haakjes
Python:
1 2 3 4 >>> board = {} >>> board[2,3] = 14 >>> board {(2, 3): 14}
Maar zoals ik zei heeft dit ook al nadelen, dus ik zou hier zeker geen gewoonte van maken. Elke taal heeft verder een verschillende notatie waar je uiteindelijk niet heel veel aan gaat doen. In bijv. PHP heb je ook gewoon multidimensional arrays native, maar moet je die ook via $board[2][3] gebruiken, $board[2,3] bestaat daarin niet. Ook niet in veel andere "echte" talen.
[ Voor 40% gewijzigd door Cranzai op 04-12-2021 12:17 ]
Ik denk dat je dan beter het onderscheid moet zien tussen een list of een numpy.array. Een list kan van alles bevatten, ook een list in een list zonder dat elke list dezelfde grootte hoeft te hebben:Cranzai schreef op zaterdag 4 december 2021 @ 12:10:
[...]
Ja precies het is idd meer een list of lists, denk dat het idd wel net zo praktisch is maar meer aan mijn koppigheid ligt dat ik liever een board[2,3] opvraag dan een board[2][3]
Ik zei alleen dat veel "echte" talen (zoals C) multidimensional array access dmv [y][x] doen ipv [y,x], niet dat dat een criterium is om een "echte" taal te zijn.Cranzai schreef op zaterdag 4 december 2021 @ 12:15:
[...]
Maar euh, zeg je nou dat Fortran geen "echte" taal is?
EfBe schreef op zaterdag 4 december 2021 @ 11:24:
Ook maar aangemeld bij het tweakers leaderboardDag 4 in C#
Was een leuke opdrachtNiet per-se erg lastig, maar wel veel kleine details waar je wel over kunt struikelen (ik deed dat dus ook
). Heb het niet via de naive/brute force manier gedaan, dus wat meer code, maar boeiend
spoiler:Ik heb een hashset gebruikt voor alle unmarked numbers, en een dictionary met de numbers + hun plaats op het bord, verder een lijst met # of marked numbers per row and column, die ik ophoog via de position op het bord van een getrokken number. Zo is alles O(1) zonder scannen. Ik streep dus niets af, ik haal een getrokken number uit de lijst van unmarked numbers (hashset, dus O(1), en haal dan de position van het number op op het board, als het op het board te vinden is uiteraard. Dan hoog ik het getal voor de row en column op met 1. Als een of beide 5 zijn, is de board een 'winner' en zet ik een property.
[ Voor 7% gewijzigd door Kazu op 04-12-2021 12:25 ]
PS5 PSN: UnrealKazu
Ik heb wat testinvoer gemaakt voor deel twee, metKazu schreef op zaterdag 4 december 2021 @ 12:22:
[...]
spoiler:Dit was ook de oplossing die mij te binnen schoot toen ik al halverwege was met het implementeren van een scan. Maar toen was ik te lui om het alsnog om te gooienIk heb het nu dus maar super langzaam geimplementeerd. Niet trots op, maar ach...
Nadat ik hierdoor een tijdje bezig was met deel 1 had ik het vermoeden dat deel 2 o.a. diagonaal zou gaan introduceren. Maar het was letterlijk 2 minuten coding en toen was deel 2 ook af, dus dat was een meevaller.
Ik denk dat je repo nog private staat, ik krijg een 404 en als ik je repos bekijk zie ik geen AOC repo in de lijst.gedonie schreef op zaterdag 4 december 2021 @ 12:52:
Ik heb dag 4 ook maar eens gedaan. Dag 4 in Java
Was de eerste dag met een beetje puzzelen, maar wel leuk.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Er zit toch bijna geen verschil tussen deel 1 en 2?Dricus schreef op zaterdag 4 december 2021 @ 13:46:
Dag 4 in Clojure
Poeh, best lastig als je de taal en de library nog aan het uitvogelen bent... Maar uiteindelijk wel tevreden met het resultaat. Iteratie 1 was lomp. Na refactoring 1 was het nog traag (dikke 500 ms voor deel 2). Na refactoring 2 was het een stuk sneller (66 ms voor deel 2).
Engineering is like Tetris. Succes disappears and errors accumulate.
Dat heb ik ook geprobeerd maar dan ben ik meer bezig met de taal dan met het probleem en dat duurt me te lang. Ik haal plezier uit een elegante oplossing in een taal welke ik goed kenglorytothesun schreef op zaterdag 4 december 2021 @ 13:47:
Heel interessant om dit ook in een andere programmeertaal te doen dan waar je normaal mee werkt. Al een hele tijd geen Python meer gedaan, kijken hoe dat zal verlopen.
Engineering is like Tetris. Succes disappears and errors accumulate.
Ligt aan je oplossing. Als je daadwerkelijk het hele spel gaat simuleren ben je klaar wanneer je bij de eerste winnaar bent, voor deel 2 moet je in dat geval doorgaan tot iedereen bingo heeft.armageddon_2k1 schreef op zaterdag 4 december 2021 @ 13:52:
[...]
Er zit toch bijna geen verschil tussen deel 1 en 2?
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ik vind het altijd leuk om te experimenteren met een nieuwe programmeertaal met dit soort dingen. Zelf stop ik ook als ik het idee heb dat de opdracht voor mij te lastig is om op te lossen met die taal. Maar goed, het is inderdaad ook erg leuk om oplossingen ook te proberen in een andere taal, kan je veel van leren.armageddon_2k1 schreef op zaterdag 4 december 2021 @ 13:53:
[...]
Dat heb ik ook geprobeerd maar dan ben ik meer bezig met de taal dan met het probleem en dat duurt me te lang. Ik haal plezier uit een elegante oplossing in een taal welke ik goed kenWat ik wel graag doe is eerder opgeloste problemen oplossen in een nieuwe taal.
Altijd goed om te zien dat iemand naar dezelfde oplossing convergeert als ik, zelfs met dezelfde naamgeving op sommige plekkenHydra schreef op zaterdag 4 december 2021 @ 12:09:
En opgeruimd!
Hoeveelheid code ongeveer gehalveerd.
Engineering is like Tetris. Succes disappears and errors accumulate.
Ja, dus bijna geen verschilJanoz schreef op zaterdag 4 december 2021 @ 13:54:
[...]
Ligt aan je oplossing. Als je daadwerkelijk het hele spel gaat simuleren ben je klaar wanneer je bij de eerste winnaar bent, voor deel 2 moet je in dat geval doorgaan tot iedereen bingo heeft.
Engineering is like Tetris. Succes disappears and errors accumulate.
Je hebt helemaal gelijk. Ik heb hem op public gezet nu.Remcoder schreef op zaterdag 4 december 2021 @ 13:27:
[...]
Ik denk dat je repo nog private staat, ik krijg een 404 en als ik je repos bekijk zie ik geen AOC repo in de lijst.
Kijk je naar het voorbeeld, dan zou je in deel 1 maar 11 trekkingen moeten simuleren terwijl dat in deel 2 13 zijn. Voor de werkelijke testcases is het verschil een stuk groter dus kan ik me voorstellen dat een naïve implementatie 4x zo lang over de simulatie doet. Dat is best een verschil. Merk je waarschijnlijk niet doordat de hele bende eerder IO- bound is. Maar 'bijna geen' vind ik het niet.armageddon_2k1 schreef op zaterdag 4 december 2021 @ 13:58:
[...]
Ja, dus bijna geen verschil
Ik simuleer gewoon de hele bende en die is binnen 50ms klaar.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Je hebt helemaal gelijk hoor. Maar op het moment dat de hele oplossing brute-force < 50ms komt dan ga ik me persoonlijk niet zo drukmaken om optimalisatiesJanoz schreef op zaterdag 4 december 2021 @ 14:07:
[...]
Kijk je naar het voorbeeld, dan zou je in deel 1 maar 11 trekkingen moeten simuleren terwijl dat in deel 2 13 zijn. Voor de werkelijke testcases is het verschil een stuk groter dus kan ik me voorstellen dat een naïve implementatie 4x zo lang over de simulatie doet. Dat is best een verschil. Merk je waarschijnlijk niet doordat de hele bende eerder IO- bound is. Maar 'bijna geen' vind ik het niet.
Engineering is like Tetris. Succes disappears and errors accumulate.
[ Voor 4% gewijzigd door Cranzai op 04-12-2021 14:31 ]
Wat @Janoz zegt, en mijn implementatie was super inefficiënt. Maar qua algoritme is er bijna geen verschil inderdaad.armageddon_2k1 schreef op zaterdag 4 december 2021 @ 13:52:
Er zit toch bijna geen verschil tussen deel 1 en 2?
Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...
DataGhost schreef op zaterdag 4 december 2021 @ 12:32:
[...]
Ik heb wat testinvoer gemaakt voor deel twee, met
spoiler:grotere bingokaarten, deze zijn 100x100. Deel 2 met deze kaarten duurt bij mij zo'n 4 seconden (Python, in een VM op een 11 jaar oude laptop) met als antwoord 3074334900. Ik ben benieuwd hoe snel dat bij jou gaat dan, als je daar zin in hebt
https://sigyn.dataghost.com/aoc/2021/aoc-2021-day3-part2.txt
PS5 PSN: UnrealKazu
Als het gaat om grote O-notatie van looptijden maakt de omgeving bijna niks meer uitDevWouter schreef op zaterdag 4 december 2021 @ 13:47:
@DataGhost Moet je natuurlijk wel opdezelfde omgeving testen
[ Voor 15% gewijzigd door DataGhost op 04-12-2021 14:58 ]
Hm, gek. Ik kon ook niet direct vinden waarom jouw uitkomst niet klopte. Met wat simpele aanpassingen aan je magic numbers (in revisie g3929193) komt er bij mij nog een andere (wederom verkeerde) uitkomst uit, namelijk 3098648098 na 25 seconden. Dus dat is zo mogelijk nog vreemderKazu schreef op zaterdag 4 december 2021 @ 14:34:
[...]
spoiler:Oef, ja, zo'n grote dataset trekt mijn O(n^2) implementatie wel op z'n knieën. 3 minuut 51, maar wel met een andere uitkomst: 6307576443, dus dat is wel vreemd. Ik ben een beetje teleurgesteld in m'n luie oplossing, dus ik denk dat ik hem nog wel ga verbeteren als ik er tijd voor heb
ShitHappens schreef op zaterdag 4 december 2021 @ 14:47:
Hehe, ook eindelijk klaar![]()
spoiler:Was stiekem toch even een puzzel bij part 2 om op tijd te stoppen met getallen trekken, in m'n eerste paar pogingen schoot 'ie door de hele lijst heen en klopte het eindresultaat niet
M'n code houdt nog net té erg vast aan 5x5 grids (vooral aan de 5 rijen) dus sla de 100x100 tests van hierboven nog maar even over.
Anyone who gets in between me and my morning coffee should be insecure.
De testinput is wel vaker zo gemaakt dat er weinig edge cases in zitten die in de volledige testdata wel zittenMueR schreef op zaterdag 4 december 2021 @ 14:58:
Ik snap vandaag even niets van code blijkbaar.. met AoC bezig. M'n code werkt met de testinput, geeft correct resultaat. Maar met de live input niet. Wtf
Als je in Visual Studio naar de properties van "day4.txt" gaat dan kan je de "Copy to Output Directory" op "Copy always" zetten. In je code hoef je dan niet meer 3 mappen terug te gaan, maar kan je dit doen:
1
| System.IO.File.ReadAllLines("day4.txt"); |
DataGhost schreef op zaterdag 4 december 2021 @ 14:51:
[...]
spoiler:Als je het niet dynamisch naar de input wilt maken en dus magic numbers gebruikt: die gaan heel prima in constanten, dan hoef je maar op 1 plek een nummertje aan te passen en dan is je hele programma er klaar voor
Oh, is het echt copy/paste?ShitHappens schreef op zaterdag 4 december 2021 @ 15:12:
[...]
spoiler:Nee magic numbers is in deze nog niet het ergste, maar het 5x verzamelen van een specifieke index van een List, eentje voor elke rowZou dat eigenlijk even netjes in een loopje moeten afhandelen
Sowieso is het 'nadeel' van zo'n challenge dat je natuurlijk heel makkelijk niet al te robuuste code schrijft. Tegelijkertijd is dat ook wel leuk, want dan ben je bezig met het probleem i.p.v. alleen maar afhandeling van "wat als dit fout gaat?"ShitHappens schreef op zaterdag 4 december 2021 @ 15:12:
[...]
spoiler:Nee magic numbers is in deze nog niet het ergste, maar het 5x verzamelen van een specifieke index van een List, eentje voor elke rowZou dat eigenlijk even netjes in een loopje moeten afhandelen
Ja ik heb ergens een valse bingo. Maar ik zal jullie het liedje zingen besparen.DataGhost schreef op zaterdag 4 december 2021 @ 14:59:
[...]
De testinput is wel vaker zo gemaakt dat er weinig edge cases in zitten die in de volledige testdata wel zitten
Anyone who gets in between me and my morning coffee should be insecure.
Ik luister wel weer naar het audioclipje op naardekloot.nlMueR schreef op zaterdag 4 december 2021 @ 15:15:
[...]
Ja ik heb ergens een valse bingo. Maar ik zal jullie het liedje zingen besparen.
Mijn oude trouwe MB Air 2015, komt er niet echt doorheen met mijn codeDataGhost schreef op zaterdag 4 december 2021 @ 12:32:
[...]
Ik heb wat testinvoer gemaakt voor deel twee, met
spoiler:grotere bingokaarten, deze zijn 100x100. Deel 2 met deze kaarten duurt bij mij zo'n 4 seconden (Python, in een VM op een 11 jaar oude laptop) met als antwoord 3074334900. Ik ben benieuwd hoe snel dat bij jou gaat dan, als je daar zin in hebt
https://sigyn.dataghost.com/aoc/2021/aoc-2021-day3-part2.txt
[ Voor 17% gewijzigd door Cranzai op 04-12-2021 15:26 ]
Ik heb er een voortgangsdingetje in geknutseld, een voorzichtige schatting lijkt me een uur of anderhalf op mijn laptop.Cranzai schreef op zaterdag 4 december 2021 @ 15:18:
[...]
Mijn oude trouwe MB Air 2015, komt er niet echt doorheen met mijn code
Whahaha, dan zet ik het wel eventjes op de universiteitsclusterDataGhost schreef op zaterdag 4 december 2021 @ 15:25:
[...]
Ik heb er een voortgangsdingetje in geknutseld, een voorzichtige schatting lijkt me een uur of anderhalf op mijn laptop.
[ Voor 11% gewijzigd door Cranzai op 04-12-2021 15:28 ]
Als je Grote O leert uitrekenen dan weet je of het eenvoudiger (sneller) wordt ipv dat je het alleen maar denkt.Cranzai schreef op zaterdag 4 december 2021 @ 15:18:
spoiler:Denk dat dit komt doordat ik het hele spel simuleer waardoor ik meerdere keren over elke kaart moet.
Misschien als ik iets schrijf waarbij je per kaart evalueert wanneer deze zou winnen, dat het eenvoudiger wordt.
Bij mijn weten simuleer ik het hele spel en dat duurt echt niet lang. Beter gezegd: dat hoeft niet lang te duren.Cranzai schreef op zaterdag 4 december 2021 @ 15:27:
Whahaha, dan zet ik het wel eventjes op de universiteitscluster
spoiler:Het hele spel simuleren is dus niet de snelste oplossing
[ Voor 29% gewijzigd door Varienaja op 04-12-2021 15:31 ]
Siditamentis astuentis pactum.
Die cluster zou het niet sneller maken aangezien je code totaal niet parallel isCranzai schreef op zaterdag 4 december 2021 @ 15:27:
[...]
Whahaha, dan zet ik het wel eventjes op de universiteitscluster
spoiler:Het hele spel simuleren is dus niet de snelste oplossing
[ Voor 22% gewijzigd door DataGhost op 04-12-2021 15:32 ]
Leuk! Mijn Python code doet het in iets minder dan 1 seconde.DataGhost schreef op zaterdag 4 december 2021 @ 12:32:
Ik heb wat testinvoer gemaakt voor deel twee, met
spoiler:grotere bingokaarten, deze zijn 100x100. Deel 2 met deze kaarten duurt bij mij zo'n 4 seconden (Python, in een VM op een 11 jaar oude laptop) met als antwoord 3074334900. Ik ben benieuwd hoe snel dat bij jou gaat dan, als je daar zin in hebt
[ Voor 27% gewijzigd door MueR op 04-12-2021 15:34 ]
Anyone who gets in between me and my morning coffee should be insecure.
Ik vind deze kaart voor A met jouw input.MueR schreef op zaterdag 4 december 2021 @ 15:33:
Kan iemand eens meekijken? Input staat er ook bij. Ik moet echt iets over het hoofd zien.
Siditamentis astuentis pactum.
Hoe werken die negatieve waarden? Ik zie ze niet (als positief) in de invoer staan op die kaart.MueR schreef op zaterdag 4 december 2021 @ 15:33:
Kan iemand eens meekijken? Input staat er ook bij. Ik moet echt iets over het hoofd zien.
https://github.com/MueR/a...fCode2021/Day04/Day04.php
spoiler:Ik kom met deze input op kaart 11, na het trekken van nummer 98, doordat de middelste kolom vol is. Het totaal van de overgebleven getallen is dan 792. 792 * 98 = 77616.
BINGO Card 11 Num 98
29 18 -94 -63 -55 :: Remaining 47
91 93 -98 45 34 :: Remaining 263
60 8 -2 86 -38 :: Remaining 154
95 89 -65 -22 59 :: Remaining 243
-39 -5 -20 44 41 :: Remaining 85
Card total: 792
Alles wat getrokken is maak ik negatief.dcm360 schreef op zaterdag 4 december 2021 @ 15:40:
[...]
Hoe werken die negatieve waarden? Ik zie ze niet (als positief) in de invoer staan op die kaart.
Anyone who gets in between me and my morning coffee should be insecure.
Dan gebeurt er ergens iets dat vrij raar is. Ik zie dit als invoer van die kaart:
Grom, dat is wel het goede antwoord. Maar ik snap dus nog even niet waar m'n code zich verslikt.Varienaja schreef op zaterdag 4 december 2021 @ 15:38:
[...]
Ik vind deze kaart voor A met jouw input.
spoiler:[59, 35, 52, 60, 91]
[75, 86, 13, 39, 21]
[33, 99, 11, 64, 50]
[37, 58, 71, 22, 54]
[6, 72, 88, 3, 85]
Met overblijfsel: [71, 72, 75, 11, 13, 21, 85, 86, 88, 91, 33, 35, 37, 50, 52, 54, 58, 59] en 63424 als uiteindelijk antwoord.
Anyone who gets in between me and my morning coffee should be insecure.
Wait.. what...dcm360 schreef op zaterdag 4 december 2021 @ 15:42:
[...]
Dan gebeurt er ergens iets dat vrij raar is. Ik zie dit als invoer van die kaart:spoiler:29 18 49 10 67
91 93 37 45 34
60 8 56 86 32
95 89 71 51 59
87 3 27 44 41
Anyone who gets in between me and my morning coffee should be insecure.
Nice. Mijne is dat dus niet, maar average-case welSoultaker schreef op zaterdag 4 december 2021 @ 15:31:
[...]
Leuk! Mijn Python code doet het in iets minder dan 1 seconde.
Dit algoritme is O(N) (bewijs als oefening voor de lezer) dus asymptotisch optimaal, al zal hetzelfde algoritme in bijvoorbeeld C veel sneller lopen.
[ Voor 93% gewijzigd door DataGhost op 04-12-2021 15:57 ]
Volgens mij behandel je in markNumber() álle kaarten, en niet alleen $card.
Ik kom ook uit op 3074334900, dus hetzelfde als jij. Het duurde een handvol minuten (maar in mijn verdediging, ik draai ook continue twee python processen die cryptografie-puzzels aan het decrypten zijn).DataGhost schreef op zaterdag 4 december 2021 @ 12:32:
[...]
Ik heb wat testinvoer gemaakt voor deel twee, met
spoiler:grotere bingokaarten, deze zijn 100x100. Deel 2 met deze kaarten duurt bij mij zo'n 4 seconden (Python, in een VM op een 11 jaar oude laptop) met als antwoord 3074334900. Ik ben benieuwd hoe snel dat bij jou gaat dan, als je daar zin in hebt
https://sigyn.dataghost.com/aoc/2021/aoc-2021-day3-part2.txt
When life gives you lemons, start a battery factory
* MueR gaat zich stilletjes in een hoekje schamen.Soultaker schreef op zaterdag 4 december 2021 @ 15:50:
[...]
Volgens mij behandel je in markNumber() álle kaarten, en niet alleen $card.
Anyone who gets in between me and my morning coffee should be insecure.
Officieel zou ik moeten weten hoe ik de big O bereken, heb gewerkt aan GPU parallelisatie van een O(N^5) probleem. (Nou blijken die vaardigheden niet perse uit mijn geklungel met pythonVarienaja schreef op zaterdag 4 december 2021 @ 15:28:
[...]
Als je Grote O leert uitrekenen dan weet je of het eenvoudiger (sneller) wordt ipv dat je het alleen maar denkt.
Mijn oplossing doet 400ms over jouw 100x100 invoer.![]()
[...]
Bij mijn weten simuleer ik het hele spel en dat duurt echt niet lang. Beter gezegd: dat hoeft niet lang te duren.
De cluster zou het wel enigszins sneller maken door de snellere cores en meer/sneller geheugen neem ik aan?DataGhost schreef op zaterdag 4 december 2021 @ 15:30:
[...]
Die cluster zou het niet sneller maken aangezien je code totaal niet parallel is
Wbt je spoiler: dat moet tot op zekere hoogte nog wel, maar
spoiler:een aantal controles welke heel relatief heel veel tijd kosten zijn grotendeels nutteloos omdat er tussen trekkingen maar heel weinig verandert
Je bent niet de enige hiermee trouwens. Het is een stuk leesbaarder/logischer op de naïeve manier, zoals dat wel vaker zo is. Gelukkig is dat de eerste paar dagen nog niet zo erg, maar dat zijn wel de dagen dat je tijd hebt om met betere aanpakken te komen, zodat je daar in latere dagen nog maar relatief weinig tijd aan kwijt bent (haha).
Nja zolang je maar 1 core kan gebruiken gaat het door die speedup alsnog nooit zomaar onder de 10 minuten zakken.Cranzai schreef op zaterdag 4 december 2021 @ 16:01:
[...]
De cluster zou het wel enigszins sneller maken door de snellere cores en meer/sneller geheugen neem ik aan?
Vaak gaat een groot deel al vanzelf als je de juiste datastructuren kiest, die voor het doel wat je beoogt en de operaties die je vaak doet een snelle looptijd hebben. Iets simpels als het verschil tussen een linked list en een normale list is al O(n) voor element access. Op dezelfde manier isDoe het idd op de naïve manier omdat ik het ook als een verhaaltje probeer uit te voeren en tijdens het programmeren op die manier aan mezelf vertel, echt slim programmeren moet ik altijd nog over nadenken.
Vaak komen de verbeterpunten in de code al gauw in mij op als ik klaar ben. Geavanceerdere technieken zoals mapping en weet ik veel wat heb ik nooit gehad / meegewerkt dus ik baseer programma's vaak op logica en for loopjes
[ Voor 10% gewijzigd door DataGhost op 04-12-2021 16:06 ]
Soms gaat het niet zoals het moet, maar moet het maar zoals het gaat
Ik zag dat in Python direct al mis gaan dus zonder het te proberen heb ik directydderf schreef op zaterdag 4 december 2021 @ 16:14:
spoiler:Eerst een tijd aan het stoeien geweest om de input in te lezen, totdat ik zag dat er soms een dubbele spatie tussen staat wat mijn string.split() niet fijn vond.
Apple iPhone 16e LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq