Arvojen poimiminen listoista ja yhtälön ratkaisuista GeoGebrassa

Kun GeoGebran listoista poimitaan yksittäisiä tai useampia jäseniä, niin kannattaa käyttää Alkio-komentoa. Tutkitaan joitakin tapoja, miten Alkio-komentoa ja muutamaa muuta komentoa voi käyttää hyväksi listojen käsittelyssä. Listan yhden alkion poimiminen tulee tarpeelliseksi, kun GeoGebran tuottamista ratkaisuista halutaan valita vain yksi, vaikkapa lopullista arvojen sijoittamista varten tai kun haluan kopioida vastauksen LaTeX-koodin kaavaeditoriin. Artikkelin lopussa on linkki aiempiin kirjoittamiini lista-juttuihin.

määritelmä

Alkio(Element)-komennon syntaksi on Alkio( <Lista>, <Alkion sijainti> ) tai Alkio( <Matriisi>, <Rivi>,<Sarake> ). Tätä kirjoitettaessa huomasin, että GeoGebran tarjoamassa komennossa <Rivi> ja <Sarake> ovat väärin päin suomenkielisessä käännöksessä. Korjasin tämän käännökseen, se tullee näkyviin tulevissa versioissa.

N-­ulotteisessa avaruudessa syntaksi on Alkio( <N-Lista>, <Indeksi1>, <Indeksi2>,…,<IndeksiN> ).

GeoGebra 5:ttä lukuun ottamatta GeoGebrassa toimii Alkio-komennon lyhennetty versio eli komento

Alkio(lista, 3)

on sama kuin

lista(3)

Tämä merkitsemistapa on todella kätevä ja se tekee listojen käsittelystä tutumman näköistä vaikkapa Pythonia harrastaneille.

Kuva, joka sisältää kohteen näyttökuva

Kuvaus luotu automaattisesti
kuvankaappaus GG6:sta

yksinkertainen esimerkki

Teen esimerkit GeoGebra 5:n CAS:issa. Samat komennot toimivat myös syöttökentässä ja muissa GeoGebra-versioissa. Käytetään esimerkkinä seuraavaa listaa.

lista:={ℯ, 42/13, π, 666}
->lista:={ℯ, 42 / 13, π, 666}

Kolmas alkio π saadaan komennolla

lista:={ℯ, 42 / 13, π, 666}
-> π

Ensimmäinen(First) ja Viimeinen(Last) -komennot tuottavat tulokseksi listoja, niinpä niitä ei juurikaan tule käytettyä.

Ensimmäinen(lista)
-> {ℯ}
Viimeinen(lista)
-> {666}

Oikeapuoli ja Ratkaise -komennot

Tuotetaan seuraavaksi kultaisen leikkauksen luku toisen asteen yhtälön ratkaisuna käyttämällä yhtälön kirjoittamisen jälkeen Ratkaise yhtälö -työkalua tai komennolla

Ratkaise(x^2 -x-1=0)
-> {x = ((-sqrt(5)) + 1) / 2, x = (sqrt(5) + 1) / 2}

Ratkaise(Solve)-komento tuottaa listan, jossa on kaksi alkioita. Ratkaisut ovat GeoGebran mielessä yhtälöitä. Jälkimmäinen yhtälö saadaan komennolla

Alkio({x = (-sqrt(5) + 1) / 2, x = (sqrt(5) + 1) / 2}, 2) 
-> x = (sqrt(5) + 1) / 2

Yhtälön oikea puoli OikeaPuoli(RightSide)

OikeaPuoli( x = (sqrt(5) + 1) / 2 )
-> (sqrt(5) + 1) / 2

Toisaalta, jos olisi halunnut alkuperäisen yhtälön molemmat ratkaisut kerralla, niin tämäkin toimii

OikeaPuoli(Ratkaise(x^2 -x-1=0))
-> {((-sqrt(5)) + 1) / 2, (sqrt(5) + 1) / 2}

Jos haluaa tarkistaa vastauksen sijoittamalla alkuperäiseen lausekkeeseen, niin

f(x):=x^2 -x-1
-> f(x):=x^(2) - x - 1
f({(-sqrt(5) + 1) / 2, (sqrt(5) + 1) / 2})
-> {0, 0}

OikeaPuoli-komennolla voi myös määrittää halutun yhtälön järjestysluvun yhtälölistassa tyyliin

OikeaPuoli({x=1, y=π,z=-π},2)
-> π

Ratkaisut-komento & bugi

