A tökéletes számok keresési algoritmusa

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

Események formális leírása, műveletek
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
Elemi algoritmusok Páll Boglárka.
FEJEZETEK A MATEMATIKÁBÓL
Természetes számok 0, 1, 2, 3, ..., 24, 25, ..., 1231, 1232, ..., n, ...  = {0, 1, 2, 3, ..., n,...} a természetes számok halmaza Műveletek: összeadás.
Oszthatóság Az a osztója b-nek, ha van olyan egész szám, amivel a-t szorozva b-t kapok. (Az a osztója b-nek, ha egész számszor megvan benne.) Ha a|b, akkor.
Adatelemzés számítógéppel
Programozási tételek, és „négyzetes” rendezések
Matematikai Analízis elemei
Képességszintek.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Félévi követelmény (nappali)
Halmazok, műveletek halmazokkal
Műveletek logaritmussal
Számhalmazok.
Algebra a matematika egy ága
C A C nyelv utasításai.
Hegyesszögek szögfüggvényei
Algebrai törtek.
Fejezetek a matematikából
A Halmazelmélet elemei
Integrálszámítás Mire fogjuk használni az integrálszámítást a matematikában, hova szeretnénk eljutni? Hol használható és mire az integrálszámítás? (már.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
Oszthatóság Az a osztója b-nek, ha van olyan egész szám, amivel a-t szorozva b-t kapok. (Az a osztója b-nek, ha egész számszor megvan benne.) Ha a|b, akkor.
A számfogalom bővítése
Halmazok Összefoglalás.
1 Matematikai Analízis elemei dr. Szalkai István Pannon Egyetem, Veszprém nov. 08.
*** HALMAZOK *** A HALMAZ ÉS MEGADÁSA A HALMAZ FOGALMA
Az RSA algoritmus Fóti Marcell.
Exponenciális egyenletek
Halmazműveletek.
Klasszikus Programozás a FoxPro-ban FELADATOK
Készítette: Horváth Zoltán (2012)
Ciklusok (iterációk).
Tökéletes és a Barátságos számok
Hatványozás egész kitevő esetén
Algoritmus gyakorlati feladatok
Programozási feladatsor ciklusok gyakorlására Készítette: Rummel Szabolcs Elérhetőség:
Alapsokaság (populáció)
Dodekaéder Hamilton köre
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
Valószínűségszámítás II.
Többdimenziós valószínűségi eloszlások
előadások, konzultációk
Halmazok Érettségi követelmények:
Adalékok egy véges összegzési feladathoz
Számok világa.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Programozás alapjai Készítette: Csiszár Nóra Anita
A Catalan-összefüggésről
Számábrázolás.
A tökéletes számok algoritmusa
Integrálszámítás.
Műholdas helymeghatározás 6. előadás
3. óra Algebrai kifejezések nagyító alatt
137. óra - Ismétlés Számok és műveletek
A tökéletes szám keresési algoritmusa
78. óra Prímszámok Röp: 1. Az osztó definíciója. 2. Dönts el és indokold: a.) osztható-e 125-tel? b.)
Sakk algoritmus.
A legkisebb közös többszörös
óra Algebra
avagy, melyik szám négyzete a -1?
Informatikai gyakorlatok 11. évfolyam
Hatványozás azonosságai
Tanórán kívül lehet kicsit több
Szögfüggvények és alkalmazásai Készítette: Hosszú Ildikó Nincs Készen.
Előadás másolata:

A tökéletes számok keresési algoritmusa Számolási algoritmusok A számítógéppel megismerkedő tanuló számára a számítógépet többnyire mint tökéletesen hibátlanul dolgozó eszközt szoktuk bemutatni. Ez sajnos nem igaz. A számítógép és az ember számkezelése nem azonos. A kettő leginkább az egész számok területén fedi egymást, bár itt is igen jelentős a gép számára a korlátosság. Az igazán mellbevágó a különbség a valósnak nevezett számhalmazokban van. Az eltérés bemutatására a BUTAGEP.PAS programot szoktam használni. A programban látszólag egyszerű dolgot csinálunk: hússzor kiszámítjuk az egyharmad értéket.Az n jelöli a 3-as számot, x a reciprokát, majd hússzor vesszük az n+1 x-szeresét és ezt 1-gyel csökkentjük, ez lesz az új értéke az x-nek. A mindenkori x értéket kiírjuk. A programozásban járatlan felhasználó számára szinte elképzelhetetlen, hogy milyen súlyos hibát okoz a gép belső számábrázolási pontosságából származó kerekítés, ha nem figyelünk rá. Tehát a jó algoritmus nem biztosítéka a jó programnak, a számítógép adottságait is ismernünk kell a probléma szabatos megoldásához. A már kész eljárások ismerete megkönnyítheti ezt a folyamatot.

Alap számolási algoritmusok Al-Hvárizmi említett könyvében a tízes számrendszerbeli műveletek végrehajtására eljárásokat javasol. Emiatt sokan a tízes számrendszer megalkotójának is tekintik. Sajnos vagy szerencsére az általa javasoltak helyett az abakuszra épülő algoritmusok terjedtek el Európában. Ez sokáig gátat szabott a matematika köznapivá válásának, mivel igen bonyolult lépéssorokat kellett megjegyezni már az alapműveletek elvégzéséhez is. Az igen gyakran előforduló hatványozásra szinte alkalmatlan is az abakusz, pedig igen gyakran előforduló számolási feladat. Kezdjük ezzel az ismerkedést. Magát a pozitív egész kitevős hatvány fogalmát a tanulók ismerik, de előszeretettel felejtik ki az 1-es kitevő esetét. Definíció. Bármely valós szám első hatványa önmaga. Bármely valós számot, ha kitevője 1-nél nagyobb egész szám, annyiszor veszünk szorzótényezőül, ahányszor a kitevője mutatja. A 0 kitevővel is érdemes már itt foglalkozni, hiszen gyakran előkerül számolási feladatokban. Definíció. Bármely 0-tól különböző valós szám 0 kitevőjű hatványa 1. A 00 definiálását néha elhagyják [1], én a 0 értéket szoktam tanítani függvénytani megfontolások alapján. A permanencia-elv szerint 1 is lehetne, erre a figyelmet érdemes felhívni. A hatványozásra vonatkozó azonosságokat általában jól ismerik, de az algoritmus kedvéért is érdemes átismételni. Példa. Készítsünk tetszőleges valós számot nem negatív egész kitevőre emelő eljárást!

