Kirjoittaja Aihe: Harrastellaan sudokua  (Luettu 1534 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Poissa Jaska Jokunen

  • Ikijäärä
  • Konkari
  • Viestejä: 4813
Vs: Harrastellaan sudokua
« Vastaus #20 : ke 14.06.2017, 15:26:11 »

Tässä on elämäni ensimmäinen itse suunnittelemani sudokutehtävä.

Koodia: [Valitse]

 1 6 2  . . .  3 8 7
 4 . .  . 3 .  . . 6
 3 . .  6 . .  . . 5

 . . 6  3 8 4  . . .
 . 8 .  9 . 7  . 1 .
 . . .  2 5 1  6 . .

 8 . .  . . 3  . . 1
 7 . .  . 4 .  . . 3
 6 3 1  . . .  2 5 4
Vaikeusluokittelematon, mutta ei ylen vaikea normaalille sudokunratkojalle.

Näin sen tein itsetehtyä AWK-skriptiä käyttäen.

Ensin arvotaan tyhjän sudokuruudukon kymmeneen satunnaiseen ruutuun numeroita satunnaisesti niin, että ruudun rivin, sarakkeen ja lohkon jo asetettuja numeroita ei laiteta.

Sitten ratkaistaan tällaisesta tehtävästä raa'alla voimalla kokeilemalla ensimmäinen ratkaisu. Tästä tulee tehtävän ratkaisu.

Kymmenen alkunumeron satunnaisiin tehtäviin saadaan tavallisesti tuhansia ratkaisuja. Kokeilin ensin 32 numeron arvontaa, mutta en jaksanut yrittää niin montaa kertaa, että tehtävällä olisi ollut ratkaisuja.

Meillä on siis ratkaisu. Tehdään sille tehtävä poistamalla ratkaisusta numeroita. Tyhjensin tehtävän  jonkinmoista peilisymmetriaa lävistäjän suhteen tavoitellen satunnaisesti eli ruutuja arpomalla niin että jäljelle jää noin 30 numeroa.

Tästä tehtäväehdokkaasta jälleen raa'alla voimalla kokeilin, onko sillä tasan yksi ratkaisu. Jos on yksi ratkaisu, niin ehdokas kelpaa tehtäväksi.

Puhdasoppisempi vaikeamman tehtävän tuottava olisi ollut tavoitella minimaalista tehtävää niin, että joka numeron poiston jälkeen kokeillaan onko jäljelle jääneillä yksi ratkaisu. Poistoa toistetaan kunnes saadaan ensimmäinen, jolla on useampia ratkaisuja. Edelliselle tehtäväehdokkaalle koitetaan poistaa kaikkia jäljellä olevia numeroita löytyisikö näin vähänumeroisempi ratkaisu ja jos löytyy, niin edelleen sille kokeiltaisiin numeroiden vähentämistä.
« Viimeksi muokattu: ke 14.06.2017, 18:29:50 kirjoittanut Jaska Jokunen »

Poissa Hayabusa

  • Konkari
  • Viestejä: 2676
Vs: Harrastellaan sudokua
« Vastaus #21 : to 15.06.2017, 14:41:58 »
Hiukan arvailen, että rutinoituneet sudokuratkaisijat eivät muotoile päättelysääntöjä näin formaalisti, vaan ovat tottuneet hahmottamaan tilanteita ja mielessä on, miten niissä menetellään.

Rutiinia löytyy, mutta nuo kehittyneemmät säännöt ei ole hallussa.

Poissa Jaska Jokunen

  • Ikijäärä
  • Konkari
  • Viestejä: 4813
Vs: Harrastellaan sudokua
« Vastaus #22 : ke 21.06.2017, 11:13:31 »

Täällä rutiinia ei ole tarpeeksi. Vaikkapa huomaamaan, että kun lohkossa (vastaavasti rivissä tai sarakkeessa) kolme eri numeroa on laillista laittaa vain samoihin kolmeen ruutuun (tai osaan esim. niin että kukin kolmesta on lupa laittaa kahteen ruutuun kolmesta), niin silloin muita numeroita ei näihin ruutuihin voi tulla. Sen seurauksena jollekin muulle numerolle vaikkapa jääkin vain yksi mahdollinen paikka ...

Poissa wade

  • Konkari
  • Viestejä: 1441
Vs: Harrastellaan sudokua
« Vastaus #23 : pe 23.06.2017, 08:51:06 »

Tässä on elämäni ensimmäinen itse suunnittelemani sudokutehtävä.

Koodia: [Valitse]

 1 6 2  . . .  3 8 7
 4 . .  . 3 .  . . 6
 3 . .  6 . .  . . 5

 . . 6  3 8 4  . . .
 . 8 .  9 . 7  . 1 .
 . . .  2 5 1  6 . .

 8 . .  . . 3  . . 1
 7 . .  . 4 .  . . 3
 6 3 1  . . .  2 5 4
Ratkaisin Jaskan ensimmäisen sudokun. Aikaa meni n. 5min.

Poissa Jaska Jokunen

  • Ikijäärä
  • Konkari
  • Viestejä: 4813
Vs: Harrastellaan sudokua
« Vastaus #24 : ke 18.04.2018, 06:24:05 »
Sunnuntain Hesarissa oli huvittavan hauska suodokutehtävä. Vallan mainio aloittelijalle yksinkertaisimpien päättelysääntöjen harjoittelemiseen.

On hyödyllitä kiinnittää huomio vaakarviveihin, pystyriveihon ja pikkuneliöihin, joissa on jo monta numeroa paikalleen asetettuna.
On hyödyllistä kiinnittää huomio numeroihin, joita on jo paljon asetettuina eli puuttuu harvoista kohteista (vaaka/pystyriveistä, pikkuneliöistä)

Tämä taitaa mennä kahdella yksinkertaisimmalla säännöllä
1) Ainoa paikka Kun numero sopii vaakariville, pystyriville, pikkukolmioon vain yhteen paikkaan, laitetaan numero siihen (numeroa ei jo ole ko samalla vaakarivillä, samalla pystyrivillä, samassa pikkuneliössä)
2) Ainoa numero Kun paikkaan vaakarivillä, pystyrivillä, pikkuneliössä)  sopii vain yksi numero, laitetaan se numero paikkaan


     |6   2|  8 9
    7|4    |    2
    9|     |  7 6