Mikäli haluaa saada ratkaisut pelkkinä arvoina, eikä yhtälöinä, niin kannattaa käyttää Ratkaisut(Solutions)-komentoa. Merkitsen seuraavassa ratkaisulistaa nimellä rat.

rat:=Ratkaisut(f(x)=0)
-> rat:={((-sqrt(5)) + 1) / 2, (sqrt(5) + 1) / 2}

Lukija voi pohdiskella kynällä ja paperilla miksi

f(1/rat^2)+f(rat^2) 
-> {2, 2}
f(1/rat)-f(1/rat^2)
-> {0, 0}

tai vaikkapa antaa sievennykset lapsille kotitehtäväksi.

Tehdään yhtälöpari ja ratkaistaan se Ratkaise ja Ratkaisut -komennoilla. Annan yhtälöille nimet, jotta CAS-rivit pysyvät luettavina.

eq1:= (y=f(x))
-> eq1: y = x^(2) - x - 1
eq2:= (y=2x-1)
-> eq2: y = (2 * x) – 1
Ratkaise({eq1, eq2})
-> {{x = 0, y = -1}, {x = 3, y = 5}}

Kun käyttää Ratkaisut-komentoa tuleekin pieni yllätys.

Jos komentoon ei lisää muuttujalistaa niin ratkaisumatriisissa vasen sarake onkin y ja oikea sarake x. Tämä taitaa olla bugi.

Matriisissa alkion poimimisen syntaksi on Alkio(<Matriisi>, <Rivi>, <Sarake>), niinpä edellisen ratkaisun ensimmäisen ratkaisun toinen arvo eli y:n arvo saadaan

Alkio( {{0, -1}, {3, 5}}, 1,2)
-> -1

Moniulotteisissa listojen listoissa poimiminen tapahtuu samalla logiikalla. Koska en ole niitä itse koskaan tarvinnut, jätän niiden tutkimisen lukijalle.

Alkioiden sijoittamisesta, järjestelystä yms.  komennoista olen aiemmin kirjoittanut Listat GeoGebrassa -artikkelissa.

Linkit

Aiempia artikkeleita. Kolme ensimmäistä on julkaistu myös Dimensiossa.

Listat GeoGebrassa

Sovituskomennot GeoGebrassa

Jono GeoGebrassa

Kolme noppaa ja Zip-komento

Ohjesivuja GeoGebra-Wikissä

Element

First

Last

RightSide

Ratkaise

Ratkaisut

Advertisement

Kolme noppaa ja Zip-komento

Millä todennäköisyydellä kolmea noppaa heitettäessä saadaan summaksi 10? Havainnollistetaan tilannetta kolmiulotteisesti käyttämällä GeoGebran listoihin liittyviä komentoja. Teen sovellukseni GeoGebra 5:llä ja komennot kirjoitan Syöttökenttään.

Luodaan ensin kaikki tulosvaihtoehdot pisteiksi kolmiulotteiseen koordinaatistoon käyttämällä kolmea sisäkkäistä Jono-komentoa. Jos tämän kirjoittaa käsin, niin kannattaa ensin kirjoittaa

Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> )

ja sen jälkeen <Lauseke> korvata uudella Jono-komennolla tyyliin

Jono( Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> ),<Muuttuja>, <Alkuarvo>, <Loppuarvo> )

ja sen jälkeen vielä kerran samalla tavalla

Jono( Jono( Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> ), <Muuttuja>, <Alkuarvo>, <Loppuarvo> ), <Muuttuja>, <Alkuarvo>, <Loppuarvo> )

Lopuksi täytetään muut muuttujien kohdat ja annetaan lista nimeksi pisteet. Lopullinen komento on

pisteet = Jono(Jono(Jono((aa, bb, cc), aa, 1, 6), bb, 1, 6), cc, 1, 6)

Komento tuottaa kuusi listaa, jossa on kaikki 6·6·6 = 216 pistettä.

