Hassut desimaalit

Tässä esitetyt desimaalikehitelmät on laskettu Pythonilla, koodi löytyy tarinan lopusta. Toki saman voi tehdä, vaikka Wolfram Alphalla tai GoCalcilla Pythonin Sage-murteella tai …

9999999801

Joskus vuonna 2012 löysin Futility Closetista hauskan murtoluvun desimaalikehitelmän. 

1/9801 ≈ 0.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969799000102030405060708091011121314151617...

Näyttää siltä, että tuossa desimaalikehitelmässä on luonnolliset luvut peräkkäin lukuun 99 saakka. Tarkkasilmäinen oppilaani huomasi, että 98 puuttuu. Hassua. Mutta sehän on jakolaskun nimittäjässä.

Kun lisätään yhdeksikköjä nimittäjän alkuun, saadaan luonnolliset luvut jatkumaan pidemmälle. Arvaa, mitä lukua vastaavat numerot puuttuvat omalta paikaltaan tässä desimaalikehitelmässä. 

1/ 99801 ≈0.000001002003004005006007008009010011012013014015016017018019020021...986987988989990991992993994995996997999000001002003004005006007008009010011012013…

Minun päässäni ei ole minkään näköistä matemaattista ajatusta, joka selittäisi tämän ilmiön. Jätän asian pohtimisen arvoisalle lukijalle. Jos keksit jonkin selityksen, niin ole ystävällinen ja kerro siitä minulle, vaikka kommentoimalla tätä artikkelia.

9999999998 ja 9999999998 jne. sekä 49999999

Esittäessäni tätä ilmiötä oppilailleni näppäilin vahingossa

1/9998 ≈ 0.0001000200040008001600320064012802560512102420484096819363872774554910982196439287857571514302860572114…

Desimaalikehitelmän alussa on kakkosen potensseja! Yhdeksikköjen lisääminen alkuun lisää kakkosten potenssien lukumäärää.

1/999998 ≈
0.000001000002000004000008000016000032000064000128000256000512001024002048004096008192016384032768065536131

Kun esitin tätä 2012 Marstrandin GeoGebra-tilaisuudessa ystäväni Jonas ”the Mad Mathematician” Hall oivalsi, että jakolasku

1/999997 ≈0.000001000003000009000027000081000243000729002187006561019683059049177147531442594327782983348950046850141

tuottaa kolmosen potensseja ja

1/999994 ≈0.000001000004000016000064000256001024004096016384065536262145048580194320777283109132436529746118984475938…

nelosen potensseja jne.

Virolainen ystäväni Sirje Pihlap oivalsi samana iltana, että 9998 on parillinen, niinpä 4999 tuottaa samoja lukuja desimaalikehitelmään.

1/4999 ≈ 0.0002000400080016003200640128025605121024204840968193638727745549109821964392878575715143028605721144229…

Taisin kirjoittaa aiheesta viestin entiseen Retnorf-blogiini. Tarina on jossain vanhan blogipalvelimen varakopion syövereissä. Muistini mukaan Hannu Korhonen ja Simo Kivelä kommentoivat tarinaani ja esittivät selityksen/todistuksen miksi kakkosen, kolmosen jne. potenssit ilmestyvät desimaalikehitelmiin.

Jätän tämänkin asian pohdiskelun lukijalle. Samalla voi pohtia tuottaako 1/99999999 ykkösen potensseja.

9999999899999999

Tänä keväänä löytyi Futility Closetista taas hassu desimaalikehitelmä.

1/9999999899999999 ≈ 1.0000000100000002000000030000000500000008000000130000002100000034000000550000008900000144000002330000037700000610000009870000159700002584000041810000676500010946000177110002865700046368000750250012139E-16 

Tuttu lukujono ilmestyy desimaalikehitelmään, kun kahdeksikon vasemmalla puolella on yksi yhdeksän vähemmän kuin oikealla. Miksi? Jätän tämänkin asian selvittämisen lukijan kontolle :o)

Pythonkoodi

Alla Pythonkoodi, jolla tuotin tarinan desimaalit. Kopio ja sijoita esimerkiksi sivulta https://www.python.org/ladatun Idlen koodieditoriin tai sivulla https://repl.it/repls/RemoteEminentPipelining Pythoniin ja suorita koodi.

from decimal import *
# haetaan kirjasto, jonka avulla voidaan laskea desimaaleja
def jako(osoittaja, nimittaja, desimaaleja):
getcontext().prec = desimaaleja
# getcontxt().prec määrittää desimaalien lukumäärän
print()
    print("1/", nimittaja, "≈", Decimal(osoittaja)/Decimal(nimittaja))

