Noppien summa GeoGebralla – n noppaa

Edellisissä artikkeleissani olen käsitellyt 1,…, 3 nopan heittoa simuloiden ja laskemalla todennäköisyysjakaumat. Jotta saisin tämän trilogiani jotenkin päätettyä, niin tarkastelen tässä yleistä n:n nopan summan todennäköisyysjakaumaa tilastollisesti ja laskemalla tarkat arvot käyttämällä polynomin kertoimia. 

Loin appletin GeoGebra 5:llä. Pääosin komennot kirjoitetaan syöttökenttään, todennäköisyysjakauman yhteydessä tarvitaan myös CAS:ia.

simulointi

Olkoon m noppien lukumäärä ja n heittojen määrä. Luodaan liu’t.

m = 10
n = 10000

Liu’un m asetuksissa Min: 1, Max: 10 ja Animaatioaskel: 1, liu’ulla n Min: 0, Max: 10000 ja Animaatioaskel: 100. 

Noppien summat-lista saadaan käyttämällä Jono-komentoja

summat = Jono(Summa(Jono(Satunnaisluku(1, 6), mm, 1, m)), nn, 1, n)

Tässä sisin Jono-komento Jono(Satunnaisluku(1, 6), mm, 1, m) tuottaa m:n pituisen jonon satunnaislukuja 1, 2, …6. Summa laskee edellisen summan ja uloin Jono tuottaa summia n kappaletta. Sisäisiä muuttujia mm ja nn ei käytetä, tuossa kohdin pitää vain olla jokin muuttuja, jotta Jonon syntaksi on oikein. Teoriassa sisemmän Jono-komennon ja Summan olisi pitänyt pystyä korvaamaan yhdellä Summa-komennolla. En saanut sitä toimimaan. Joko GeoGebra tai minun aivoni toimivat tässä kohtaa epäloogisesti.

Tilaston jakauman pylväskaavio tulee yhdellä komennolla

Pylväskaavio(summat, 1, 1 / n)

Taas minua ihmetyttää, miten tämä onnistuu näin vähillä riveillä.

todennäköisyysjakauma

Lasketaan m:n nopan summan todennäköisyysjakauma. Yritän seuraavalla esimerkillä perustella miksi sopivasti valitun polynomin kertoimet kertovat kuinka monella eri tavalla jokin summa voidaan saada nopan heitossa.

Kuvitellaan, että meillä on kaksi kummallista noppaa, jossa toisessa on luvut 1, 2 ja 3 ja toisessa vain luvut 1 ja 2. Eiväthän nuo ihan tavallisia noppia ole, vaan jotain ihan toisesta maailmasta, mieti itse miten toteuttaisit tuollaiset nopat. Millaisia tuloksia ja miten paljon niitä voi tulla.

Summataulukko kertoo meille, että esimerkiksi kolmosen voi saada kahdella eri tavalla (2, 1) ja (1, 2).

Onko jotain algoritmia tuon frekvenssitaulukon tuottamiseksi. Mitäpä jos luodaan polynomi, jossa muuttuja korotetaan nopan arvon potensseihin. Kerrotaan polynomit keskenään. Mitä polynomin kertoimet kertovat.

Katso miten MathPapa poistaa sulkeet ja pohdi miksi potenssit kertovat summan ja kertoimet niiden lukumäärän.

Edellisessä sulkeiden poistamisessa toiseksi viimeiellä rivillä on itse asiassa sama informaatio kuin 2*3 summataulukossa.

Jos pohditaan vaikkapa kuinka monella eri tavalla näiden noppien heitossa summaksi tulee kolme, niin se vastaa polynomin kertolaskussa tilannetta jossa x kerrotaan x^2 tai x^2 kerrotaan x:llä. Eli sam tilanne kuin summataulukon (1, 2) ja (2, 1). Sievennetyssä polynomissa kolmannen asteen kertoimeksi tulee 2. Se kertoo meille kuinka monella tavalla summaksi tulee kaksi.

Tutkitaan kahden perinteisen nopan heittoa, kolmen nopan heittoa jne. Yhtä noppaa vastaa polynomi noppa = a + a^2  + a^3 + a^4 + a^5 + a^6. Silloin kahden nopan summat saadaan noppa-polynomin potenssien kertoimina.

Tässä polynomin kertoimet kertovat esimerkiksi, että kahden nopan heiton 6*6 summataulukossa ysejä on neljä kappaletta. Alla oleva kuva on artikkelin ”Nopat GeoGebralla – kaksi noppaa” esimerkkitiedostosta.

Tuotetaan yleinen jakauma käyttämällä polynomin kertoimia. Määritellään ensin CAS:iin noppa-polynomi. Tämä vastaa yhtä noppaa.

noppa:=a+a^2+a^3+a^4+a^5+a^6
-> noppa:=a^6 + a^5 + a^4 + a^3 + a^2 + a

Tässä vaiheessa kannattaa laittaa m ja n-liukujen arvot sopivan pieniksi.