pisteet = {{{(1, 1, 1), (2, 1, 1), (3, 1, 1), (4, 1, 1), (5, 1, 1), (6, 1, 1)}, {(1, 2, 1), (2, 2, 1), (3, 2, 1), (4, 2, 1), (5, 2, 1), (6, 2, 1)}, {(1, 3, 1), (2, 3, 1), (3, 3, 1), (4, 3, 1), (5, 3, 1), (6, 3, 1)}, {(1, 4, 1), (2, 4, 1), (3, 4, 1), (4, 4, 1), (5, 4, 1), (6, 4, 1)}, {(1, 5, 1), (2, 5, 1), (3, 5, 1), (4, 5, 1), (5, 5, 1), (6, 5, 1)}, {(1, 6, 1), (2, 6, 1), (3, 6, 1), (4, 6, 1), (5, 6, 1), (6, 6, 1)}}, {{(1, 1, 2), (2, 1, 2), (3, 1, 2), (4, 1, 2), (5, 1, 2), (6, 1, 2)}, {(1, 2, 2), (2, 2, 2), (3, 2, 2), (4, 2, 2), (5, 2, 2), (6, 2, 2)}, {(1, 3, 2), (2, 3, 2), (3, 3, 2), (4, 3, 2), (5, 3, 2), (6, 3, 2)}, {(1, 4, 2), (2, 4, 2), (3, 4, 2), (4, 4, 2), (5, 4, 2), (6, 4, 2)}, {(1, 5, 2), (2, 5, 2), (3, 5, 2), (4, 5, 2), (5, 5, 2), (6, 5, 2)}, {(1, 6, 2), (2, 6, 2), (3, 6, 2), (4, 6, 2), (5, 6, 2), (6, 6, 2)}}, {{(1, 1, 3), (2, 1, 3), (3, 1, 3), (4, 1, 3), (5, 1, 3), (6, 1, 3)}, {(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3), (5, 2, 3), (6, 2, 3)}, {(1, 3, 3), (2, 3, 3), (3, 3, 3), (4, 3, 3), (5, 3, 3), (6, 3, 3)}, {(1, 4, 3), (2, 4, 3), (3, 4, 3), (4, 4, 3), (5, 4, 3), (6, 4, 3)}, {(1, 5, 3), (2, 5, 3), (3, 5, 3), (4, 5, 3), (5, 5, 3), (6, 5, 3)}, {(1, 6, 3), (2, 6, 3), (3, 6, 3), (4, 6, 3), (5, 6, 3), (6, 6, 3)}}, {{(1, 1, 4), (2, 1, 4), (3, 1, 4), (4, 1, 4), (5, 1, 4), (6, 1, 4)}, {(1, 2, 4), (2, 2, 4), (3, 2, 4), (4, 2, 4), (5, 2, 4), (6, 2, 4)}, {(1, 3, 4), (2, 3, 4), (3, 3, 4), (4, 3, 4), (5, 3, 4), (6, 3, 4)}, {(1, 4, 4), (2, 4, 4), (3, 4, 4), (4, 4, 4), (5, 4, 4), (6, 4, 4)}, {(1, 5, 4), (2, 5, 4), (3, 5, 4), (4, 5, 4), (5, 5, 4), (6, 5, 4)}, {(1, 6, 4), (2, 6, 4), (3, 6, 4), (4, 6, 4), (5, 6, 4), (6, 6, 4)}}, {{(1, 1, 5), (2, 1, 5), (3, 1, 5), (4, 1, 5), (5, 1, 5), (6, 1, 5)}, {(1, 2, 5), (2, 2, 5), (3, 2, 5), (4, 2, 5), (5, 2, 5), (6, 2, 5)}, {(1, 3, 5), (2, 3, 5), (3, 3, 5), (4, 3, 5), (5, 3, 5), (6, 3, 5)}, {(1, 4, 5), (2, 4, 5), (3, 4, 5), (4, 4, 5), (5, 4, 5), (6, 4, 5)}, {(1, 5, 5), (2, 5, 5), (3, 5, 5), (4, 5, 5), (5, 5, 5), (6, 5, 5)}, {(1, 6, 5), (2, 6, 5), (3, 6, 5), (4, 6, 5), (5, 6, 5), (6, 6, 5)}}, {{(1, 1, 6), (2, 1, 6), (3, 1, 6), (4, 1, 6), (5, 1, 6), (6, 1, 6)}, {(1, 2, 6), (2, 2, 6), (3, 2, 6), (4, 2, 6), (5, 2, 6), (6, 2, 6)}, {(1, 3, 6), (2, 3, 6), (3, 3, 6), (4, 3, 6), (5, 3, 6), (6, 3, 6)}, {(1, 4, 6), (2, 4, 6), (3, 4, 6), (4, 4, 6), (5, 4, 6), (6, 4, 6)}, {(1, 5, 6), (2, 5, 6), (3, 5, 6), (4, 5, 6), (5, 5, 6), (6, 5, 6)}, {(1, 6, 6), (2, 6, 6), (3, 6, 6), (4, 6, 6), (5, 6, 6), (6, 6, 6)}}} 

