Op bovenstaand coördinaat kun je welicht wel whisky vinden maar niet deze cache.
Kortom je moet eerst een puzzle oplossen.
Voordat je deze cache gaat proberen op te lossen raad ik je aan eerst de puzzelcache Goedkope Whiskey op te lossen (https://coord.info/GCAG27V)
En voordat je die gaat oplossen raad ik je aan om DBC#13 - Cadeautje kopen op te lossen.
De reden waarom je in die volgorde moet gaan oplossen is omdat je moet gaan nadenken over hoe je een stukje code efficiënter kunt maken.
Een fles whiskey van €19,95 vond ik toch niet zo lekker. De whiskyflessen die ik lekker vind kosten meestal iets rond de zestig euro.
Nu willen we de fles contant met muntgeld en/of papiergeld afrekenen en de muntjes van 1 en 2 eurocent gebruiken we niet meer.
Op hoeveel manieren kan een fles whiskey van € 59,95 betaald worden?
De simpele vraag is dus: Gebruikmakend van een onbeperkte voorraad van de hier genoemde euromunten en biljetten, op hoeveel verschillende manieren kun je € 59,95 vormen?
Voor de duidelijkheid we gebruiken de volgende mogelijke betaalmiddelen:
5, 10, 20, 50 eurocent
1, 2, 5, 10, 20, 50 euro
----------------------------------------
Waarom heb ik getwijfeld om deze cache te publiceren? In eerste instantie had ik voor mijn cadeautje kopen een stukje code die weliswaar de oplossing kon berekenen maar die code was niet heel erg snel. Er kon dus één en ander aan geoptimaliseerd worden.
Nadat ik de eerste stap had geoptimaliseerd wou ik eigenlijk een puzzel maken voor een fatsoenlijke fles whiskey. Maar ik had het geduld niet om te wachten op de output van mijn script. Zelfs niet van het gedeeltelijk geoptimaliseerde script. Totdat ik nog een geniale extra stap bedacht... Toen was het ineens uit te rekenen.
Ik heb om dit soort puzzels op te lossen zowel gebruik gemaakt van PHP als PERL. Beide werken net iets anders maar beiden geven je de oplossing.
Hierbij geef ik jullie een wat voor de leesbaarheid opgepoetste versie van mijn eerste script in PHP en PERL. Voor het voorbeeld gebruiken we een bedrag van €1,99

En in PERL ziet het script er zo uit:

Tja, Maar ik dacht wat is dat script toch tergend traag.... Tja voor 1,99 kan ik best even wachten. 160 seconden wachten op een oplossing is te doen. Maar ik bedacht me dat kan slimmer... En al snel had ik die 160 seconden terug gebracht naar 1 seconde. Al een stuk beter te doen. Maar het was me nog niet snel genoeg. Mijn uiteindelijke script Tja, Afgerond in minder dan een seconde. De output zegt 0 seconden...
Nog steeds ging het me allemaal niet snel genoeg. Ik zag dat het programma zijn tijd aan het verdoen was. Dat moest beter kunnen!
Maar goed de uiteindelijke versie van mijn perl script had 328 seconden nodig om met €59,95 te werken volgens bovenstaande opgave. Bij de middelste versie had ik al geen geduld om te wachten op een uitkomst. Laat staan bij de eerste versie. Volgens mij kun je dan beter een bitcoin gaan minen.
De oplossing van deze cache uit rekenen duurt daarmee echt te lang.
Dus bij deze de vraag. Hoe efficiënt weten jullie dit vraagstuk op te lossen?
Ik kan het je niet verplichten maar zou het leuk vinden als je de rekentijd voor het vinden van een oplossing in je log vermeld.
En mocht je je source willen delen dan kan dat altijd in een persoonlijk bericht/email