Tantonin aNEGoS-peli GeoGebralla

Tässä artikkelissa esitän, miten pelata a Not-Exciting Game of Solitaire -peliä GeoGebran taulukkolaskentasovelluksen avulla. Tätä sovellusta voi käyttää vaikkapa apuna, kun yrittää ratkoa peliin liittyvän artikkelini haastavia tehtäviä.

GeoGebrassa on aika mukavasti listakomentoja, niinpä tällaisen sovelluksen tekeminen on aika suoraviivaista. Linkki GeoGebra-sovellukseen löytyy lähteet-luvusta.

pelin säännöt

Valitse joukko lukuja. Kutsutaan lukujoukkoa listaksi. Valitse näistä kaksi lukua. Poista ne listalta ja korvaa ne lukujen tulon ja summan summalla. Jatka näin, kunnes listaan jää vain yksi luku.

geogebra-sovellus

Valmis sovellus näkyy alla. Tämä resepti toimii sekä GeoGebra Classic 5:llä että Classic 6:lla. Lisään ohjeeseen mukaan suomen- ja englanninkieliset komennot.

Määritellään ensin pelissä käytetty funktio, kirjoittamalla Syöttökenttään

f(x, y) = x y + x + y

Soluun C1 kirjoitetaan alkuperäinen lista, tässä esimerkissä

{2, 3, 3, 5, 7}

Soluun B3 luodaan linkki alkuperäiseen listaan.

=C1

Soluun C3 arvotaan ensimmäinen luku

=SatunnainenAlkio(B3)
=RandomElement(B3)

Solussa D3 poistetaan edellinen luku listasta

=Poista(B3, {C3})
=Remove(B3, {C3})

Arvotaan edellisestä listasta toinen luku soluun E3

=SatunnainenAlkio(D3)
=RandomElement(D3)

Poistetaan luku listasta soluun F3

=Poista(D3, {E3})
=Remove(D3, {E3})

Soluun G3 lasketaan lukujen tulon ja summan summa funktion f(x, y) avulla

=f(C3, E3)

Toki edellisen olisi voinut tehdä ilman f-funktiota näppäilemällä soluun G3 kaava

=C3*E3 + C3 + E3

Soluun B4 laitetaan lista, johon on lisätty edellisen laskun tulos.

=Liitä({F3, {G3}})
=Join({F3, {G3}})

Tässä vaiheessa GeoGebra Classic 6:ssa näyttää tältä, kun Asetuksissa on kohdassa Algebrallinen kuvaus: Määritelmä.

Loppu onkin kopioimista alaspäin. Ensi kannattaa valita solu B2 ja tarttua hiirellä oikean alakulman pieneen neliönmuotoiseen kahvaan. Sitten vedetään alue alaspäin riittävän pitkälle, vaikkapa soluun B20 saakka. Sitten valitaan alue C3:G3 ja kopioidaan alaspäin.

Alla on pelattu peliä GeoGebra 6:lla, kun alkuperäinen lista on {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.

Nyt onkin helppoa keksiä kaava, jolla voi laskea pelin viimeistä lukua, jos alkuperäisenä listana on {1, 2, …, n}.

lähteet

Valmis GeoGebra sovellus GeoGebra Materiaaleissa
https://www.geogebra.org/m/wqbfghfw

Blogiartikkelini ”A not-exciting game of solitaire, peli yhteen- ja kertolaskun harjoitteluun”
https://mikkorahikka.blog/2024/01/28/a-not-exciting-game-of-solitaire-peli-yhteen-ja-kertolaskun-harjoitteluun/

blogiartikkelini GeoGebran lista-komennoista
https://mikkorahikka.blog/2018/05/15/listat-geogebrassa/

A not-exciting game of solitaire, peli yhteen- ja kertolaskun harjoitteluun

Tämä peli sopii pienillä luvuilla vaikkapa ala-asteelle yhteen- ja kertolaskun harjoittelun avuksi. Opettaahan tämä myös algoritmeja. Todistusongelmat vaativat hieman algebran taitoja, ne sopinevat lukiolaisille tai matikasta kiinnostuneille opettajille. Toki tämä voisi myös olla kiva pieni harjoitus koodaajille. Erityisesti ylpeä olen neljästä viimeisestä haastavammasta laskutehtävästä, niiden ratkaisuun kului muutama hetki :o)

Tämä peli löytyi James Tantonin  kirjasta ”College Algebra for Humans”, joka julkaistaneen lähiaikoina. Kirjan ensimmäinen luku löytyy artikkelin lopun lähteet-luvusta.

a not-exciting game of solitaire

Muokkaan hieman kirjan sivulla 35 esitettyä peliä. 

pelin säännöt

Valitse joukko lukuja. Kutsutaan lukujoukkoa listaksi. Valitse näistä kaksi lukua. Poista ne listalta ja korvaa ne lukujen summalla. Jatka näin, kunnes listaan jää vain yksi luku.