A hagyományos definíción alapuló ismételt szorzásokkal való hatványozás helyett sokkal elegánsabb és gyorsabb, ha Legendre algoritmusát alkalmazzuk : 1. ha a k kitevő 0, akkor kész, a hatvány értéke 1, vagy 0, ha az alap is 0 volt; 2. legyen az s segédváltozónk kezdőértéke 1; 3. ha a kitevő páratlan, akkor s-t szorozzuk meg az a alappal, és csökkentsük 1-gyel a k kitevőt, egyébként (ha a k kitevő páros), az alapot emeljük négyzetre és legyen ez az új a alap, a k kitevőt pedig felezzük el; 4. ha k > 0 akkor 3. pontban folytassuk, egyébként vége, az s értéke a keresett hatvány. Az algoritmus megvalósítása a HATVANY.PAS program. A hatványozás mellett a gyökvonás a másik gyakran elvégzendő számolás. A négyzetgyök és a köbgyök fogalma szerepel az általános iskolai tananyagban, általánosítása a feladatunk elsőként. Definíció. Egy a nem negatív valós szám k-adik gyökén értjük azt a nem negatív valós számot, amelynek k-adik hatványa maga a szám. A definíciót páros és páratlan kitevőre külön is szokás kimondani, mivel általánosabban használható abban a formában. Feladatok megoldása kapcsán viszont most is célszerű kitérni a kettő alapja közti különbségekre. Példa: Készítsünk k-adik gyökvonást elvégző eljárást! A gyök pontos meghatározása általában nem szükséges a véges számolási pontosság miatt. Ezért valamilyen közelítő módszert szokás alkalmazni, amelynek a kívánt pontosságát előre megadjuk.

Tökéletes és barátságos számok Számmisztikai jelentőségük miatt is érdekesek a tökéletes és a barátságos számok. Ezek meghatározása szinte ismeretlen a tanulók előtt: Definíció. Tökéletes számnak nevezzük azt a természetes számot, amelynek a nála kisebb pozitív osztóinak összege maga a szám. Példa. Keressünk adott intervallumban tökéletes számokat! A hagyományos matematikai módszerekkel, kézzel ezek már nagyon nehezen határozhatóak meg. Ma ismert legnagyobb tökéletes szám a 2756838(2756839-1). Nikomakhosz (i.sz. 100 körül) kimondta, majdEuler később bebizonyította ugyan, hogy az összes páros tökéletes szám 2n(2n+1-1) alakú, ahol 2n+1-1 prímszám, de máig nem eldöntött kérdés, hogy létezik-e páratlan tökéletes szám vagy sem, ugyanis minden ismert tökéletes szám páros. Az viszont már kiderült, hogy nem lehet 10200-nál kisebb, mivel ezen értékig már átvizsgálták a páratlan számokat. Nikomakhosz ma sem igazolt sejtése szerint minden tökéletes szám 6-ra vagy 8-ra végződik. E probléma kapcsán már érdemes felhívni a tanulók figyelmét arra, hogy a számítógép hogyan segítheti a matematikust sejtéseinek megfogalmazásában, illetve azok helyességének eldöntésében. A TOKELET.PAS programban alkalmazott algoritmusban a szám osztóit keressük meg, az eljárás meggyorsítására az osztót és a komplementerét együtt határozzuk meg. Ekkor a négyzetszámokat külön meg kell vizsgálnunk. Az osztókat összegezve végül megvizsgáljuk, hogy megegyezik-e az összeg a számmal. Az algoritmusunkat tovább gyorsíthatjuk, ha elfogadjuk Nikomakhosz sejtését. Természetesen programunk a ma ismert 32 darab tökéletes szám közül csak a kisebbeket képes megtalálni.

A barátságos számok meghatározása is hasonló algoritmus alapján történik. Definíció. Két pozitív egész szám barátságos, ha az egyik nála kisebb pozitív osztóinak összege megegyezik a másik számmal, és viszont. Hagyományos módszerekkel már szinte reménytelennek tűnik ilyen számokat keresni. Az ókorban a püthagoreusok csak a (220;284) számpárt ismerték, Euler zsenialitását mutatja, hogy a korábban ismert 4 páron túl további 61 baráti számpárt határozott meg. Példa. Keressünk barátságos számokat adott intervallumban! Az algoritmus alapgondolata a tökéletes szám keresési módszerén alapul. Az eltérés gyakorlatilag az, hogy ha egy szám osztóinak összegét meghatároztuk, akkor megnézzük, hogy e szám osztóinak összege megegyezik-e a vizsgált számmal. A vizsgálatra csak akkor kerítünk sort, ha az összeg kisebb a számnál. Önmagában is érdekes feladat lehet eldönteni, hogy milyen nagyságú általában az osztók összege a számhoz képest. Az algoritmust BARATSAG.PAS program valósítja meg.