Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Sudoku oplossen.  (gelezen 22560 keer)

0 leden en 1 gast bekijken dit topic.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Sudoku oplossen.
« Reactie #60 Gepost op: 30 december 2019, 14:08:28 »
Citaat
in bijlage een bestand van pitufo waarin bij een iets moeilijkere sudoku een deel singles niet gevonden wordt
Klopt helemaal, SoftAid, en de verklaring is weer simpel: hij vindt ze niet omdat hij ze niet zoekt  :D

We komen van een stadium waarin singles naast en onder je kader werden neergezet als in een 3x3-vakje slechts één cijfer voorkwam. Het is nog steeds dat principe (en enkel dát) dat in mijn macro wordt gehanteerd. Ik ben ook niet naar méér op zoek gegaan omdat het niet je ambitie was een sudoku-oplosser te creëren, maar enkel via een macro wat (beperkte) hulp te krijgen bij het oplossen.
De singles waar jij het nu over hebt zijn dus inderdaad van een andere categorie, maar uiteraard ook 'vindbaar'.
't Kan wel zijn dat ik er pas volgend jaar naar zal kunnen kijken  ;D

Citaat
Wel oppassen dat je niet per 3*3-kader meer laat zoeken, want dan wist hij sommige cellen volledig leeg
Hier volg ik even niet meer... die keuze heb je in mijn macro niet. Kan je dat beter toelichten of een voorbeeld bezorgen?

Tot later!
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Sudoku oplossen.
« Reactie #61 Gepost op: 31 december 2019, 04:19:52 »
ik heb weer even een update gedaan.
De macro "ZoekenBart" gaat die sudoku nu oplossen met in methode2 zowel de rijen als kolommen zoals gevraagd.
In de statusbar onderin kan je nu ook zien waarmee de macro op dat moment bezig is.
Veelal het wissen van de hulpcellen, dat is nogal arbeidsintensief en eigenlijk niet productief. Een beetje het gevolg van de gemaakte keuzes.
Maar ja, deze oefening is eerder een leermoment dan iets anders ... .

Verder had ik eerder een probleempje met de screenupdating en vraag het programma eventjes een seconde te wachten anders volgende het scherm niet netjes.
Gek, zoiets had ik nog niet eerder meegemaakt. Moet dat misschien eens dieper uitspitten.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #62 Gepost op: 31 december 2019, 10:25:52 »
Hallo cow18,

ik had ongeveer dezelfde problemen. Maar ik ben wel fier dat ik die grotendeels opgelost heb.

Met mijn code, jou code en de code van pitufo samen te brengen draait het geheel nu vrij vlot.
Ik heb jou macro eerst in drie aparte macro's verdeeld. Even snel, maar beter beheersbaar voor het testen.

Er zijn nog steeds zaken die ik niet zi goed begrijp in jou macro, zoals c3
ik vermoed dat ik die er binnenkort uit kan laten.
c2 volstaat den ik, maar dat ga ik vandaag uittesten.

Mijn ambities zijn, zoals pitufo terecht opmerkte een beetje toegenomen.
Naargelang men mogelijkheden ziet, wil men ze ook proberen toe te passen.

Maar ik leer (voor mijn doen) enorm veel bij op die manier.

Volgende doelstelling: een teller zetten (in het werkblad opslaan na elke macro) hoeveel cellen er merged cells zijn.
Elke volgende macro kan dan dit getal in het werkblad terug oppikken, en alzo de stand bijhouden. Bij een maximum van 81 cellen kunnen we de macro's verlaten.

Eerst moet ik nog een goede methode vinden van springen naar de verschillende macro's. Want dat zal nodig zijn bij een iets moeilijkere macro. Het blijft boeiend...  8)

In bijlage mijn stand van zaken gisterenavond (of moet ik zeggen deze morgen in de vroege uurtjes...)

Groeten,

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #63 Gepost op: 31 december 2019, 11:33:25 »
Klopt helemaal, SoftAid, en de verklaring is weer simpel: hij vindt ze niet omdat hij ze niet zoekt  :D
mja, toch niet helemaal.
Plaats een moeilijke, en je laatste macro maakt er 11 extra merged bij, cow18 ook 11, mijn probeersel maar 8
Eigenlijk povertjes voor een macro die handmatig nog redelijk goed op te lossen is, zelfs zonder hulpcellen.
We komen van een stadium waarin singles naast en onder je kader werden neergezet als in een 3x3-vakje slechts één cijfer voorkwam. Het is nog steeds dat principe (en enkel dát) dat in mijn macro wordt gehanteerd. Ik ben ook niet naar méér op zoek gegaan omdat het niet je ambitie was een sudoku-oplosser te creëren, maar enkel via een macro wat (beperkte) hulp te krijgen bij het oplossen.
Daar heb je volledig gelijk in, maar ik ben intussen nieuwsgierig en ambitieus geworden...  0:-) 0:-)

Vergeet die opmerking over 3*3 maar. Ik bedoelde dat als je stukken code opnieuw gaat uitvoeren, dat als je tussendoor ook hulpcellen wist, je heel foute resultaten krijgt. Maar daar was je mogelijk al zelf achter gekomen.

Je macro is heel zeker heel compact en overzichtelijk. Ik ga me daar vandaag eens over buigen, zien of ik de code-opbouw kan begrijpen, en dan mogelijk mijn (die van Bart eigenlijk) kan aanpassen.

Maar zoals iedereen nu wel gezegd heeft, het doel is bereikt, de rest is "spielerei"  :thumbsup:

Groeten,

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #64 Gepost op: 31 december 2019, 13:19:08 »
hallo pitufo,

Citaat
Citaat
in bijlage een bestand van pitufo waarin bij een iets moeilijkere sudoku een deel singles niet gevonden wordt
Klopt helemaal, SoftAid, en de verklaring is weer simpel: hij vindt ze niet omdat hij ze niet zoekt  :D

mja, toch niet de oorzaak.
Plaats een "moeilijke", zet de teller op 80 en je laatste macro maakt er 11 extra merged bij, bij cow18 ook 11, en mijn probeersel vind er maar 8  :(
Eigenlijk povertjes voor een macro die handmatig nog redelijk goed op te lossen is, zelfs zonder hulpcellen.

Citaat
We komen van een stadium waarin singles naast en onder je kader werden neergezet als in een 3x3-vakje slechts één cijfer voorkwam.
Daar heb je volledig gelijk in, maar ik ben intussen nieuwsgierig en ambitieus geworden...  0:-) 0:-)

Vergeet die opmerking over 3*3 maar. Ik bedoelde dat als je stukken code opnieuw gaat uitvoeren, dat als je tussendoor ook hulpcellen wist, je heel foute resultaten krijgt. Maar daar was je mogelijk al zelf achter gekomen.

Je macro is heel zeker heel compact en overzichtelijk. Ik ga me daar vandaag eens over buigen, zien of ik de code-opbouw kan begrijpen, en dan mogelijk mijn (die van Bart eigenlijk) kan aanpassen.

Maar zoals iedereen nu wel gezegd heeft, het doel is bereikt, de rest is "spielerei"  :thumbsup:

Groeten,

:) SoftAid :)             

PS: met dezelfde codes getest op een Advanced, en daar vinden die van cow18 en pitufo er maar 2, die van mij 6  0:-)
zie bijlage:
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Sudoku oplossen.
« Reactie #65 Gepost op: 02 januari 2020, 09:46:50 »
Hallo allemaal,

Eerst en vooral : voor iedereen (deelnemers, volgers en toevallige passanten in dit draadje) een voorspoedig en gezond 2020 gewenst. Hopelijk is iedereen, net als ik, met het juiste been uit 2019 gestapt.

Verder had ik eerder een probleempje met de screenupdating en vraag het programma eventjes een seconde te wachten anders volgende het scherm niet netjes.
Gek, zoiets had ik nog niet eerder meegemaakt. Moet dat misschien eens dieper uitspitten.
Ik kom dat zelden tegen (staat in meer dan 99% van mijn macro's uit), maar heb het dus ook wel eens gezien. Ik denk dat dit een interne Excel-kwestie is. Mogelijk heeft MS geoordeeld dat screenupdating niet het belangrijkste is en wordt dat in de nieuwere versies geregeld tegengehouden. In elk geval had je dat in Excel 2007 nog niet.

Citaat
    de verklaring is weer simpel: hij vindt ze niet omdat hij ze niet zoekt  :D

mja, toch niet de oorzaak.
Toch wel hoor, SoftAid, ik mag er mijn hand voor in het vuur steken dat ik mijn macro van binnen en van buiten ken ('k heb hem namelijk zelf geschreven...). Als jouw of Bart's macro tot andere aantallen leiden, dan moet het wel zijn omdat ze iets meer of iets minder doen. Die van mij zocht en vond alle singles die aan ons eerste criterium voldeden, namelijk als in een 3x3 één waarde stond. Vermoedelijk heb ik hier en daar wat bijlagen gemist waardoor ik niet ten volle over jullie stand van zaken kan oordelen.

'Vond', 'stond', enz., je voelt hem al komen: ik heb een nieuwe versie.
Heb ook wat (beschouw het maar als een versie in de eerste plaats voor mezelf) aan de opmaak geprutst. Het blad met 4 voorbeelden (4 moeilijkheidsgraden) is toegevoegd, en er wordt rechtstreeks daaruit een kopie gemaakt (beetje handiger om te testen). De storende randjes rond de kleine hulpcellen zijn ook weggewerkt, de knoppen zijn uitgelijnd, enz, allemaal prullaria dus, maar althans voor mij plezanter om misschien nog verder te puzzelen.

Over naar de wezenlijke veranderingen: in de laatste versie van Bart wordt op zeker ogenblik methode 1 definitief verlaten (zelf had ik nog maar 1 methode en daar dus geen last van). Redeneren jullie even mee? Van zodra een single gevonden is wordt deze definitief vastgezet op het bord. Je zou kunnen stellen dat er op dat ogenblik een nieuwe opgave ontstaat, wat als gevolg heeft dat er ook een nieuwe set aan hulpcellen ontstaat, en dát moet dan weer als gevolg hebben dat opnieuw alle methodes dienen doorlopen worden.
Vanuit die visie heb ik nu mijn extra zoekmethodes binnen dezelfde lus gezet, en dat zal zo moeten blijven indien we nog méér zoekmethodes willen toevoegen!
Het resultaat is dat hiermee zowel de 'gemakkelijke' als de 'moeilijke' sudoku volledig worden opgelost. Advanced en expert blijft een ander paar mouwen. Wat tot de vraag leidt of we hier nu gelukkig moeten van worden. Want met de zoekmethodes die we tot nu hanteren krijgen we veel (héél veel) hulp bij (redelijk) gemakkelijke sudoku's en geen of weinig hulp bij lastige(re)...

In de statusbar onderin kan je nu ook zien waarmee de macro op dat moment bezig is.
Veelal het wissen van de hulpcellen, dat is nogal arbeidsintensief en eigenlijk niet productief

We waren inderdaad nogal simpel begonnen. Eigenlijk hebben we niet één maar twee 'hulpcelwismacro's' nodig. Een eerste aan het begin van het zoekalgoritme (dus eenmalig), en een tweede die enkel wist waar nodig bij elke gevonden single. Er komen namelijk nooit hulpcellen bij, en dus kunnen we ons beperken tot wissen in die range die past bij die single. In de praktijk is het geen nieuwe macro geworden, maar is het toegevoegd aan een nieuwe subroutine die elke gevonden single verwerkt. Een blik op de code zal het waarschijnlijk duidelijker maken, en het uitvoeren van de zoekmacro hopelijk ook.

Benieuwd naar suggesties over volgende stappen...

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #66 Gepost op: 02 januari 2020, 12:15:55 »
Hallo pitufo,

je hebt het nieuwe jaar toch al goed ingezet.

Waar je voorheen bij de "Advanced" slechts 2 singles vond, vind hij er nu 6, het resultaat dat ik toen ook haalde.
Voor die "Advanced" in de Reservemap is dat ook het maximum, omdat er zonder bijkomende code geen meer kunnen gevonden worden.
Je keuzevak om een andere macro te laden werkt nog niet, maar dat is een kleinigheid, en doet niets af aan je macro.

Bij een zeer moeilijke macro kan je met onze macro's enkel de hulpcellen wissen, meer niet. Je moet dan al veel geluk hebben dat je een cel met een single erbij hebt. Dat is ook de bedoeling van het spel , hé..

Een bank vooruit en een kus van de juffrouw  ;D :thumbsup:

Suggesties volgen als ik je code ontcijfert heb  ;D  Dat kan rond oudejaarsavond zijn, met mijn klein verstand... 0:-)

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Sudoku oplossen.
« Reactie #67 Gepost op: 02 januari 2020, 13:49:06 »
Citaat
Een bank vooruit en een kus van de juffrouw  ;D :thumbsup:
Dáár doen we het voor!  :D

Citaat
Je keuzevak om een andere macro te laden werkt nog niet
Een andere macro of een andere sudoku? De naweeën van de jaarovergang?  0:-)
Raar, werkt hier al een tijdje moeiteloos ('t zijn ook maar 2 lijntjes code)
Kijk je anders nog even of je na downloaden misschien ergens een kleinigheid hebt gewijzigd?

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #68 Gepost op: 02 januari 2020, 15:30:49 »
Hallo pitufo,

sorry, ik was even weg.

Ja, de macro staat er, maar een keuze-menu in Sudoku!(ai10) mankeert.
Ik heb er zelf een aangemaakt met gegevensvalidatie  :)
Als er bij jou wel iets verschijnt, dan hangt dit van de Office versie af, want voor mij stond er niets in ai10 behalve tekst.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Sudoku oplossen.
« Reactie #69 Gepost op: 02 januari 2020, 15:40:51 »
Klopt helemaal, SoftAid, heb hem even in Excel 2007 geopend en gegevensvalidatie is inderdaad foetsie  :( , met dank aan onze MS-vrienden...

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 257
  • Geslacht: Man
  • Oplossing.be
Re: Sudoku oplossen.
« Reactie #70 Gepost op: 05 januari 2020, 12:15:15 »
toch nog even een poging gewaagd.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #71 Gepost op: 05 januari 2020, 14:22:07 »
toch nog even een poging gewaagd.
goede poging met goede resultaten  :thumbsup:

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Sudoku oplossen.
« Reactie #72 Gepost op: 24 januari 2020, 17:10:51 »
He he, 't moest er van komen, 'k heb dit draadje nog eens van onder het stof gehaald.
Hoe een mens soms ergens over kan kijken (ik spreek hier nadrukkelijk voor mijzelf), 't is soms de moeite...
Ik zag namelijk niet hoe emields en ikzelf, die nochtans overduidelijk dezelfde gedachtengang hanteren, een verschillend aantal hits vonden bij de 'advanced' sudoku.
Mijn codeblokken voor kolommen en voor rijen lijken erg op elkaar, dus bibi had er natuurlijk maar één geschreven, dan gekopieerd en de noodzakelijke aanpassingen gedaan... op één na  :-[
"subkolom = Int((nr - 1) / 3)" moest nog worden vervangen door "subkolom = (nr - 1) Mod 3"

Heel relevant is het niet meer, maar omdat we nu helemaal op hetzelfde resultaat zitten, en hij het op grafisch vlak vrij goed doet, geef ik hem toch nog even mee. Hiermee is bevestigd dat inderdaad alle singles aan het licht komen mocht dat qua ultieme geruststelling nog nodig zijn  ;)

Waar ik ook nog even wil op wijzen: in principe wordt er toch aangenomen dat een waarachtige sudoku maar één juiste oplossing heeft (?)
Ik meende, door de 'advanced' opdracht manueel op te lossen, iets anders waar te nemen, en heb er mijn oude sudoku-oplosser uit reactie #11 op los gelaten, en hij heeft dus inderdaad 8 mogelijke oplossingen.
Een beetje gekker is de 'expert' opdracht. Die heeft met zekerheid honderdduizenden en met grote waarschijnlijkheid miljoenen oplossingen  :'(
Van welke site zou die gekomen zijn...


Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sudoku oplossen.
« Reactie #73 Gepost op: 24 januari 2020, 18:41:08 »
Waar ik ook nog even wil op wijzen: in principe wordt er toch aangenomen dat een waarachtige sudoku maar één juiste oplossing heeft (?)
Ik meende, door de 'advanced' opdracht manueel op te lossen, iets anders waar te nemen, en heb er mijn oude sudoku-oplosser uit reactie #11 op los gelaten, en hij heeft dus inderdaad 8 mogelijke oplossingen.
Een beetje gekker is de 'expert' opdracht. Die heeft met zekerheid honderdduizenden en met grote waarschijnlijkheid miljoenen oplossingen  :'(
Ik denk dat er maar 1 oplossing is voor elke sudoku, maar dat verschillende benaderingen tot hetzelfde resultaat kunnen leiden.
Voornamelijk met de geavanceerde.
Alle wegen leiden naar Rome, maar dat moeten niet noodzakelijk steeds dezelfde wegen zijn....

Just my 2 cents....

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: Sudoku oplossen.
« Reactie #74 Gepost op: 24 januari 2020, 18:48:56 »
Citaat
Just my 2 cents....
Moet dat tegenwoordig niet afgerond worden naar 0 of 5 cents? 8) 0:-)
Leuk draadje om te volgen maar weten jullie dat excel goeroe Andy Pope in 2005 al een sudoku heeft ontworpen, ik heb die al een paar jaar in een van mijn excel kastjes liggen. ;)

 


www.combell.com