* * *
Medlemmer
Statistik
  • Total antal indlæg: 15981
  • Total antal emner: 1401
  • Flest online idag: 38
  • Flest på samme tid: 479
  • (21, September 2024 - 03:32)
Brugere online
Besøgende: 0
Gæster: 129
I alt: 129

Forfatter Emne: Umulig Sudoku!  (Læst 11621 gange)

John Larsson

  • Senior
  • *****
  • Indlæg: 979
    • Vis profil
Umulig Sudoku!
« Dato: 05, Marts 2012 - 22:13 »
Jeg bruger kun sudoku'erne til hjernegymnastik, så går de ikke op, slår jeg et stort kryds over hele feltet, så jeg ikke skal bruge mere tid på netop den! Ind imellem har jeg luret på, om de der ikke går op i virkeligheden ikke er fejlkonstruerede. I dag tog jeg mig tid til at tjekke den svære i Tante Berlinger. Det gjorde jeg på http://www.dailysudoku.com/sudoku/play.shtml for at gøre det nemt. sørme om den ikke var umulig!  ;-)

efry

  • Senior
  • *****
  • Indlæg: 278
    • Vis profil
Sv: Umulig Sudoku!
« Svar #1 Dato: 05, Marts 2012 - 23:22 »
Jeg har for flere år siden skrevet noget i Basic, der kan løse mange, men bestemt ikke alle Sodukoer. Det lille program fandt dog følgende løsning

362 741 895
186 692 473
479 358 621
213 974 586
846 215 739
957 836 214
531 487 962
724 169358
698 523 147

V.h
Erik

efry

  • Senior
  • *****
  • Indlæg: 278
    • Vis profil
Sv: Umulig Sudoku!
« Svar #2 Dato: 05, Marts 2012 - 23:56 »
For øvrigt kan den link, som du henviser til, også løse opgaven.

John Larsson

  • Senior
  • *****
  • Indlæg: 979
    • Vis profil
Sv: Umulig Sudoku!
« Svar #3 Dato: 06, Marts 2012 - 14:50 »
For øvrigt kan den link, som du henviser til, også løse opgaven.

Øv, det var dog irriterende! Ikke nok med at jeg må have lavet noget ulogisk i den manuelle løsning af opgaven, men jeg må også have tastet noget forkert i udgangspositionen, da jeg testede den maskinelt; nu virkede den også for mig!

Hvordan er logikken bagved dit program, og hvordan ved du at at det ikke kan løse alle løselige opgaver?Min tilgang, sådan historisk, var at jeg var interesseret i at lave et program som kunne konstruere opgaver med en objektiv mærkning af sværhedsgrader, men der gik jeg i stå...

Kun for nørder:

Opgaven i "Tanten" var:

3,_,_/7,_,_/8,_,5
_,_,_/6,9,_/_,_,_
_,7,_/_,_,_/_,2,1

_,_,_/9,_,_/5,_,6
_,_,_/2,1,_/_,_,9
_,5,_/_,3,_/_,_,_

_,_,1/_,8,_/_,_,_
_,_,4/_,_,_/3,_,_
6,_,8/_,_,3/_,_,7


;-)  (Dét sidste skulle bare forestille en smiley!)

efry

  • Senior
  • *****
  • Indlæg: 278
    • Vis profil
Sv: Umulig Sudoku!
« Svar #4 Dato: 06, Marts 2012 - 17:58 »

Mit program, der er skrevet i Basic 6.0, dvs. fra før .NET kom frem, er opbygget således at man kan prøve forskellige principper i vilkårlig rækkefølge.

Programmet er udelukkende skrevet for sjov og egentligt kun for at kunne checke en løsning, hvis man ikke kan komme videre, idet det er min erfaring, at når man gror fuldstændigt fast, så skyldes det ofte, at man har lavet en fejl, som blokerer den videre løsning.

Der findes en side, der beskriver en række principper fra helt simple til meget avancerede. Den findes på:

http://www.sudokuwiki.org/sudoku.htm

Til højre på siden findes en liste over en række principper for løsning.

I mit program er kun principperne 1, 2, 3, 5 og 7 implementeret på en eller anden form, men det løser også så godt som alle de sodukoer, man finder i aviserne.

En god beskrivelse af løsningsmuligheder findes også på:

http://www.angusj.com/sudoku/hints.php

Det er godt nok længe siden, jeg sidst har beskæftiget mig med programmet, men hvis du (eller andre) sender mig en mail, så vil jeg da godt sende såvel program som sourcekoden, dog under den betingelse, at i undlader at kommentere sourcekoden. Da jeg på et tidspunkt overvejede at omskrive til .NET opgav jeg, for koden er lavet ved brug af copy/paste og ligner derfor spagetti af værste art. Der findes dog mange programmer på nettet, der er betydeligt bedre end mit og som er skrevet i mere moderne sprog. Mit blev lavet den gang adgangen til nettet foregik via opkobling over ISDN og dermed tog en betragtelig tid for at få forbindelsen etableret.

Når du spørger om hvordan jeg kan vide, at programmet ikke kan løse alle sodukoer, så er det jo ret simpelt at finde en soduko, der kræver anvendelse af et af de mere avancerede principper for løsning, og herefter fastslå at programmet selvfølgelig ikke kan løse denne.

 

Seneste Debatindlæg

Google ads:



Nyt fra ing.dk