-----+-----+-----
     |1 3  |    7
2 9  |  5  |  4 3
4    |  6 9|     
-----+-----+-----
8 3  |     |1     
7    |    6|2     
9 4  |3   8|     


Poissa a4

  • Konkari
  • Viestejä: 3811
Vs: Harrastellaan sudokua
« Vastaus #25 : ke 18.04.2018, 19:02:58 »
Tosiaan, sudokuissa on monesti lähtötilanteessa tai ratkaisuprosessissa kaunista symmetriaa sekä hauskoja yksityiskohtia.
Pettynein itseeni tai tehtävään olen yleensä silloin jos joudun etenemään sokeasti kokeilemalla mihin tie vie.
Brute forcea se kai on ja tavallaan kaunista sekin.
Onkohan niin että joskus tehtävää vaan ei voi ratkaista muulla tavoin?

Poissa Jaska Jokunen

  • Ikijäärä
  • Konkari
  • Viestejä: 4813
Vs: Harrastellaan sudokua
« Vastaus #26 : ke 18.04.2018, 20:05:22 »

Itselleni riittävät helpommat so. yksinkertaisemmilla päättelysäännöillä ratkaistavat tehtävät. Vaikeat voin ratkaista koneella muutamassa sekunnissa. Koneellinen metodi on rekursiivinen raa'alla voimalla läpikäynti: alkutilanteessa ja myöhemmissä tilanteissa  kokeillaan kaikki ei-kielletyt mahdollisuudet eli ne numerot joita ei ole samalla rivillä, sarakkeella tai 9 numeron lohkossa ja tätä pidetään uutena tilanteena jolle tehdään samoin. Kun tilanteen kaikki - kaikki saattaa olla myös nolla - vaihtoehdot on yritetty eikä ratkaisua löytynyt, palataan edeltävässä tilanteessa seuraavaan mahdolliseen numeroon. Kaiken aikaa on siis tallessa kaikki peruuttamattomat tilanteet lähtötilasta alkaen sekä mitä numeroa missäkin tilassa ollaan kokeilemassa. Logiikka tarvitsee vain kolme riviä ohjelmakoodia - ei kovin helposti oivallettava tosin.

Ilmeisesti on sudokutehtäviä, joiden kaikkia numeroiden asettamisia ei voida tehdä julkaistuilla päättelysäännöillä (Google: sudoku solving strategies). Osa päättelysäännöistä edellyttää varsin konstikkaiden tilanteiden havaitsemista. Kanonista päättelysääntökokoelmaa ei ole.

Netissä on sivuja, joilla sudokuja voidaan ratkaista. Aika usein on vihjetoimintona mahdollisuus näyttää täyttämättömistä ruuduista mitkä numerot kuhunkin tyhjään ruutuun ovat mahdollisia. Jos ruutuun on vain yksi mahdollinen numero, ruutuun laitetaan se. Jos numero esiintyy rivillä, sarakkeella tai lohkossa  vain yhdessä paikassa niin laitetaan numero siihen paikkaan. Eli tämä helpottaa näkemään nuo kaksi yksinkertaisinta sääntöä. Olen tainnut nähdä excel-taulukonkin, joka toteuttaa tuon. Voi sen kynällä ja paperillakin toteuttaa.

Joskus netin sudokusivuilla voi laittaa tilanteita muistiin ja palata tilanteeseen jos kokeillulla ei onnistuttu ja kokeilla toista tapaa. Paperilla ellei tee kopiota voi vaihtaa eriväriseen kynään ja kummata pois epäonnistuneen värin. Tai tehdä merkin niihin ruutuihin jotka jäädyttää hyväksytyiksi.

Seuraavaksi helpoimmat säännöt taitavat olla hoksata rajoittavia tilanteita esimerkiksi että tietty numero tulee lohkossa tietylle riville johonkin ruutuun jolloin se ei voi tulla rivillä muihin lohkoihin ja vaihtoehdot rivin muissa lohkoissa vähenevät. Näissäkin pelataan ruutuihin mahdollisten numeroiden luetteloilla.