Remcoder schreef op dinsdag 5 december 2023 @ 19:11:
spoiler:Hoe krijgen mensen een runtime met een resultaat in minuten?
Mijn eerste poging vrat in no time al het geheugen op. Alle seeds maken en in het geheugen proppen was blijkbaar niet zo snugger.
Mijn tweede poging zou vast nu nog aan het lopen zijn.
En mijn derde poging was klaar binnen 8 seconden, wat ik al veel vind. Daarbij begin ik met location 0, die reken ik terug naar een seed en dat net zo lang ophogen tot ik een seed in range vond.
Zonder parallelisatie, dus mijn machine stond lekker single threaded te stampen.
Dus, hoe kom je tot een runtime die realistisch in minuten kan tellen?
spoiler:
Geen daadwerkelijke lists maar ranges / progressions gebruiken scheelt al enorm in het geheugen.
Als je dan vervolgens door je ranges heen loopt doe je een reduce operatie waardoor je niet de mapping of het resultaat in het geheugen houdt, maar enkel de tot dan bekende minimale waarde. Je loopt dus wel idioot veel "seeds" door, maar je geheugen klapt er niet uit.
Als je dan vervolgens door je ranges heen loopt doe je een reduce operatie waardoor je niet de mapping of het resultaat in het geheugen houdt, maar enkel de tot dan bekende minimale waarde. Je loopt dus wel idioot veel "seeds" door, maar je geheugen klapt er niet uit.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra