Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 331. feladat (2013. november)

I. 331. Az ókori egyiptomi matematika egyik érdekessége, hogy néhány kivételtől eltekintve a törteket mindig törzstörtekként írták föl. Például a 3/8 az egyiptomi papiruszokon 1/4+1/8 alakban szerepel, vagyis egység számlálójú törteket használtak. Az 1/8+1/8+1/8 triviális felírást nem alkalmazták, mivel más felírásokhoz képest hosszú eredményt adott. Ezenkívül minden műveletet igyekeztek az összeadás és a kivonás segítségével elvégezni, illetve szorzás és osztás helyett legtöbbször kétszerezést és felezést végeztek. Például a 13 szorozva 17-tel eredményét a következő gondolatmenet alapján számolták ki:

A jobb oldali oszlopban visszafelé kell haladni, így az eredmény 136+68+17=221.

Az egészek osztása sem volt egyszerű feladat, például 62 osztva 13-mal a fennmaradt papiruszok szerint a következő módon végezhető el:

Ezután következett a 10 osztása 13-mal, aminél először felezgettek (most a jobb oldali oszlopban is előre haladva kell gondolkodni):

Maradt tehát annak a végiggondolása, hogy az 1/4 melyik számnak a 13-szorosa, amihez a 13-adokat nézték meg:

Az eredmény tehát 4+1/2+1/4+1/52. Mivel a törtek számlálója mindig egy, ezért egyszerűen 4 /2 /4 /52 alakban tudjuk felírni az osztás eredményét.

Sain Márton Nincs királyi út című matematikatörténeti könyvében, amely a Magyar Elektronikus Könyvtárban online elérhető, további leírást találunk az egyiptomi számolásról.

Készítsünk programot i331 néven, amely az egyiptomiak által használt, fent leírt alapműveletek segítségével elvégzi két, egymilliónál kisebb egész szorzását vagy osztását. A program az argumentumként megadott állomány minden sorának műveletét számítsa ki és a második argumentumként megadott állományba írja soronként az eredményt.

Beküldendő egy tömörített i331.zip állományban a program forráskódja (i331.pas, i331.cpp, ...), valamint a program rövid dokumentációja (i331.txt, i331.pdf, ...), amely megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

(10 pont)

A beküldési határidő 2013. december 10-én LEJÁRT.


Mintamegoldásként Csernák Tamás budapest, 12. évfolyamos diák Pascal nyelven készült (i331.pas) és Kovács Balázs Marcell budapest, 11. osztályos versenyző C++ nyelven írt (i331.cpp) munkáját adjuk közre.


Statisztika:

8 dolgozat érkezett.
10 pontot kapott:Csernák Tamás, Kovács Balázs Marcell.
8 pontot kapott:1 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:2 versenyző.
4 pontot kapott:1 versenyző.
0 pontot kapott:1 versenyző.

A KöMaL 2013. novemberi informatika feladatai