Poistetaan sulkeet noppa^m polynomista CASissa, tässä m:n arvo on kolme.

pol:=PoistaSulkeet(noppa^m)
-> pol:=a^18 + 3  a^17 + 6  a^16 + 10  a^15 + 15  a^14 + 21  a^13 + 25  a^12 + 27  a^11 + 27  a^10 + 25  a^9 + 21  a^8 + 15  a^7 + 10  a^6 + 6  a^5 + 3  a^4 + a^3

Polynomin kertoimet saadaan Kertoimet-komennolla. Ensimmäinen on tässä 18-asteen termin kerroin ja viimeinen nolla on nollannen asteen termin kerroin.

ker:=Kertoimet(pol)
-> ker:={1, 3, 6, 10, 15, 21, 25, 27, 27, 25, 21, 15, 10, 6, 3, 1, 0, 0, 0}

Käännetään ker-lista toisinpäin Käännä-komennolla Syöttökentässä.

kert = Käännä(ker)

Luodaan histogrammille reunat ja piirretään todennäköisyysjakauma.

reunat = Jono(-0.5, 6m + 0.5, 1)
hist = Histogrammi(reunat, kert / 6^m)

Esimerkkitiedosto löytyy GeoGebra-Materiaaleista https://www.geogebra.org/m/eqsebrjq

Nyt taidan lopettaa noppien tutkiskelun ainakin joksikin aikaa. Nytpä tästä noparartikklelisarjasta tulikin tetralogia. Vai onko tämä kvadrilogia?

Liitteet

Hyvä esitys miksi edellä esitetty polynomien kerroinmenetelmä toimii ”world of math and physics” -blogissa. https://www.lucamoroni.it/the-dice-roll-sum-problem/

Multinomiaali kertoimista hieman haastavampi blogiartikkeli ”A Blog on Probability and Statistics”-blogissa. https://probabilityandstats.wordpress.com/tag/multinomial-coefficients/


Aiemmat aiheeseen liittyvät blogiartikkelini.

Kolme noppaa https://mikonfysiikka.wordpress.com/2020/04/26/nopat-geogebralla-kolme-noppaa/

kaksi noppaa, https://mikonfysiikka.wordpress.com/2020/04/24/nopat-geogebralla-kaksi-noppaa/

yksi noppa, https://mikonfysiikka.wordpress.com/2020/04/23/nopat-geogebralla-yksi-noppa/

kolme noppaa ja zip-komento, https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Youtube-video viiden nopan heitosta https://www.youtube.com/watch?v=oUEbI5_vy-4

Nopat GeoGebralla – kolme noppaa

Edellisissä artikkeleissani kerroin miten GeoGebralla saa simuloitua yhden ja kahden nopan heittoa. Kolmen nopan simulointi syntyy samalla tavalla muutamalla komennolla. GeoGebra-komentojen toiminnan olen esittänyt aiemmissa artikkeleissani, niinpä jätän sen vähemmälle tässä artikkelissa.

Kahden nopan heitossa pääteltiin tuloksen todennäköisyys käyttämällä tasoon piirrettyä pisteistöä, kolmen nopan heitossa hypätään 3D-kuutioon.

simulointi

Simuloidaan kolmen nopan heittoa ja tuotetaan jakauma kuvaajaksi.

Kolmen nopan heittojen lukumäärä on n, summat-listaan lasketaan kolmen nopan summia n kappaletta. Pylväsdiagrammi laskee jakauman ja tuottaa jakauman kuvaajan.

n = 20000
summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
pylväs = Pylväskaavio(summat, 1, 1 / n)

Miten tämä voi olla näin yksinkertaista?

todennäköisyysjakauma

Lasketaan kunkin summan todennäköisyyden arvo käyttämällä 3D-mallia. Tätä aiheesta olen kirjoittanut jo aiemmin. Tuossa tarinassa selitän tarkemmin komentojen syntaksia. Mikäli sisäkkäisten Jono-komentojen tai Zip-komennon syntaksi on hakusessa, niin lue tuo. Katso https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Listaan kaikki lasketaan kolmen nopan eri vaihtoehdot, tyyliin x-koordinaatti on ensimmäisen nopan tulos, y-koordinaatti toisen ja z-koordinaatti kolmannen. Listassa kaikkisummat on summien arvot ja tnjakauma on pylväskaavio jakaumasta. Liuku m kertoo suotuisan tapauksen arvon ja suotuisat-listassa on m:ää vastaavat pisteet. Ne väritetään punaiseksi.

kaikki = Tiivistä(Jono(Jono(Jono((aa, bb, cc), aa, 1, 6), bb, 1, 6), cc, 1, 6))

kaikkisummat = Zip(x(a) + y(a) + z(a), a, kaikki)

tnjakauma = Pylväskaavio(kaikkisummat, 1, 1 / 216)

m = 10

suotuisat = PoistaMäärittelemätön(Zip(Jos(x(a) + y(a) + z(a) == m, a), a, kaikki))

Kuva, joka sisältää kohteen kartta