jako(1,9801, 300)
jako(1, 998001, 3050)
jako(1, 9998, 100)
jako(1, 999998, 100)
jako(1, 999997, 100)
jako(1, 999996, 100)
jako(1, 4999, 100)
jako(1, 999999, 100)
jako(1, 9999999899999999, 200)

Futility Closet on yksi lemppariblogeistani. https://www.futilitycloset.com/

Mainokset

Kuinka monta nelikkoa?

Edellisessä tarinassani loin GeoGebralla sovelluksen, jonka avulla voi tutkia Sagreda Familian seinällä sijaitsevaa Subirachsin taikaneliötä. Kuinka monta sellaista neljän luvun ryhmää luvuista 1,14, 14, 4, 11, 7, 6, 9, 8, 10, 10, 5, 13, 2, 3, 15 saa siten, että niiden summa on 33?

Yritin ensin tuottaa sisäkkäisiä silmukoita GeoGebralla, mutta tässä tapauksessa lauseke menee niin monimutkaiseksi, että minun pääni ei kestä. Niinpä vaihdoin kielen Pythoniin ja kirjoitin koodinpätkän. Sen perusteella neljän luvun ryhmiä on 88.

Ensimmäisellä rivillä ladataan itertools-kirjasto, jotta combinations() saadaan käyttöön. combinations(luvut,4) tuottaa listan, jossa on kaikki luvut-listan neljän mittaiset kombinaatiot. Niitähän on nCr(16,4) = 1820 kappaletta. Loppu koodista lienee ymmärrettävissä; for-silmukassa tutkitaan summia ja lisätään oikeat tulos-listaan. len(tulos) laskee tulos-listan pituuden.

Alla ohjelman tuottama tulos.

[(1, 14, 14, 4), (1, 14, 11, 7), (1, 14, 8, 10), (1, 14, 8, 10), (1, 14, 5, 13), (1, 14, 3, 15), (1, 14, 11, 7), (1, 14, 8, 10), (1, 14, 8, 10), (1, 14, 5, 13), (1, 14, 3, 15), (1, 4, 13, 15), (1, 11, 6, 15), (1, 11, 8, 13), (1, 7, 10, 15), (1, 7, 10, 15), (1, 9, 8, 15), (1, 9, 10, 13), (1, 9, 10, 13), (14, 14, 2, 3), (14, 4, 7, 8), (14, 4, 6, 9), (14, 4, 10, 5), (14, 4, 10, 5), (14, 4, 13, 2), (14, 11, 6, 2), (14, 11, 5, 3), (14, 7, 9, 3), (14, 7, 10, 2), (14, 7, 10, 2), (14, 6, 8, 5), (14, 6, 10, 3), (14, 6, 10, 3), (14, 9, 8, 2), (14, 4, 7, 8), (14, 4, 6, 9), (14, 4, 10, 5), (14, 4, 10, 5), (14, 4, 13, 2), (14, 11, 6, 2), (14, 11, 5, 3), (14, 7, 9, 3), (14, 7, 10, 2), (14, 7, 10, 2), (14, 6, 8, 5), (14, 6, 10, 3), (14, 6, 10, 3), (14, 9, 8, 2), (4, 11, 8, 10), (4, 11, 8, 10), (4, 11, 5, 13), (4, 11, 3, 15), (4, 7, 9, 13), (4, 6, 8, 15), (4, 6, 10, 13), (4, 6, 10, 13), (4, 9, 10, 10), (4, 9, 5, 15), (11, 7, 6, 9), (11, 7, 10, 5), (11, 7, 10, 5), (11, 7, 13, 2), (11, 6, 13, 3), (11, 9, 8, 5), (11, 9, 10, 3), (11, 9, 10, 3), (11, 10, 10, 2), (11, 5, 2, 15), (7, 6, 10, 10), (7, 6, 5, 15), (7, 9, 2, 15), (7, 8, 5, 13), (7, 8, 3, 15), (7, 10, 13, 3), (7, 10, 13, 3), (6, 9, 8, 10), (6, 9, 8, 10), (6, 9, 5, 13), (6, 9, 3, 15), (6, 10, 2, 15), (6, 10, 2, 15), (9, 8, 13, 3), (8, 10, 10, 5), (8, 10, 13, 2), (8, 10, 13, 2), (10, 5, 3, 15), (10, 5, 3, 15), (13, 2, 3, 15)]
nelikkoja on 88

[edit. 1.3.19 lisäsin muutaman virkkeen liittyen Python ohjelmaan. Vaihdoin ohjelmakoodin kuvan parempaan.]