Peli uusiksi

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 5.4.2006 18:42

Kiitoksia Kimmolle ja Reijolle kommenteista.

Kimmo kysyi, tekisinkö vastaavaa Kakurolle. Kakuro on hiukan ikävän
oloinen ohjelmoitavaksi ja niinpä päätin "keksiä" pelin, joka on
tavallaan jotain Sudokun ja Kakuron välimaastosta.
On erittäin todennäköistä, että peli tunnetaan ennestään,
sillä ainakin omasta mielestäni se vaikuttaa jännältä.

Tehtävänä on yksinkertaisesti täyttää m x n -taulukko luvuilla
1,2,...,m*n siten siten, että jokainen näistä luvuista esiintyy vain
kerran ja että rivi- ja sarakesummat täsmäävät reunoilla annettuihin
lukuihin.
Lisäksi taulukkoon on sijoitettu joitakin lukuja jo valmiiksi, jotta
ratkaiseminen ei olisi liian hankalaa eikä mahdollisia ratkaisuja olisi
liikaa.

Tässä esimerkkinä 3 x 4 -taulukko:

       *  6  *  *  30
       8  *  *  *  18
       *  *  3  *  30
      27 16 10 25

Siis esim. 1. rivin lukujen summa on 30 eli puuttuvien kolmen luvun
summa on 24.
Vastaavasti 2. sarakkeen summa on 16, joten puuttuvien kahden luvun
summa on 10.

Tämä lienee helppo tapaus ja siihen on ainakin kaksi ratkaisua.

Peli vaikeutuu taulukon suuretessa.
Esim. seuraava 5 x 5 -taulukko on jo varmaankin paljon hankalampi
täydentää:

         24  *  *  *  * 60
         19  *  * 11 13 88
          * 21  *  *  * 40
          *  * 14  6  * 70
          * 12  *  * 17 67
         64 84 56 36 85

Olen tehnyt pelille alustavan, yleisen ratkaisuohjelman, joka keksii
tälle 5 x 5 -taulukolle vain yhden ratkaisun, mutta niitä saattaa olla
lukuisia, sillä ohjelma löytää edellä olevalle 3 x 4 -taulukollekin
vain yhden ratkaisun.

Mm. Survon editoriaalisesta ja kosketuslaskennasta on hyötyä
tällaisten tehtävien käsittelyssä.

Kertokaa, oletteko tavanneet tätä peliä jossain muualla.
Jään joka tapauksessa odottelemaan, kuka ensimmäisenä selvittää
tuon 5 x 5 -taulukon.

-Seppo

P.S. Muodollisesti kysymys on lineaarisen, diofanttisen yhtälöryhmän
ratkaisemisesta. Esim. tuossa 5 x 5 -taulukossa on 16 tuntematonta,
mutta yhtälöitä vain 10. Ratkaisu täsmentyy sitä kautta, että tiedetään
sen olevan 1,2,3,4,5,7,8,9,10,15,16,18,20,22,23,25, mutta
missä järjestyksessä?  Koska fact(16)=20922789888000 siis noin 2*10^13,
on täysin toivotonta käydä mekaanisesti kaikkia vaihtoehtoja läpi.

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.