Esimerkki 1A: Valitaan seuraavat viisi lukua. [2, 3, 3, 5, 7]. Tässä esimerkissä lisään tulosluvun listan loppuun.
Valitaan luvut 3 ja 5. Koska 3 + 5 = 8 on uusi lista [2, 3, 7,  8].
Valitaan 2 ja 8. Lista on nyt [3, 7, 10].
Valitaan 3 ja 7. Lista on nyt [10, 10].
Viimeiseksi luvuksi listaan jää [20].

Esimerkki 1B: Valitaan samat luvut, mutta tehdään valinnat eri järjestyksessä. Tässä esimerkissä valitsen kaksi ensimmäistä ja laitan summan niiden tilalle listan alkuun.
[2, 3, 3, 5, 7]
[5, 3, 5, 7]
[8, 5, 7]
[13, 7]
[20]

Todistustehtävä 1A. Osoita, että edellisen esimerkin tulos pysyy samana vaikka valinnat tehdään missä tahansa järjestyksessä.

Todistustehtävä 1B. Osoita, että edellisen esimerkin tulos pysyy aina samana vaikka valittaisiin mitkä tahansa luvut alkuperäiseen listaan.

kertolaskuversio pelistä

Kirjan sivun 41 peli toimii muutoin samoilla säännöillä, mutta yhteenlaskun tilalla käytetään kertolaskua. Tässä kannattaa käyttää pieniä lukuja tai sitten laskinta apuna.

Esimerkki 2A: Käytetään samaa listaa ja ”samoja” valintoja.
[2, 3, 3, 5, 7]
[2, 3, 7, 15]
[3, 7, 30]
[30, 21]
[630]

Esimerkki 2B:  Tässä valitsen kaksi vasemmanpuoleista ja korvaan ne listan ensimmäiseksi.
[2, 3, 3, 5, 7]
[6, 3, 5, 7]
[18, 5, 7]
[90, 7]
[630]

Todistustehtävä 2A. Osoita, että näillä luvuilla pelin viimeinen luku on aina  630.

Todistustehtävä 2B. Osoita, että esimerkin tulos pysyy aina samana vaikka valittaisiin mitkä tahansa luvut alkuperäiseen listaan.

haastavampi versio pelistä

Kirjan sivulta 47 löytyy himpun verran haastavampi peli. Tämä opettanee laskujärjestystä ja laskimen käyttöä.

pelin säännöt

Valitse joukko lukuja. Kutsutaan lukujoukkoa listaksi. Valitse näistä kaksi lukua. Poista ne listalta ja korvaa ne lukujen tulon ja summan summalla. Jatka näin, kunnes listaan jää vain yksi luku. 

Esimerkki 3A. Käytetään samaa listaa kuin edellä ja samaa valintajärjestystä.
[2, 3, 3, 5, 7]
Valitaan luvut 3 ja 5. 3*5 + (3 + 5) = 23
[2, 3, 7, 23]
Valitaan 2 ja 23. 2*23 + (2 + 23) = 71
[3, 7, 71]
Valitaan 3 ja 7. 3*7 + (3 + 7) = 31
[71, 31]
3*7 + (3 + 7) = 2303
[2303]

Esimerkki 3B.
[2, 3, 3, 5, 7]
[11, 3, 5, 7]
[47, 5, 7]
[287, 7]
[2303]

Todistustehtävä 3A. Osoita, että näillä luvuilla viimeinen luku on aina 2303.

Todistustehtävä 3B. Osoita, että esimerkin tulos pysyy aina samana vaikka valittaisiin mitkä tahansa luvut alkuperäiseen listaan.

Haastavampi laskutehtävä 1. Olkoon listassa n kappaletta ykkösiä. Mikä on pelin viimeinen luku. Jos merkitään että f(n) on pelin lopputulos, niin minkä tyyppinen funktio on kyseessä? Lineaarinen, potenssi, eksponentiaalinen, … ?

Haastavampi laskutehtävä 2. Olkoon listassa  luvut [1, 2, 3, …, n]. Mikä on pelin viimeinen luku? Minkä tyyppistä on f(n):n kasvu?

Haastavampi laskutehtävä 3. Olkoon listassa  luvut [a, b, c, d, …]. Kehitä mahdollisimman yksinkertainen kaava viimeisen luvun laskemiseksi.

Haastavampi laskutehtävä 4. Olkoon listassa  alkuperäisen esimerkkien luvut  [2, 3, 3, 5, 7]. Lisää listaan yksi luku siten, että pelin viimeinen luku on nolla.


Nyt kun käytin muutaman hetken neljän viimeisten tehtävien ratkaisuun, niin pitänee palata tähän vähintäänkin GeoGebra-taulukkolaskentasovelluksen ja Python-koodien avustuksella.

lähteet

James Tantonin ”College Algebra for Humans” kirjan 1. luku
https://gdaymath.com/wp-content/uploads/2022/02/COLLEGE-ALGEBRA-December-2023-Part-1.pdf

Blogiartikkelini ”Nopeasti kasvavia funktioita ja lukujonoja”
https://mikkorahikka.blog/2023/01/30/nopeasti-kasvavia-funktioita-lukujonoja/

James Tanton -sivusto
https://www.jamestanton.com