[edit 29.7. Lisäsin luvun 3 janoista, korjasin otsikon.]
Jossain Facebookin tai Twitterin syövereissä oli kolmioiden lukumäärään liittyvä ongelma, jota aloin ratkoa kynän ja paperin avustuksella. Tein siitä oman versioni. Ongelmia sopii pohdiskella kesäloman päättymisen ahdistuksen ohella.
0 helppo ongelma
Tämä taisi olla se versio, jota aloin pähkäilemään. Kuinka monta kolmiota kuviossa on?
Entä kuinka monta nelikulmiota?
1 hieman haastavampi ongelma
Yleistetään tehtävä siten, että merkitään vaakasuunnassa kulkevien janojen (kuvassa ne eivät kulje ihan vaakasuunnassa, mutta ymmärtänet mitä tarkoitan) lukumäärää n:llä, kolmioiden lukumäärää K(n) ja nelikulmioiden lukumäärää N(n).
Kuinka monta kolmiota on kuviossa n:n arvolla 10? Kuinka monta nelikulmiota on kuviossa n:n arvolla 10?
[edit. 25.3. Lisäsin toisen version listan tuottamiseen. Korjasin pari kirjootusvihrettä]]
Tehtävässä piti arpoa pisteitä suorakaiteen muotoiselle tasoalueelle ja laskea kuinka suuri osa kuuluu suorakaiteen sisällä olevalle alueelle. GeoGebran Jono-komennolla ratkaisu on suhteellisen yksinkertainen, jos hallitsee pari komentoa.
Luodaan tasoalue epäyhtälöiden avulla. Loogisen tai-operaattorin saa helpoimmin kirjoitettua kahdella & merkillä. Kirjoitetaan syöttökenttään
alue=0 ≤ x ≤ 2 && 0 ≤ y ≤ 4 && y ≥ x²
Satunnaisluku väliltä 0…1 saadaan funktiolla rand(). Niinpä 2*rand() tuottaa satunnaisluvun välillä 0≤x≤2. Sama olisi onnistunut myös komennolla SatunnainenTasajakaumanarvo(0, 2). Tässä olisi voinut valita pisteitä monikulmion sisältä myös käyttäen komentoa SatunnainenPisteAlueessa( <Monikulmio> ).
Komento OnkoAlueessa(piste, alue) palauttaa arvon true, jos piste kuuluu alueeseen ja false muutoin.
Luodaan jono-komennolla lista, jossa on ykkösiä, mikäli tuotettu piste on kyseisellä alueella ja muutoin 0.
l1 = Jono(Jos(OnkoAlueessa((2random(), 4random()), alue), 1, 0), mm, 1, 1000)
Itse asiassa tuossa ei olisi tarvinnut edes käyttää tuota aluetta, vaan käyttää sen sijaan epäyhtälöä.
Jono(Jos(OnkoAlueessa((2random(), 4random()), y ≥ x²), 1, 0), mm, 1, 1000)
Osumien määrä saadaan laskemalla ykkösten lukumäärä eli
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.