Egyptiläisistä murtoluvuista

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 13.1.2005 11:45

Äskeisen talvipähkinän ratkaisun avain oli muuntaa taulukon luvut
yksikkömurtolukujen summiksi.
Laatiessani tehtävää en tiennyt, että muinaiset egyptiläiset esittivät
murtoluvut tähän tyyliin ja vieläpä juuri niin, että kaikkien
nimittäjien tuli olla eri lukuja.
(Tämän tiedon lähteille pääsin, kun uteliaisuuttani kokeilin
hakua "unit fraction" verkosta.)

Egyptiläisille ei siis esimerkiksi 2/7=1/7+1/7 kelvannut vaan se piti
esittää muodossa 2/7=1/4+1/28.

Syitä esitystapaan ei ole täysin saatu selvitettyä. Siihen vaikutti
osaltaan merkintätyyli. Yksikkömurtoluvut ilmaistiin panemalla vastaavan
kokonaisluvun yläpuolelle soikio eikä yleisemmille murtoluvuille ollut
omaa merkintää.

Esitystavalla lienee ollut jopa käytännön sovelluksia.
Esim. jos tulee jakaa 7 samankokoista viljasäkillistä tasan 8 viljelijän
kesken, jokainen saisi siis 7/8-säkillistä. Se vaikuttaa hankalalta
käytännössä ja saattaisi johtaa riitaan.
Luku 7/8 egyptiläisittäin esitettynä on 7/8=1/2+1/4+1/8, jolloin
jako onnistunee käytännössä sujuvasti, kun ensin 4 säkkiä puolitetaan,
2 seuraavaa puolitetaan kahdesti ja ainoa jäljelle jäänyt puolitetaan
kolmasti. Tällöin jokainen saa yhden puolikkaan, neljäsosan ja
kahdeksasosan.

Verkosta löytyy haulla "egyptian fractions" paljonkin tietoa.
Hyviä tietolähteitä ovat mielestäni mm. seuraavat:
http://www.ics.uci.edu/~eppstein/numth/egypt/     (David Eppstein)
http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fractions/egyptian.html 

Aihe on kiinnostanut matemaatikkoja läpi matematiikan historian.
Viime vuosikymmeninä (osittain aikaisemminkin) on kehitetty
lukuisia algoritmeja murtolukujen esittämiseksi egyptiläisittäin.
Esitys ei ole koskaan yksikäsitteinen, sillä esim. viimeinen termi
1/n voidaan aina jakaa kahdeksi pienemmäksi 1/(n+1) + 1/[n*(n+1)].
Kuitenkin jos rajoitetaan termien lukumäärä vakioksi ja valitaan
se esitys, jossa viimeinen termi on suurin mahdollinen eli jakaja
pienin mahdollinen, saadaan tulos, joka vaikuttaa yksikäsitteiseltä.
En ole tähän mennessä keksinyt tälle vastaesimerkkiä enkä mitään
viitteitä verkossa avautuvista lähteistäkään.

Käytin jonkin verran aikaa etsiäkseni sellaista algoritmia, joka
antaisi edellä kuvatussa mielessä hyviä tuloksia.
Päädyin David Eppsteinin sivuilta löytyvään, alunperin I. Stewartin
(1992) esittämään raakaan hakualgoritmiin
http://www.ics.uci.edu/~eppstein/numth/egypt/force.html#short 
josta Eppstein on tehnyt C++ -ohjelman
http://www.ics.uci.edu/~eppstein/numth/egypt/efrac.c 

Olen muuttanut ohjelmakoodin tavalliseksi C-koodiksi, lisännyt siihen
eräitä mielestäni hyödyllisiä, mm. hakua rajoittavia optioita ja
liittänyt sen nykyiseen Survoon (COMB-modulin kylkiäisenä).

Egyptiläisiä k termin mittaisia yksikkömurtolukusummia tehdään
rationaaliluvulle m/n, missä m ja n ovat positiivisia kokonaislukuja
yksinkertaisesti komennolla

