Dag Firmin,
Vermits je deze vraag stelde vanuit heel nobele motieven heb ik er toch nog even mijn tanden in gezet.
En wat blijkt ? Ik blijf overtuigd dat code die elke aangevatte zoektocht tot een goed einde zal brengen te schrijven is, maar tegelijk heel tijdrovend.
En dus heb ik er een andere (en nog redelijk simpel ook
) !
In ongeveer 40 % van de gevallen levert ze onmiddellijk resultaat. In de andere loopt ze vast... en dus laat ik na een aantal missingen hervatten, waardoor er uiteindelijk ALTIJD een correcte oplossing gevonden wordt.
Wie iets van kansberekening weet zal daarom begrijpen dat het in uitzonderlijke gevallen veel langer dan gemiddeld kan duren, maar het gemiddelde zelf valt goed mee.
Ik heb het 100 keer laten lopen en een statistiekje gemaakt (uiteraard ook dit volledig geautomatiseerd) met als resultaat : oplossing gevonden in minimum 0,4 sec. en een negatieve uitschieter van 12,4 sec., waardoor ik bij een gemiddelde kom van 2,3 sec., maar de mediaan slechts 1,8 sec. (bij verwerking die geen gebruik maakt van je werkblad met formules).
Ik heb me voorlopig enkel met een werkend algoritme bezig gehouden, moet er dus nog een deel ballast uitgooien, visueel lijkt het ook nog nergens op, en ik zou ook nog code toevoegen die expliciet bepaalt hoeveel vakjes je wil leegmaken, maar in elk geval wou ik je dit toch al laten weten.
Wordt dus vervolgd...
Mvg,
pitufo
PS : ik heb er ook redelijk leesbare code van gemaakt die ongetwijfeld bij ECHTE
programmeurs op kritiek zou stuiten...