Paremman havainnollistuksen saa, kun katsoo listaa CAS-ikkunassa.

3D-piirtoalueella lista pisteet näyttää tältä.

Listan pisteet pituus on kuusi. Luodaan yksi lista, jossa pisteet ovat peräkkäin listana käyttämällä Tiivistä-komentoa. Se ikään kuin poistaa ylimääräiset sulkeet eli tässä tapauksessa turhat listat.

kaikki = Tiivistä(pisteet)
kaikki = {(1, 1, 1), (2, 1, 1), (3, 1, 1), (4, 1, 1), (5, 1, 1), (6, 1, 1), (1, 2, 1), (2, 2, 1), (3, 2, 1), (4, 2, 1), (5, 2, 1), (6, 2, 1), (1, 3, 1), (2, 3, 1), (3, 3, 1), (4, 3, 1), (5, 3, 1), (6, 3, 1), (1, 4, 1), (2, 4, 1), (3, 4, 1), (4, 4, 1), (5, 4, 1), (6, 4, 1), (1, 5, 1), (2, 5, 1), (3, 5, 1), (4, 5, 1), (5, 5, 1), (6, 5, 1), (1, 6, 1), (2, 6, 1), (3, 6, 1), (4, 6, 1), (5, 6, 1), (6, 6, 1), (1, 1, 2), (2, 1, 2), (3, 1, 2), (4, 1, 2), (5, 1, 2), (6, 1, 2), (1, 2, 2), (2, 2, 2), (3, 2, 2), (4, 2, 2), (5, 2, 2), (6, 2, 2), (1, 3, 2), (2, 3, 2), (3, 3, 2), (4, 3, 2), (5, 3, 2), (6, 3, 2), (1, 4, 2), (2, 4, 2), (3, 4, 2), (4, 4, 2), (5, 4, 2), (6, 4, 2), (1, 5, 2), (2, 5, 2), (3, 5, 2), (4, 5, 2), (5, 5, 2), (6, 5, 2), (1, 6, 2), (2, 6, 2), (3, 6, 2), (4, 6, 2), (5, 6, 2), (6, 6, 2), (1, 1, 3), (2, 1, 3), (3, 1, 3), (4, 1, 3), (5, 1, 3), (6, 1, 3), (1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3), (5, 2, 3), (6, 2, 3), (1, 3, 3), (2, 3, 3), (3, 3, 3), (4, 3, 3), (5, 3, 3), (6, 3, 3), (1, 4, 3), (2, 4, 3), (3, 4, 3), (4, 4, 3), (5, 4, 3), (6, 4, 3), (1, 5, 3), (2, 5, 3), (3, 5, 3), (4, 5, 3), (5, 5, 3), (6, 5, 3), (1, 6, 3), (2, 6, 3), (3, 6, 3), (4, 6, 3), (5, 6, 3), (6, 6, 3), (1, 1, 4), (2, 1, 4), (3, 1, 4), (4, 1, 4), (5, 1, 4), (6, 1, 4), (1, 2, 4), (2, 2, 4), (3, 2, 4), (4, 2, 4), (5, 2, 4), (6, 2, 4), (1, 3, 4), (2, 3, 4), (3, 3, 4), (4, 3, 4), (5, 3, 4), (6, 3, 4), (1, 4, 4), (2, 4, 4), (3, 4, 4), (4, 4, 4), (5, 4, 4), (6, 4, 4), (1, 5, 4), (2, 5, 4), (3, 5, 4), (4, 5, 4), (5, 5, 4), (6, 5, 4), (1, 6, 4), (2, 6, 4), (3, 6, 4), (4, 6, 4), (5, 6, 4), (6, 6, 4), (1, 1, 5), (2, 1, 5), (3, 1, 5), (4, 1, 5), (5, 1, 5), (6, 1, 5), (1, 2, 5), (2, 2, 5), (3, 2, 5), (4, 2, 5), (5, 2, 5), (6, 2, 5), (1, 3, 5), (2, 3, 5), (3, 3, 5), (4, 3, 5), (5, 3, 5), (6, 3, 5), (1, 4, 5), (2, 4, 5), (3, 4, 5), (4, 4, 5), (5, 4, 5), (6, 4, 5), (1, 5, 5), (2, 5, 5), (3, 5, 5), (4, 5, 5), (5, 5, 5), (6, 5, 5), (1, 6, 5), (2, 6, 5), (3, 6, 5), (4, 6, 5), (5, 6, 5), (6, 6, 5), (1, 1, 6), (2, 1, 6), (3, 1, 6), (4, 1, 6), (5, 1, 6), (6, 1, 6), (1, 2, 6), (2, 2, 6), (3, 2, 6), (4, 2, 6), (5, 2, 6), (6, 2, 6), (1, 3, 6), (2, 3, 6), (3, 3, 6), (4, 3, 6), (5, 3, 6), (6, 3, 6), (1, 4, 6), (2, 4, 6), (3, 4, 6), (4, 4, 6), (5, 4, 6), (6, 4, 6), (1, 5, 6), (2, 5, 6), (3, 5, 6), (4, 5, 6), (5, 5, 6), (6, 5, 6), (1, 6, 6), (2, 6, 6), (3, 6, 6), (4, 6, 6), (5, 6, 6), (6, 6, 6)}