Kuvaus luotu automaattisesti

Nytpä pystymme tekemään saman päättelyn kuin Galilei noin 1620. Tuloksen ”10” todennäköisyys on suurempi kuin tuloksen ”9”. 

Esimerkkitiedosto GeoGebra-materiaaleissa. https://www.geogebra.org/m/ew4weg6u

lähteet

Anders Hald. A History of Probability and Statistics and Their Applications before 1750, Wiley, Luku 4.4 Galileo and the distribution of the sum of points of three dice, c 1620.

Saul Stahl, Paul E. Johnson. Understanding Modern Mathematics. Jones Bartlett. Luku 1.2 Galileo Galile ( A historical interlude)

Galilein artikkeli englanniksi. Käsittääkseni kyseessä on kirje pomolle, Toscanan suurherttualle Cosimo de’ Medicille.
https://www.leidenuniv.nl/fsw/verduin/stathist/galileo.htm


kaksi noppaa, https://mikonfysiikka.wordpress.com/2020/04/24/nopat-geogebralla-kaksi-noppaa/

yksi noppa, https://mikonfysiikka.wordpress.com/2020/04/23/nopat-geogebralla-yksi-noppa/

kolme noppaa ja zip-komento, https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Nopat GeoGebralla – kaksi noppaa

Edellisessä tarinassani (Nopat GeoGebralla – yksi noppa) esitin, miten simuloida GeoGebralla yhden nopan heittoa. Tehdään sama juttu nyt kahdelle nopalle. Tutkitaan noppien summan todennäköisyyksiä.

simulointi

Simuloidaan ensin nopan heittoa ja lasketaan summien suhteelliset osuudet ja piirretään jakauma. Laitan komennot tuohon avuksi, mieti itse mite kukin komento tekee ja miksi.

Luodaan ensin liuku n. Kuvassa n-liu’n asetukset.

n = 50000

Lasketaan summat-listaan kahden nopan summia, reunat listaan luodaan histogrammin pylväiden reunat, arvot-listaan lasketaan summien frekvenssit ja histo piirtää kuvaajan suhteellisista osuuksista.

summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
reunat = Jono(1.5, 12.5, 1)
arvot = Frekvenssi(summat)
histo = Histogrammi(reunat, arvot / n)

Pylväsdiagrammi-komennon avulla olisi säästänyt pari riviä.

summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
pylväs = Pylväskaavio(summat, 1, 1 / n)

teoreettinen arvo summataulukon avulla

Pohditaan sitten teoreettisia arvoja. Mallinnetaan noppien heitto 2d-taulukoksi, jossa vaaka-akselilla on 1. nopan tulos ja pystyakselilla 2. nopan tulos. Meille tulee 6*6 ruudukko, jossa jokaisessa ruudussa on lukujen summa. Tehdään se GeoGebran Piirtoalue2:lle.

Avaa Näytä-valikosta Piirtoalue2.

Nyt tarvitaan sisäkkäisiä silmukoita tuottamaan pisteitä koordinaatistoon. Lue https://mikonfysiikka.wordpress.com/2018/10/26/jono-geogebrassa/ tarinasta luku Sisäkkäiset silmukat. Pisteet-muuttujan määritelmässä Tiivistä poistaa turhat sisäkkäiset listat eli käytännössä poistaa liiat {,}-merkit. Kaksi sisäkkäistä Jono-komentoa tuottaa (xx, yy) pisteet koordinaatistoon.

pisteet = Tiivistä(Jono(Jono((xx, yy), xx, 1, 6), yy, 1, 6))

Mikäli pisteet syntyivät Piirtoalue 1:lle, niin mene asetuksiin ja ruksaa vain Piirtoalue2 Lisäasetukset-välilehdellä.

Lasketaan pisteet-listan pituus

a = Pituus(pisteet)

Luodaan liuku summia varten 

s = 5

Luodaan lista suot, jonne valitaan Zip-komennon avulla ne pisteet, joiden summa on s. Tässä tapauksessa Zip testaa jokaisen listan pisteet alkion, mikäli summa on s kirjoitetaan pisteen arvo listaan suot, muutoin sinne kirjoitetaan määrittelemätön piste eli (?, ?).

suot = Zip(Jos(x(aa) + y(aa) == s, aa), aa, pisteet)

Poistetaan ylimääräiset määrittelemättömät pisteet.

suotuisat = PoistaMäärittelemätön(suot)

Lasketaan summat jokaisessa pisteessä ja tuotetaan teoreettinen jakauma Piirtoalue1:lle

tnsummat = Jono(x(Alkio(pisteet, aa)) + y(Alkio(pisteet, aa)), aa, 1, 36)
tnarvot = Frekvenssi(tnsummat)
tnhisto = Histogrammi(reunat, tnarvot / 36)

Seuraavaksi mennään kolmeen noppaan. Olen tosin jo kirjoittanut siitä artikkelissa https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Esimerkkitiedosto löytyy GeoGebra-materiaaleista.

https://www.geogebra.org/m/kku5be5c