Re: Summapelin ratkaisuja

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 10.4.2006 18:14

Kiitoksia Joonakselle noista ytimekkäistä ratkaisuista, jotka ilmeisesti
ovat ainoat mahdolliset. Joonas oli myös aivan oikein havainnut, että
ensimmäiseenkin tehtävään on vain yksi ratkaisu.

Ehkä on vielä paikallaan lyhyesti selittää, miten peli ratkeaa vaihe
vaiheelta. Tyydyn selittämään vain 3 x 4 -pelin ensimmäisen askeleen

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

jossa toiselle pystyriville tulevat luvut 1 ja 9 näin:

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

Ilman tehtävässä asetettuja rajoituksia mahdollisia valintoja olisivat
olleet:
1+9
9+1   ei mahdollinen, koska 2. rivin summa 18 ylittyisi,
2+8   8 on jo taulukossa,
8+2   samoin,
7+3   3 on jo taulukossa,
3+7   samoin,
4+6   6 on jo taulukossa,
6+4   samoin,
Siis 1+9 on ainoa sallittu valinta.

Näin katsomalla kussakin vaiheessa eri vaihtoehdot ja sulkemalla
pois eri syistä mahdottomat pääsee eteenpäin.

                    * * *
5 x 5 -taulukon ratkaiseminen on, kuten osasin odottaa, huomattavasti
vaikeampaa.
Lähetin tätä summapeliä (tai voisiko sanoa suorastaan SURVO-peliä)
koskevan viestin myös Olli Mustoselle sähköpostitse. Hän oli silloin
konserttimatkalla Wienissä ja Budapestissa. Olli on viime aikoina
osoittanut kiinnostusta Sudoku- ja Kakuro-peleihin ja ratkaissut niitä
mielikseen.
Seuraavana päivänä häneltä tuli takaisin kännykkääni tekstiviesti,
jossa kertoi ratkaisseensa tuon 5 x 5 -pelin ja kommentoi:
"huhhuh, eipä ollut ihan helppo!".
Hänen palattuaan Suomeen viikonvaihteessa pyysin häntä kertomaan,
miten ratkaisu syntyi. Näin hän sen kuvasi:

..................................................
Olen tässä antanut vaakariveille numerot ylhäältä alas 1-5 ja
pystyriveille (sarakkeille) kirjaimet vasemmalta oikealle A-E.

     A  B  C  D  E
1   24  *  *  *  * 60
2   19  *  * 11 13 88
3    * 21  *  *  * 40
4    *  * 14  6  * 70
5    * 12  *  * 17 67
    64 84 56 36 85

Huomasin, että riville 2 tarvitaan kahden luvun summana 45.
Käytettävissä olevilla luvuilla tämä onnistuu vain kahdella tavalla:
20+25 ja 22+23. Suuria lukuja tarvitaan myös sarakkeessa E - ongelmana
on ruutu E3, jossa ei voi olla kovin suurta lukua, koska rivin 3 vielä
tyhjänä olevien neljän ruudun summa saa olla vain 19. Pienen tutkimisen
jälkeen tulin siihen tulokseen, että E3 voi olla vain 7, 8 tai 10.
Sarakkeen E jäljelle jäävän kahden ruudun summa voi siis olla 45, 47 tai
48 - nämä summat voivat muodostua vain luvuista 20, 22, 23 ja 25 eri
tavoin yhdisteltyinä. Koska kahta näistä neljästä luvusta tarvitsemme
rivillä 2, ja siellä summan täytyy olla 45, voimme päätellä, että myös
jäljelle jäävät kaksi suurta lukua ruuduissa E1 ja E4 saavat summakseen
45. Tämä puolestaan tarkoittaa sitä, että E3 täytyy olla 10.

     A  B  C  D  E
1   24  *  *  *  * 60
2   19  *  * 11 13 88
3    * 21  *  * 10 40
4    *  * 14  6  * 70
5    * 12  *  * 17 67
    64 84 56 36 85

Kirjoitin nyt listan kaikista mahdollisista ratkaisuista sarakkeelle B.
Näistä saatoin poistaa kaikki ne, joissa esiintyi luku 10 (tarvitaan
ruudussa E3) sekä sellaiset, joissa tarvittiin kahta lukua joukosta 20,
22, 23 ja 25 - nämä kaikki luvuthan tarvitsemme ruutuihin B2, C2, E1 ja
E4. Tein vastaavanlaisen listan myös rivin 4 tilanteesta.

Näiden toimenpiteiden jälkeen sarakkeelle B jäi kaksi mahdollista
ratkaisua: 15,16,20 tai 8,18,25. Tästä voimme jo päätellä, että näissä
ratkaisuissa esiintymättömien lukujen 22 ja 23 täytyy sisältyä
sarakkeeseen E, joista toisen täytyy siis esiintyä rivillä 4, ruudussa
E4. Ruudussa B4 esiintyvä luku täytyy vuorostaan olla alle 20. Ainoa
aiemmin listaamistani rivin 4 ratkaisuista, joka täyttää kaikki aiemmin
mainitut ehdot (mukana täytyy olla joko 22 tai 23, molempien muiden
lukujen täytyy olla alle 20, luku 10 ei voi esiintyä rivillä) on
9,18,23. Tästä seuraa, että E4 on 23 ja vastaavasti E1 on 22. Tästä
seuraa myös, että ruudussa B4 täytyy olla joko 9 tai 18. Sarakkeen B
ratkaisu on siis 8,18,25 - B2 on 25, B4 on 18 ja näin ollen B1 on 8. C2
on 20.

     A  B  C  D  E
1   24  8  *  * 22 60
2   19 25 20 11 13 88
3    * 21  *  * 10 40
4    * 18 14  6 23 70
5    * 12  *  * 17 67
    64 84 56 36 85

Vastaavasti A4 on 9 ja A3+A5 täytyy olla yhteensä 12 - jäljellä
olevilla luvuilla ainoa mahdollisuus on 5+7. 7 on liian suuri luku
ruutuun A3, joten A3 on 5 ja A5 on 7.

     A  B  C  D  E
1   24  8  *  * 22 60
2   19 25 20 11 13 88
3    5 21  *  * 10 40
4    9 18 14  6 23 70
5    7 12  *  * 17 67
    64 84 56 36 85

Näin ollen C5+D5 on 31, ainoana ratkaisuna jäljellä olevilla luvuilla
15+16.
Tässä vaiheessa ratkaistavaksi jää enää se, kummin päin luvut 15 ja 16
ovat rivillä 5 ja se, miten sijoittuvat pienet luvut 1, 2, 3 ja 4
ruutuihin C1, D1, C3 ja D3. Pienen tutkimisen jälkeen oikea ratkaisu

     A  B  C  D  E
1   24  8  4  2 22 60
2   19 25 20 11 13 88
3    5 21  3  1 10 40
4    9 18 14  6 23 70
5    7 12 15 16 17 67
    64 84 56 36 85

löytyy helposti.
......................................

                      * * *
SURVO-pelissä saattaa siis olla enemmänkin ideaa kuin etukäteen
otaksuin.

SURVO-pelejä on helppo laatia Survon matriisitulkin avulla.
Esim. tuo 5 x 5 -peli syntyi seuraavasti:
.........................................................

FILE CREATE SUMMAT,10,2
FIELDS:
1 N 2 X         numerot 1,2,3,...
2 N 8 Y         satunnaislukuja X-lukujen sekoitukseen
END

FILE INIT SUMMAT,25

VAR X=ORDER TO SUMMAT
VAR Y=rand(2006) TO SUMMAT

m=5 n=5

FILE SORT SUMMAT BY Y TO SUMMAT2 / X-arvot satunnaiseen järjestykseen
MAT SAVE DATA SUMMAT2 TO A  / VARS=X  Muunto 25 alkion vektoriksi
MAT A=VEC(A,m)              / Muunto 5x5-matriisiksi
MAT A2=ZER(m+1,n+1)         / Tähän kootaan alkiot ja summat.
MAT A2(1,1)=A
MAT S=SUM(A)
MAT A2(m+1,1)=S
MAT S=SUM(A')'
MAT A2(1,n+1)=S
MAT S=SUM(S)
MAT A2(m+1,n+1)=S
MAT A=A2
MAT S=ZER(m,n)
MAT A(1,1)=S       / A-matriisin alkioiden nollaaminen, summat jäävät
MAT NAME A AS A

Valittujen alkioiden kopiointi ratkaisumatriisista A2:
MAT A(1,1)=A2(1,1)
MAT A(2,1)=A2(2,1)      Osan alkioista valitsin suoraan ja
MAT A(2,4)=A2(2,4)      loput niin, että ratkaisuohjelma,
MAT A(2,5)=A2(2,5)      jota en vielä tässä yhteydessä
MAT A(3,2)=A2(3,2)      esittele, antaa vain yhden
MAT A(4,3)=A2(4,3)      mahdollisen ratkaisun.
MAT A(4,4)=A2(4,4)
MAT A(5,2)=A2(5,2)
MAT A(5,5)=A2(5,5)
MAT NAME A AS A

Tehtävän asettelu on valmis:
LOADM A,(2),CUR+1
A
           1   2   3   4   5 Sum
  1       24   0   0   0   0  60
  2       19   0   0  11  13  88
  3        0  21   0   0   0  40
  4        0   0  14   6   0  70
  5        0  12   0   0  17  67
Sum       64  84  56  36  85 325
.........................................................

Tulen antamaan lähipäivinä lisää näitä tehtäviä.
Lähettäkää minulle omia SURVO-pelejänne ja katsotaan,
pystynkö niitä ratkaisemaan (ohjelmallani).

-Seppo

Vastaukset:
[ei vastauksia]

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.