Tätä lukuihin liittyvää ongelmaa voivat tutkia vaikka ala-asteikäisetkin, kun he harjoittelevat allekkain yhteenlaskua. Ja tietysti tämä kiinnostaa meitä eläkeläisiäkin. Jotkut havaitsevat, että tämä onkin aika haastava ongelma. Olen aika ylpeä tuosta otsikon yhdyssanasta :o)
Valitaan jokin luonnollinen luku vaikkapa 67. Käännetään numerot takaperin ja saadaan luku 76. Lasketaan luvut yhteen. 67+76 = 143. Käännetään numerot ja lasketaan taas yhteen 143+341 = 484. Tämä luku on palindromi siinä mielessä, että se on etuperin ja takaperin sama luku.
Ovatko kaikki luonnolliset luvut sellaisia, että edellä esitetyn kaltainen yhteenlasku tuottaa palindromiluvun? Kokeile vaikka lukuja 89 tai 196.
GeoGebranörtti kun olen, niin yritin tehdä komentoja, joilla voisin kääntää luvun numerot takaperin. Koska olen vajavainen taidoiltani, en keksinyt ongelmaan ratkaisua mielekkäässä ajassa.
Toisaalta Pythontaitoni riittävät ongelman tutkimiseen. Pythonin str()-funktio muuttaa kokonaisluvun merkkijonoksi ja int() muuttaa tekstin luvuksi. Jos meillä on Pythonissa muuttuja nimeltä luku, niin metodi luku[::-1] kääntää sen takaperin. Alla esimerkki.
Laiska kun olen, niin päätin pyytää ChatGPT:tä auttamaan ongelman ratkaisussa. Toisaalta halusin myös testata miten ymmärrämme toisiamme. Päätin käyttää keskustelussa englantia, sillä olen aiemmin huomannut, että ChatGPT ei aina ymmärrä kieltämme.
Jos haluat nähdä koko keskustelun, niin katso se Colabissa, linkki on tarinan lopussa lähteet luvussa.
Ensimmäinen keskustelu meni pieleen, sillä en osannut määritellä tehtävää oikein. Seuraava istunto alkoi näin.
Tässä vaiheessa huomasin, että koodi oli oikein, mutta esimerkki väärin. ???
Jatkoin keskusteluamme jonkin aikaa ja lopulta se (vai hän) tuotti minulle koodinpätkän, joka toimi kuten halusin. Tietysti halusin kommentoinnin suomenkielellä.
Pyysin siltä myös kuvaajan piirron. ”Tee koodi, joka piirtää kuvaaja, jossa on vaaka-akselilla luku 1-100 ja pystyakselilla iteroinnin pituus liittyen tähän ongelmaan.” Alla kuvaajia.
Pikkaisen muokattu kuvaaja.
lähteet
Kysyin tietysti, miten voin viitata tähän yhteiseen kokemukseemme.
I used a Python function provided by ChatGPT to create a scatter plot that shows the number of iterations required for numbers 1-10,000 to reach a palindrome when using the reverse and add method. The code can be found in this conversation: [https://chat.openai.com/c/e502983f-962a-46da-b165-9fd78b260660]. Thanks to ChatGPT for providing the code!
James Tantonin twiiteistä löytyi hauska keskiarvojono-ongelma. Sen tutkiminen sopii yläasteikäisille ja varmaan myös vanhemmillekin. Hieman muokkaamalla ongelmaa siitä tuleekin hieman haastavampi. Näitä ongelmia voi mukavasti tutkia laskimella, taulukkolaskennalla, CAS-ohjelmilla tai vaikka pienellä Python-koodilla. Tai sitten kynällä ja paperilla jos siltä tuntuu.
Ongelma 1. Olkoon jonon kaksi ensimmäistä jäsentä 0 ja 1. Seuraava jäsen on kahden edellisen keskiarvo. Lähestyvätkö jonon arvot jotain lukua kohden vai mitä tapahtuu?
Ja hieman täsmällisemmin sama.
Tutki jonon a suppenemista ja määritä mahdollinen raja-arvo.
Ongelma 2. Mikä on raja-arvo, jos jonon kaksi ensimmäistä lukua ovat 2/3 ja 5/7? Entä jos ne ovat x ja y?
Ongelma 3. Valitaan kaksi tason pistettä A ja B. Luodaan pistejono siten, että seuraava piste on kahden edellisen pisteen muodostaman janan keskipiste. Millainen pistejono muodostuu?
Mitä jos lasketaankin keskipisteen koordinaattien kaava väärin?
Ongelma 4. Valitaan kaksi tason pistettä (x1, y1) ja (x2, y2). Muodostetaan jono pisteitä siten, että seuraava saadaan kaavalla:
Kuvassa näkyy ongelman 3 pisteitä kun A ja B ovat ensimmäiset pisteet ja ongelman 4 pisteitä kun U ja V ovat ensimmäiset pisteet.
Haastavuutta tähän tehtävään tulee, kun vaaditaan todistuksia tuloksille. Toki tätä ongelmaa voi muokata lisääkin. Mitä, jos lukuja tai pisteitä onkin 3 tai …? Jätetään nämä pohdiskelut tulevaisuuteen.
Tutkin tässä tarinassa joitakin kasvavia lukujonoja. Jotkut jonot kasvavat vikkelämmin kuin toiset. Aloitetaan potenssifunktiosta ja lopetetaan Ackermannin lukuihin. Tarinassa on mukana muutamia tehtäviä, joista toiset ovat helpompia ja toiset vaikeampia. Täytyy tunnustaa, että en itse osaa ratkaista kaikkia ongelmiani :o)
Aika monen tehtävän ”vastaus” löytyy suoraan tekstistä. Tehtävissä on tietysti ideana, että ratkaisija itse ratkaisee ongelmat omilla menetelmillään.
Koska alaindeksien kanssa puuhasteleminen on hidasta samaistan lukujonot funktioihin.
hiekanlaskija
Arkhimedes (noin 287 – 212 eaa) pohti, miten määritellä suuria lukuja. Noihin aikoihin kreikkalaisilla suurin nimetty luku oli myriadi = 10000. Hiekanlaskijaksi kutsutussa artikkelissaan, tai paremminkin Syrakusan kuningas Gelonille osoitetussa kirjeessä, hän kehitti matemaattisen menetelmän kuvata suuria lukuja. Hän perusti lukujärjestelmänsä lukuun 10002 = 100000000 = 108 = a. Arkhimedeksen tarinassa esitetty suurin luku on
missä A = 8·1016. Varmaankin kaikki tarinan ajatuksella lukeneet ovat ymmärtäneet, että lukujen määrittämistä voi jatkaa aina suurempiin ja suurempiin lukuihin.
Jotta saadaan jonkinlainen kuva funktioiden kasvunopeudesta, niin otetaan yhdeksi vertailukohdaksi iso luku, vaikkapa googol eli 10100 = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000. Ennen vanhaan 9.99999999·1099 oli suurin luku, jota perinteiset funktiolaskimet osasivat käsitellä, eli googol oli liian luku laskimille.
Arkhimedes laski Hiekanlaskijassaan että maailmankaikkeuteen mahtuisi alle 1063 hiekanjyvää, nykytietämyksen mukaan hiekanjyvien lukumäärä olisi noin 1096. Jos maailmankaikkeus täytettäisiin atomeilla, niin siihen saataisiin mahtumaan noin 10110 atomia.
Tehtävä 1. Osoita, että Arkhimedeen suuressa luvussa kymmenen potenssi on A = 8·1016.
Tehtävä 2. Laske kuinka monta hiekanjyvää mahtuisi koko tunnettuun maailmankaikkeuteen.
potenssi/polynomifunktio
Polynomit/potenssifunktiot kasvavat vikkelästi, kun asteluku on iso. Kuvassa on polynomien xn kuvaajat, kun n saa arvot 1, …, 100.
Otetaan esimerkiksi kymmenennen asteen potenssifunktio x^10. Lukujonona se olisi ax = (10, 100, 1000, 10000, …). Googol saavutetaan jo x:n arvolla 1000000000.
Tehtävä 3. Ratkaise yhtälö x^10 = googol
Tehtävä 4. Derivoi funktio f(x) = x^10.
Tehtävä 5. Integroi funktio f(x) = x^10.
eksponenttifunktio
Eksponenttifunktiot ax, kun a > 1, kasvavat nopeasti suurilla x:n arvoilla. Riittävän suurilla x:n arvoilla, ne kasvavat nopeammin kuin potenssifunktiot.
Otetaan esimerkiksi potenssifunktio f(x) = x10 ja eksponenttifunktio g(x) = 10x. Aluksi potenssifunktion arvot ovat selvästi suurempia kuin eksponenttifunktion arvot, lopulta kuitenkin eksponenttifunktio ohittaa potenssifunktion. Eksponenttifunktio g(x) = 10 saavuttaa googolin x:n arvolla 100.
Tehtävä 6. Ratkaise yhtälö x10 = 10x.
Tehtävä 7. Ratkaise yhtälö 10x = googol.
Tehtävä 8. Derivoi g(x) = 10x .
Tehtävä 9. Integroi g(x) = 10x .
Tehtävä 10. Todista, että riittävän suurilla x:n arvoilla eksponenttifunktion ax, a > 0 arvot ovat suurempia kuin potenssifunktion xn arvot. Eli että on olemassa … muotoile itse lauseesi.
kertoma
Kertomafunktio kertoo kuinka monella eri tavalla joukon alkiot voidaan laittaa eri järjestykseen. Esimerkiksi viisi korttia voi olla 5*4*3*2*1 = 120 eri järjestyksessä.
Kertomafunktion kertolaskuun perustuva määritelmä pätee vain luonnollisille luvuille (0! = 1), mutta se voidaan määritellä myös siten, että x voi olla mikä tahansa reaaliluku. Niinpä esimerkiksi luvun pii kertoma on noin 7.188. Määrittelyn apuna käytetään gamma-funktiota, jolle pätee 𝛤(n) = (n – 1)!. Gamma-funktio löytyy myös GeoGebrasta, Nspirestä (valitettavasti koneessani ei enää ole Nspireä) ja Speedcrunch-ohjelmasta.
Kertomafunktion x! kasvu on vikkelää. Googol ylitetään x:n arvolla 70.
Vertaillaan eksponenttifunktion 10x ja kertomafunktion x! arvoja. Alla Pythonilla tuotettu taulukko, josta näkee, että kertomafunktio ohittaa eksponenttifunktion 10x arvot kun x = 25.
Kuvassa on kertomafunktion ja eksponenttifunktion logaritmien kuvaajat: ln(x!) ja ln(10^x).
Kertomafunktiolle pätee yksinkertainen likimääräiskaava nimeltään Stirlingin kaava.
Tehtävä 11. Ratkaise x! = googol, likiarvo varmaankin riittää.
Tehtävä 12. Ratkaise yhtälö 10x = x!. Jos haluat tutkia vain luonnollisia lukuja, niin muotoile itse ongelmasi tyyliin, mikä on ensimmäinen luonnollinen luku x, jolla …
Tehtävä 13. Derivoi Stirlingin funktio f(x).
Tehtävä 14. Integroi Stirlingin funktio f(x) :o)
Tehtävä 15. Todista, että kertomafunktion x! arvot ovat suurempia kuin eksponenttifunktion ax riittävän suurilla x:n arvoilla.
xx
Tämän tyyppiselle funktiolla ei varsinaisesti ole omaa nimeä, x potenssiin x kelvannee. Toki sitä voidaan merkitä tetraatiolaskutoimitusmerkinnällä 2x tai x↑2. Palataan näihin merkintöihin kohtapuoliin. Funktion xx arvot ylittävät googolin x:n arvolla 57.
Tehtävä 16. Ratkaise yhtälö xx = googol.
Tehtävä 17. Derivoi f(x) = xx.
Tehtävä 18. Integroi f(x) = xx :o)
Tehtävä 19. Todista, että xx > x!, kun x > 1.
Tehtävä 20. Määritä funktion f(x) = xx pienin arvo, kun x > 0.
hyperkertoma
Kertomafunktiossa luku kerrotaan sitä pienemmillä positiivisillä luonnollisilla luvuilla
Luvun x hyperkertomalla tarkoitetaan lukua, joka saadaan kun xx kerrotaan x:ää pienempien pienempien luonnollisten lukujen x >0 potensseilla itsensä kanssa.
Myös H voidaan määritellä jatkuvaksi kaikilla reaaliluvuilla K-funktion avulla. Sitä ei löydy GeoGebrasta :o(
Hyperkertoma ylittää googolin kun x = 15. Alla olevassa taulukossa hyperkertomafunktio on hk(x).
Kuvaajassa xx:n ja hyperkertoman kymmenkantaiset logaritmit.
Tehtävä 21. Luo omalla laskinohjelmistollasi tai käyttämälläsi ohjelmointikielellä funktio, joka laskee hyperkertoman arvoja. Laske H(13) ja H(23) esitä tulos kymmenpotenssimuodossa..
Tehtävä 22. Ratkaise millä x:n arvolla H(x) ylittää googolin.
Tehtävä 23. Todista, että kakkosta suuremmilla x:n arvoilla H(x) on suurempi kuin xx.
Tehtävä 24. Osoita, että H(5) on yhtä suuri kuin vuorokauden pituus millisekunteina.
tetraatio
Tetraatiota pidetään neljäntenä laskutoimituksena yhteenlaskun, kertolaskun ja potenssiin korottamisen jälkeen. Rudy Ruckerin merkitsemistavalla
Esimerkiksi kaksi tetratoituna kolmeen 32 (vai olisiko parempi sanoa kaksi tetratoituna kolmanteen)
Potenssien potenssien … potensseja voidaan kutsua myös potenssitorneiksi. Edellisen esimerkin 32 on kolmannen kertaluokan potenssitorni kakkosia.
Funktio, jossa x tetratoidaan itsellään T(x) = xx kasvaa tosi nopeasti.
T(4) on jo niin suuri luku, että en osaa laskea sen arvoa. Sen suuruusluokka on noin 10N, missä N ≈ 8·10153.
Tehtävä 25. Osoita, että T(4) on noin 10N, missä N ≈ 8·10153
Tehtävä 26. Todista, että T(x) > H(x), kun x > 2.
Ackermannin lukujono
Tetraatiota voidaan merkitä myös nuolimerkinnällä. Donald Knuth kehitti merkitsemistavan 1970-luvulla.
Nuolimerkinnällä potenssiin korotus on
ja tetraatio
Näillä nuolilla päästään helposti vielä vikkelämmin kasvaviin funktioihin,
ja niin edelleen.
Vuonna 1928 Wilhelm Ackermann määritti rekursiivisen funktion A(m, n, p), jätän sen määritelmän opiskelun lukijan harteille. Alun perin funktion määritelmässä oli kolme muuttujaa, nykyään se määritellään rekursiivisesti yleensä kahdella muuttujalla A(m, n). Ackermannin funktio kasvaa sanoisinko sairaan nopeasti. Ackermannin funktiosta voidaan johtaa lukujono, jota Conway ja Guy kutsuvat Ackermannin luvuiksi. Niiden lukuarvot voidaan laskea nuolimerkinnällä merkittynä
Ackermannin funktion arvot eli Ackermannin lukujonon arvot kasvavat aika vikkelästi.
Tehtävä 27. Laske A(1) ja A(2)
Tehtävä 28. Kuinka monta kolmosta on korotettuna luvussa A(3).
Tehtävä 29. Laske A(3):n likiarvo kymmenpotenssimuodossa.
Tehtävä 30. Keksi jokin mielekäs tapa esittää kuinka suuri on A(4).
Conwayn ja Guyn funktio
Lupasin päättää tarinan Ackermannin lukuihin, mutta laitetaan tänne loppuun vielä nopeammin kasvava funktio. Kirjassaan The Book of Numbers John Horton Conway ja Richard K. Guy esittävät merkintätavan, jota he kutsuvat nimellä ketjutettu nuoli (chained arrow). Siinä käytetään apuna Knuthin nuolia.
Jätän tämänkin funktion tarkemman määritelmän tutkimisen asiasta kiinnostuneille. Conway ja Guy esittävät lukujononsa muodossa
Tehtävä 34. Osoita, että CG(4) on aika paljon suurempi kuin A(4).
Tehtävä 35. Mikä on Grahamin luku = G (liittyy graafiteoriaan)? Mikä on ensimmäinen x:n arvo, jolla A(x) > G? Mikä on ensimmäinen x:n arvo, jolla CG(x) > G?
Tehtävä 35. Kehitä vielä nopeammin kasvava lukujono.
rahaa tarjolla
Ratkaise tehtävät 1 – 35 ja kirjoita siisti ratkaisut. Tallenna ratkaisusi pdf:ksi ja lähetä se minulle m miukumauku hyl.fi Ensimmäinen ratkaisuja, joka on ratkaissut minun mielestäni oikein yli 30 tehtävää saa palkkioksi A(1):n verran euroja.
Higher-Order Recursion Abstraction: How to Make Ackermann, Knuth and Conway Look Like a Bunch of Primitives, Figuratively Speaking, Baltasar Trancón y Widemann https://arxiv.org/abs/1602.05010