Listan kaikki pituus on 216.

Jotta saamme ongelmastamme hieman yleisemmän, luodaan liuku n. siten, että se saa kokonaislukuarvoja välillä [1, …, 20]. Tuossa on pari ylimääräistä lukua, mutta ne toiminevat tarkastuksena, että menetemä on oikea. Kirjoitetaan syöttökenttään

n = 10

ja klikataan Algebra-ikkunassa sen vasemmalla puolella olevaan pallukkaan. Klikkaamalla liukua hiiren oikealla painikkeella saadaan ominaisuudet ja Liukusäädin ikkunassa:

Seuraavaksi selvitetään, millä kaikki-listan pistellä summa on yhtä suuri kuin n.

Tässäkin voisi käyttää sisäkkäisiä jono-komentoja, mutta ehkä tyylikkäämpää on käyttää Zip-komentoa. Komennon yleinen syntaksi on seuraava

Zip( <Lauseke>, <Muuttuja1>, <Lista1>, <Muuttuja2>, <Lista2>, ... )

Selvennetään Zip-komentoa esimerkillä. Jos lista A = {1, 2, 3} ja B = {4, 5, 6, 7}, niin komento

testi = Zip((a, b), a, A, b, B)

tuottaa listan 

testi = {(1, 4), (2, 5), (3, 6)} 

Komennossa a on listan A alkioihin liittyvä sisäinen muuttuja ja b liittyy B:n alkioihin. Tässä tapauksessa (a, b) tuottaa pisteitä siten, että ensin otetaan ensimmäinen alkio A:sta ja ensimmäinen B:stä eli (1, 4), sitten toiset alkiot eli (2, 5) ja sitten kolmannet (3, 6). Nyt kaikki A:n alkiot on käyty läpi ja ei tuoteta lisää pisteitä. Yleisesti tällä komennolla voidaan suorittaa komentoja useille listoille. Syntyvän listan pituuden määrittää lyhin lista. Itse käytän Zipiä useimmiten, kun haluan käydä yhden listan kaikki alkiot kerralla. 

Luodaan lista suotuisille tapauksille. Sisäinen muuttuja a käy läpi kaikki-listan alkiot. Jos-ehdon sisällä x(a) + y(a) + z(a) laskee a-pisteen koordinaattien summan.

suo = Zip(Jos(x(a) + y(a) + z(a) == n, a), a, kaikki)

tuottaa listan

suo = {(?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 3, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 4, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 5, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 6, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 2, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 3, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 4, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 5, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 6, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 1, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 2, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 3, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 4, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 5, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 6, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 1, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 2, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 3, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 4, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 5, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 1, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 2, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 3, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 4, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 1, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 2, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 3, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?)} 

Noista määrittelemättömistä pisteistä (?, ?, ?) pääsee eroon komenolla

suotuisat = PoistaMäärittelemätön(suo)
suotuisat = {(6, 3, 1), (5, 4, 1), (4, 5, 1), (3, 6, 1), (6, 2, 2), (5, 3, 2), (4, 4, 2), (3, 5, 2), (2, 6, 2), (6, 1, 3), (5, 2, 3), (4, 3, 3), (3, 4, 3), (2, 5, 3), (1, 6, 3), (5, 1, 4), (4, 2, 4), (3, 3, 4), (2, 4, 4), (1, 5, 4), (4, 1, 5), (3, 2, 5), (2, 3, 5), (1, 4, 5), (3, 1, 6), (2, 2, 6), (1, 3, 6)} 

Listan suotuisat pituus on 27, niinpä summan 10 todennäköisyys on 27/216 = 1/8.

Valmis appletti löytyy sivulta https://www.geogebra.org/m/rdhryznv