EGYPT m/n,k

Esimerkkejä:
EGYPT 7/8,3 / 7/8=1/2+1/4+1/8
EGYPT 36/37,4 / No solution found!
EGYPT 36/37,5 / 36/37=1/2+1/3+1/9+1/37+1/666

Tässä nähdään, miten ykkönenkin voidaan esittää erisuurten yksikkö-
murtolukujen summana:
EGYPT 1/1,3 / 1/1=1/2+1/3+1/6
EGYPT 1/1,4 / 1/1=1/2+1/4+1/6+1/12
EGYPT 1/1,5 / 1/1=1/2+1/4+1/10+1/12+1/15
EGYPT 1/1,6 / 1/1=1/3+1/4+1/6+1/10+1/12+1/15

........................................................................
Jos yrittää jakaa ykköstä 7 tai useampaan osaan, haku kestää edellisiin
verrattuna paljon kauemmin. Tällöin toiminta nopeutuu, kun rajoitetaan
nimittäjiä sekä alhaalta (NMIN) että ylhäältä (NMAX) päin.

NMIN=3 NMAX=30
EGYPT 1/1,7 / 1/1=1/3+1/4+1/9+1/10+1/12+1/15+1/18
TIME COUNT START
EGYPT 1/1,8 / 1/1=1/4+1/5+1/6+1/9+1/10+1/15+1/18+1/20
TIME COUNT END   5.422
TIME COUNT START
EGYPT 1/1,9 / 1/1=1/4+1/6+1/8+1/9+1/10+1/12+1/15+1/18+1/24
TIME COUNT END   173.454

........................................................................
Myös kaikkien löydettyjen esitysten nimittäjät saa talletetuksi
tekstitiedostoon (SAVE).
Esim.
SAVE=EG.TXT
EGYPT 36/37,5 / 36/37=1/2+1/4+1/6+1/18+1/1332
LOADP EG.TXT
Denominators of Egyptian fractions for 36/37:
2 4 5 44 4070
2 4 5 45 1332
2 4 6 18 1332
2 4 5 44 4070
2 4 5 45 1332
2 4 6 18 1332
jne.
........................................................................

Talvipähkinän ratkaisu on näillä keinoin mutkatonta.

Alkuperäinen taulukko murtoluvuin:
_"  23/22
_A  15/56
_D  1/13
_E  1/14
_I  251/510
_L  173/720
_R  1/4
_O  1/12
_S  191/630
_T  1/11
_U  307/1140
_V  1/2

Luomalla blokkisiirroin seuraava asetelma

EGYPT 23/22     2
EGYPT 15/56     2
EGYPT 1/13      1
EGYPT 1/14      1
EGYPT 251/510   3
EGYPT 173/720   3
EGYPT 1/4       1
EGYPT 1/12      1
EGYPT 191/630   3
EGYPT 1/11      1
EGYPT 307/1140  3
EGYPT 1/2       1

ja jatkuvalla aktivoinnilla saadaan kaikki tarvittavat tiedon palaset:

EGYPT 23/22     2 / 23/22=1/1+1/22             "
EGYPT 15/56     2 / 15/56=1/7+1/8              A
EGYPT 1/13      1 / 1/13=1/13                  D
EGYPT 1/14      1 / 1/14=1/14                  E
EGYPT 251/510   3 / 251/510=1/3+1/10+1/17      I
EGYPT 173/720   3 / 173/720=1/9+1/15+1/16      L
EGYPT 1/4       1 / 1/4=1/4                    R
EGYPT 1/12      1 / 1/12=1/12                  O
EGYPT 191/630   3 / 191/630=1/5+1/18+1/21      S
EGYPT 1/11      1 / 1/11=1/11                  T
EGYPT 307/1140  3 / 307/1140=1/6+1/19+1/20     U
EGYPT 1/2       1 / 1/2=1/2                    V

Jokaisen EGYPT-komennon k-parametri on pienin mahdollinen (eli
sellainen, josta ei tule ilmoitusta "No solution found!").

-Seppo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.