Kevät 20 pitkän matikan tehtävä 12.2 GeoGebralla

[edit 23.3. Lisäsin tarinan loppuun pari eri tapaa ratkaista tehtävän ja kuvan pisteistä.]

Kevään 20 pitkän matikan tehtävässä piti selvittää luonnollisiin lukuihin liittyvä lukumäärälasku. Tämähän on meille ATKnörteille simppeli ohjelmointiongelma.


Jollain ”oikealla” ohjelmointikielellä tuo taitaa olla muutaman rivin ohjelma. Ratkaistaan 2.-kohta GeoGebralla. Tässä tulee 100*100 lukua eli ei kannata käyttää CASia, veikkaan, että kone hyytynee. Käytetään Algebra-ikkunaa. Teenpä tämän GeoGebra 6:lla ihan testatakseni miten se toimii. Kokeilin tätä GG 5:llä ja tehtävä ratkesi ihan OK, mutta ohjelma alkoi himpun verran jumittaa koska listan koko on 10000.

Komento

Jono(Jono(sqrt(a b), a, 1, 100), b, 1, 100)

tuottaa listan matriisin m1. GeoGebra 5:ssä Algebraikkunassa matriisi näkyy matriisin näköisenä, GG6:ssa voi arvata, että se on matriisi sillä alussa näkyy kaksi kaarisulkua. Toisaalta sisäkkäiset Jono-komennot tuottavat aina matriiseja. Matriisin m1 pituus (eli oikeasti m1 listan pituus saadaan komennolla

Pituus(m1)
-> 100

tuottaa luvun a = 100. Matriisin sisällä olevat ”turhat” kaarisulkeet saa pois Tiivistä-komennolla

Tiivistä(m1)

tuottaa listan l1, jonka pituus on

b = Pituus(l1)
-> 100

Selvitetään, mikä näistä luvuista on luonnollinen luku. Ehto

floor(luku) == luku

antaa tulosteeksi true, jos luvun kokonaisosa on yhtäsuuri kuin luku itse eli onko luku kokonaisluku. Käydään läpi kaikki luvut listassa l1 ja tutkitaan mitkä ovat luonnollisia lukuja

l2 = Zip(Jos(floor(aa) == aa, aa), aa, l1)
-> {1, ?, ?, 2, ?, ...

Nuo kysymysmerkit vastaavat niitä lukuja, joilla ehto ei ole voimassa. Poistetaan määrittelemättömän lista oliot eli nuo kysymysmerkit komennolla

l3 = PoistaMäärittelemätön(l2)
-> {1, 2, 3, 4, ...
c = Pituus (l3)
-> 310

Kysytty todennäköisyys on

d = c/b

-> 31/1000

GeoGebra 6:ssa isojen listojen käsittely tuntuu sutjakkaammalta kuin GeoGebra 5:ssä. Tosin molemmissa ohjelmissa ratkaisu onnistui MacBookissani.

Lisäys 22.3.20

En malttanut olla kokeilematta paria muuta tapaa. Idea tuli Edwardilta Facebookista.

m2 = Jono(Jono(Jos(floor(sqrt(a b)) ≟ sqrt(a b), 1, 0), a, 1, 100), b, 1, 100)

tuottaa lista, matriisin, jossa on paljon nollia ja ykkösiä.

l5=Summa(m2)

tuottaa lista, jossa on vaakarivien summat {10, 7, …

Summa(l5) = 310

Toisaalta yhdellä rivillä

Jono(Jono(Jos(floor(sqrt(a b)) ≟ sqrt(a b), 1, 0), a, 1, 100), b, 1, 100) = 310

Jos olisi halunnut nuo pisteet koordinaatistoon, niin sen saa komennolla

Jono(Jono(Jos(floor(sqrt(a b)) ≟ sqrt(a b), (a, b)), a, 1, 100), b, 1, 100)

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google photo

Olet kommentoimassa Google -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.