A Szamitogep Programozas Muveszete 1

You might also like

Download as pdf
Download as pdf
You are on page 1of 646
13. 601 [I Ezakonyy Donald Ervin Knuth (Stanford University): The art of computer programming Volume 4 (Fundamental Algorithms) Second edition 1981 cimG mivének, a md kiadasara és forgalomba hozasara minden jogot fenntarté Addison-Wesley Publishing Company Inc,, Reading, Mass. USA engedélye alapjan kiadolt és forgalmazott magyar forditasa Készult a Mikroszamitégépek és alkalmazasi rendszereik kulatasa-felesztése c. OMB tarcaprogram 4/b alprogramjanak tamogatasaval ‘© Hungarian translation Gyarfas Andras, Szabé G. Zoltan, Székely Laszl6, Turan Tamas, 1987, 1994 © Hungarian edition Miiszaki Kényvkiadé ETO: 519.68 ISBN: 963 107117 0 (1, kiadas dsszefoglald) ISBN: 968 16 0078 5 (sszefoglal6) ISBN: 963 10 71561 (1. kiadas) ISBN: 963 16 0075 0 E18az6 a magyar kladéshoz ...... Elbsz6 l6sz6 a masodik kiaddshoz Meglegyzések a feladatokhoz 4, fejezet - Alapfogaimak . 1.1, Algoritmusok (Székely Laszi6) 1.2. Matematikai eldismeretek (Székely Laszi6) 1.21, Teljes indukci6 ..... eee eee - 1.22, SzAmok, halvanyok és logaritmusok 1.23. Osszegek 6s szorzatok 1.24, Egészrész-luggvények és elemi szamelmélet 1.25. Permutaciok és faktorialisok 1.26. BinomiAlis egyitthatok .. 1.27. Harmonikus szamok . 1.28. Fibonacci-szAmok 1.29, Generdtorliiggvények 1.2.10. Elemziink egy algoritmust *1.2.11. Aszimptotikus el6allitas “12.1141. Az O-jeldlés . “1211.2, Az Euler-téle ésszegzési formula "1.2.1.3, Nehany aszimptotika 1.3, MIX (Turan Tamas) 2... eee 1.31. A MIX lelrasa 5 1.32. A MIX Assembly nyelve . fee _ 1.33. Alkalmazésok permutaci6kra 0220.0... Tartalom 24 25 25 35 44 61 67 73 95 99 107 115 124 124 128 133 141 141 161 . 181 1.4, Néhdny alapvet6 programozasi technika (Turan Tamas) ... ese 208 1.4.1. Szubrutinok ....... Seas Ahlan = 203 1.4.2. Korutinok eer wey sue sasseciie BAO) 1.43. Erteimez6 rutinok . 218 1.43.1, Egy MIX szimulator 219 "1.43.2. Nyomkével6 rutinok . sreoniaasenh +» 229 1.44, Bevitel és kivitel “ ei 232 1.48, Térléneti megjogyz6sek 6s bibliogralia ....... eee AR 2. fejezet - Informéaciés struktdrak ........ ee cars oasnan AS 2.1, Bevezetés (Szabd G. Zoltan) Fe RAB 22, Linearis listak (Szabé G. Zoltan) sigan re 2.2.1. Vermek, sorok és kélvégd sorok .... wR paresoairaw ian 9 258 2.22. Szekvencialis helylogialés .............65 easiest LO 2.23. LAncolt helylogialas - ag ep SER 2.2.4. Ciklikus listak . enanmmmnacin 2 2.25. Kétszeresen lancolt listak ........ enews orn 2.26, Témbdk és ortogonalls listak oa ¢ stprsowees 20 2.3, Fak (Gyarfas Andras, Szabé G. Zoltan) Se +++ 330 2.3.1. Binaris (ak bejarasa z aa aR ARRA ane SB 2.32. Fak roprezentacidja binaris faval ts ee 2.33. Fak tovabbi reprezentacidi ...... a af senna + GBB) 2.3.4, Fak alapveté matematikai tulajdonsdgai ........... 0205+ ee.) 23.4.1. Szabad {ak ass aes ane 381 BA2. Wranyltott AK... eee eeeeee ee arene 88 "2.3.43, A KOnig-lemma .... ai een el ricoh Be ton "2.3.4.4, Fak leszamldlasa ..... 0.66.2 .005 : cea EAA: HS 2.3.45. Uthossz .........+. sis iss ‘ 416 2346, Torlenet és bibliogratia | sions AEB 23.5. Listak és hulladékgydjtes . wos 424 24, Tobbszbr6sen lancolt struktirak (Turdn Tamas) 4 25. Dinamikus tarkiosztas (Székely Laszi6) .... ite ceitau acini, SED 26. Torténeti megiegyzések és bibliografia (Turan Tamas) 474 Mogolddsok a ‘ i sermons MED A) Fliggelék ~ Index a jeldlésekhez 625 B) Fliggelék - Numerikus tablazatok .........- 630 ‘Targy- 6s névmutaté ’ # wesw sattimemacmns OB: Megtiszteltetésnek érzem, hogy kényvemet leforditottak magyarra 6s remélem, hogy a szamitéstechnikaval foglalkoz6 magyar olvasoknak éppolyan érdekfeszit6 lesz a konyv tanulmanyozasa, mint sz4momra a megirasa volt. A forditas a masodik, javitott amerikai kiadas alapjan készuilt. Azéta szamos Oj eredmény szilletett, mégis Ugy gondolom, hogy még jo ideig nem veszit érvényességébsl. Az amerikai szakkitejezéseket nem lehet kénnyi egy idegen nyelvre atultetni, ezért kulon készénet jar a forditéknak. A hozzdm eljuttatot! megiegyzések alapjan azt gyanitom, hogy az Ondk forditasa valészindleg a kényy eddigi legjobb valtozata. DONALD E. KNUTH 1, Usd fel a kényvet 2. Olvasd cl a avii-xix old. 4, Keuld el az N-edik fejezetet 5, Erdekes? Ten 7. Kea} ij srakaszt Eldszbrre NI i Vege a fejezetnek 18, Kinygjt6zhatsz. Nem 16, Noveld N-et. 15. Aludj. 14, Parad t vagy? Nem IL Fusd at a mat. eredménycket 12, Dolgozd ki |_____=1 13, Ellensriad a feladatokat Ja eredményeker . Folyamatabra a kényvsorozat olvasasihoz AKONYV OLVASASANAL KOVETENDO SORREND 19 A kGnyv olvasdsandl kévetendé sorrend 1. Kezdje el az eljaras olvasasat, hacsak nem kezdte mar amtgy is el. Hiien Kovesse az eldirt sorrendet. (Ilyesfajta eljarasokkal és kiséré folyamatabrak- kal talalkozunk majd a kényvben lépten-nyomon.) 2, Olvassa el a ,,Megjegyzések a feladatokhoz” cimu részt. 3. Legyen N=1. 4. Kezdje el olvasni az N-edik fejezetet. Ne olvassa el a fejezet elején talalhaté idézeteket. 5. Erdekli a fejezet temaja? Ha igen, menjen a 7. lépésre; ha nem, a 6.-ra. 6. NS2? Ha nem, menjen a 16. lépésre; ha igen, tanulmanyozza at mégis ezt a fejezetet. (Az 1. és 2. fejezet fontos bevezeté tudnivalékat tartalmaz, tovabba az alapveté programozasi médszerek Attekintését. Legalabb a jeld- lésr6l és a MIX-rdl sz616 szakaszokat fussa at.) 7. Kezdje el a fejezet kvetkezé szakaszét olvasni; ha elérte a fejezet végét, menjen a 16. lépésre. 8.,,*”-gal jelélt a szakasz szima? Ha igen, elsd olvasasra kihagyhatja ezt a szakaszt (viszonylag specidlis kérdéseket érint ugyanis, melyek érdekesek bar, de nem elengedhetetleniil fontosak); menjen vissza a 7. lépésre. 9. Van matematikai hajlandésdga? Ha nincs, ha a matematika a maga szdmara kinaiul van, menjen a 11. lépésre, egyébként a 10. lépésre. 10. Ellen6rizze a szakasz matematikai eredményeit (a hibakat pedig jelentse a szerz6nek). Menjen a 12. lépésre. M1. Ha a jelen szakasz bévelkedik matematikai szimitasokban, inkabb hagyja ki a levezetéseket. Ennek ellenére j6 lesz, ha megismerkedik a szakasz fontosabb eredményeivel; ezeket rendszerint megtalalja az elején, vagy a nehéz részek végen, délt betiikkel szedve. 12. Dolgozza ki a szakasz végén tallhat6 ajanlott feladatokat, az atmutatast nyljté Megjegyzések figyelembevételével (amit a 2. lépésben olvasott). 13. Miutan befejezte a feladatok megolddsat, vesse egybe a valaszait a megolda- sokat tartalmaz6 megfelelé szakasz eredményeivel (ha az megadja a megol- 20 A KONYV OLVASASANAL KOVETENDO SORREND dast erre a problémara). Olvassa el azokat a megoldasokat is, amelyek kidolgozasara nem jutott ideje. Megjegyzés: A legtdbb esetben, mielétt még nekifognank az n+ 1-ediknek, célszerii az n-edik feladat megoldasaval meg- ismerkedni — igy a 12-13. lépések parhuzamosan hajtandék végre. 14, Elfaradt? Ha nem, menjen vissza a 7. lépésre. 15. Menjen aludni. Aztan keljen fel, és térjen vissza a 7. lépésre. 16. Névelje N-et eggyel. Ha N = 3, 5,7, 9, 11 vagy 12, fogjon hozza a kovetkez6 kGtet olvasasahoz. 17. Ha NS12, menjen vissza a 4. lépésre. 18. Gratulalok. Most vegye ra a baratait, vegyenek egy els6 k6tetet, és kezdjék el olvasni. Azonkiviil menjen vissza a 3. lépésre. Jaj annak, ki csak egy kOnyvet olvas. ~ GEORGE HERBERT, Jacula Prudentum (A bélosek dardai), 1144 (1640) Minden ma egyetlen hibdja, hogy — tul hosszi — VAUVENARGUES, Réflexions, 628 (1746) A kények: tri tas. Az élet az egyedilli nagysag. — THOMAS CARLYLE, Journal (1839) Megjegyzések a feladatokhoz KONYVEMBEN A FELADATOKAT tgy valogattam éssze, hogy azok mind 6nallé tanuldshoz, mind pedig szervezett oktatas keretében t6rténd feldolgozas- ra alkalmasak legyenek. Meglehetésen nchéz, ha nem lehetetlen, egy témat ugy megtanulni, hogy pusztin olvasunk réla, és megszerzett ismereteinket nem alkalmazzuk konkrét feladatokra. Ezen tilmenéen, a tanulas egyik legjobb médja, ha sajat magunk fedezziik fel az eredményeket. Ezért a feladatok kony- vem egyik legfontosabb részét képezik. Megkiséreltem tigy dsszevalogatni ket, hogy a leheté legtanulsagosabbak legyenek, s ugyanakkor megoldasuk élveze- tes, szorakoztaté lehessen. Sok kényvben a kénnyd és a hihetetleniil nehéz feladatok vegyesen szerepel- nek, Ez nem a legszerencsésebb, hiszen az olvaso joggal szeretné elére tudni, hogy mennyi id6t kell egy-egy feladatra aldoznia, kiilénben egyszertien atugorja szes feladatot. Egy tipikus példa erre Richard Bellman Dynamic Program- ming cimii kényve. Ebben a fontos és uttéré, jellegit kényvben egyes fejezetek vé »Feladatok és kutatasi témak” cimszo alatt megoldatlan problémak k6z6tt egészen trividlis feladatok is szerepelnek. A pletyka szerint Dr. Bellman egyszer azt valaszolta valakinck, aki megkérdezte, hogyan lehet a kénnyti és nehéz feladatokat megkiilénbéztetni: ,,.Ha meg tudja oldani, akkor egyszerit gyakorlat, ha pedig nem tudja, akkor kutatasi téma.” TObb érv szol amellett, hogy konyvemben szerepeljenek kénnyti gyakorlatok és nehezebb kutatasi témak is. Szeretném azonban az olvasot megkimélni attol, hogy énmaginak kelljen ezeket szétvalasztani. Ezért az egyes feladatokat osz- talyzattal minésitettem. Az osztalyzatok jelentése a kévetkezé: A feladatokat mindsité osztdlyzatok 00 Ezek rendkiviil egyszerit gyakorlatok, amelyek azonnal megyvalaszolhatok a széveg megertése utin. Majdnem mindig elvégezhetdk fejben is. 22 MEGJEGYZESEK A FELADATOKHOZ 10 Egyszeri feladat, amelyhez csak azt kell végiggondolni, hogy éppen mit olvastunk. Megoldas legfeljebb 1 percig tart, néha papirra és ceruzara is sziikség lehet. Atlagos nehézségii feladat, amely azt ellendrzi, hogy az olvasé jél értette-e meg azt, amit olvasott. Ennek ellenére 15...20 percet is igenybe vehet a teljes valasz megadasa. Nehezebb vagy bonyolultabb feladat. Kielégité megoldasahoz esetenként tébb mint két ora kell. Egészen nehéz vagy hosszadalmas feladat, amely alkalmas, Elvarhat6, hogy egy hallgaté belathaté idén beliil megoldja, de megoldasa nem trivialis. 50 Olyan kutatasi téma, amely a szerzé tudomasa szerint a kényv irisa idején még nem volt kielégitéen megoldva, bar tabben probilkoztak vel ezeket megoldja, annak érdemes publikalnia is Gket. E kényv szerzdje mel értesiilne errél a leheté leghamarabb (amennyiben a megoldas helyes). Mas osztalyzatok jelentése interpolaldssal kaphato meg. {gy pl. a 17 osztaly- zat egy olyan feladatra utal, amelyik az atlagosnal kissé kénnyebb. Az 50 osztalyzati problémak egy kés6bbi kiaddsban a 45 osztalyzatot kaphatjak, ha valaki id6kézben megoldotta dket. A szerzé megkisérelte az osztalyzatokat a legjobb tuddsa szerint megadni. Természetesen egy feladat szerzdje nem mindig tudja pontosan megitélni a feladat valédi nehézségét. Ezenkivil azt is figyelembe kellene venni, hogy kiilén- béz6 emberek kiilénb6z6 tipust feladatokat tudnak kénnyebben megoldani. Ezért az osztalyzatok inkabb csak iranymutatéak, és nem abszohit érvénytiek. Mindenesetre-a szerz6 reméli, hogy dsszességiikben jl jellemzik a feladatok nehézségi szintjét. Ezt a kényvet gy dllitottam éssze, hogy nagyon eltéré matematikai képzett- séggel rendelkezé olvasdk szdmara is hasznalhaté legyen. Ennek megfeleléen a feladatok egy része a matematikai érdeklédésti olvasék szamara késziilt. Ha ezekben tébb matematikai fogalom fordul elé, mint amennyi az elsésorban programozasi érdeklédéstiek szamara sziikséges, akkor az osztalyzatokat egy M betii elézi meg. Ha egy ilyen feladat megolddsdhoz fels6bb matematikai ismeret szlikséges, akkor a feladatot FM jelzéssel lattuk el. Az FM jelzés nem sziikség- képpen jelent nehézséget! Néhany feladatot a > nyilhegy eléz meg. Ez arra utal, hogy a feladat kiiléné- sen tanulsdgos, és ezért felettébb ajanlott. Természetesen nem varhato el, hogy az olvasé az sszes feladatot feldolgozza. Eppen ezért valasztottam ki az értéke- sebbeket. (Ez nem jelenti azt, hogy a t6bbi feladat megoldasarél lebeszélek valakit.) Mindenkinek ajanlom a /0-nél nem nagyobb osztalyzatu feladatok megoldasat. A tdbbi feladat kivalasztasdban a nyilhegyek adnak segitséget. A legtébb feladat megoldasa szerepel a ,, Megolddsok” cimii részben. Fellapo- zasukat azonban csak akkor javaslom, ha mar igazi eréfeszités tortént a feladat megoldasara, vagy a feladat megoldasdra nincs idé. A valasz elolvasdsa csak akkor lesz igazin hasznos, ha az olvas6 mar elkészitette sajat megoldasat, vagy legalabb er6feszitéseket tett erre. A megoldas néha egészen sziikszavi, vazlatos. Néha kevesebbre valaszol, mint amit a feladat kérdez, gyakran viszont tébbet Elképzelheté, hogy a megoldé tdkéletesebb megoldast ad a kényvben 2 3 3 4 $ ‘dolgozati témanak is MEGJEGYZESEK A FELADATOKHOZ 23 szereplonél, sét az is eléfordulhat, hogy a megoldasban hibat talal. A szerz6 szivesen fogad errél minden értesitést. A konyv késdbbi kiaddsaiban ezeket a tokéletesitett megoldasokat k6z6lni is Iehetne, esetenként a megoldd nevének feltiintetésével. A feladatok megoldasa soran mds feladatok dllitasa is felhasznalhi hacsak nem jeleztem ennek az ellenkezdjét. Az osztilyzatok hozzarendelé: nél ezt figyelembe is vettem. Eléfordulhat, hogy egy feladat osztilyzata alacsonyabb a kézvetlen megelézé feladaténal, még akkor is, ha ez a feladat az eléz6 eredményeire tamaszkodik. A kéd ésszefoglalasa: 00 Trivialis 10 Egyszerti (egy perc) 20 Atlagos (negyed ora) > Ajanlott 30 Kissé nehezebb M = Matematikai beallitottsagd 40 Szakdolgozati tema FM Felsébb matematika kell hozza 50 Megoldatlan probléma Feladatok >» 1. [00] Mit jelent az 20” mindsités? 2. [/0] Milyen haszna van egy tankényv feladatainak az olvas6 szamara? 3. [14] Bizonyitsuk be, hogy 13° = 2197. Altalanositsuk a valaszt. [Példa arra a rettenetes feladattipusra, melyet a szerzé megprobal elkeriilni.] 4. [M50] Bizonyitsuk be, hogy ha n cgész, n>2, akkor az x" + y" = 2" egyenletnek nines x, y, z megoldasa a pozitiv egészek kérében. 1, FEJEZET Alapfogalmak A matematikaban jaratlan emberek kéziil sokan azt képzelik, hogy mivel Babbage Gondolkod6 Gépének az eredményeket szdmszeré formaban kell megadnia, ebb6! kGvetkezik, hogy makédési elve inkAbb aritmetikai és numerikus, semmint algebrai és analitikus. Ez tévedés. A gép pontosan Ugy tud numerikus mennyiségeket elrendezni és dsszevegyiteni, mintha azok betik vagy barmilyen més altalanos jelek lennének; valojaban algebrai jeldlésben is kiadhatna eredményeit, ha annak megfeleléen lenne eldkészitve. ADA AUGUSTA, Countess of Lovelace” (1844) Szerezz gyakorlatot, az ég szerelmére, a kis dolgokban, s csak azutan tér ra nagyobbakra! EPIKTETOSZ, (Parbeszédek IV.i) 4.1, Algoritmusok K6nyviinket az algoritmus fogalmanak elemzésével kezdjiik, mert ez a fogalom alapvetd fontoss4gu a szdmitogép-programozashan. . Az ,,algoritmus” sz6 mar Snmagdban is nagyon érdekes. Ugy tiinhet egy pillanatig, hogy a logaritmus sz6t akarta valaki leirni, de nem sikeriilt neki, mert Osszezagyvalta az elsé négy betiit. 1957-ig az algoritmus sz6 nem is fordul eld a Webster-féle értelmezdszétérban. Csak a megfelelé angol sz6 (algorithm) archaikus valtozatat talaljuk meg (algorism). Ez az ige a kézépkori angolban azt jelentette, hogy arab szdmjegyeket hasznalva — tehdt nem abakusszal — szdmol. Az ujkor elejére a sz6 eredete elhomalyosult. Akkor a nyelvészek a sz A isdt olyan kombindciékkal kivantdk megfejteni, mint algiros [faradsé gos] + arithmos [szam], vagy éppen Kasztiliai Algor kirdly nevére akartak a szo eredetét visszavezetni. A matematikatérténet azéta meglelte az algorism sz6 valosagos forrasat: a 825 kOriil sziiletett Abu Ja far Mohammed ibn Musa al-Khwarizmi nevét. A név magyarul azt jelenti, hogy Ja far apja Mohammed, Moses fia, KhwArizm sziilétte. Egykor a kézép-dzsiai Aral-tavat hivtak Khwarizm-tonak, a Khwa- rizm nevil térség a t6tl délre, az Amu folyd medencéjében helyezkedett el. Al-Khwarizmi emlékét elsésorban hiressé valt konyve, a Kitab al jabr wa'l- mugabala (A révidités és térlés tudomanya) drokitette meg. Ebben a szerzé az els6- és masodfokt egyenlet megoldasanak rendszeres targyalasat nydjtotta, Az Oxford értelmezészétar szerint az algorism sz6 alaki és jelentéstani rom- lst szenvedett el azaltal, hogy ~ hibasan ~ az arithmetic sz6 helyett hasznaltak. Az algorism-r6l algorithm-ra valtozist nem nehéz megérteni, ha figyelembe vessziik, hogy a sz6 szdrmazasat elfelejtették. Az egyik régi német matematikai szotar, a Vollstdndiges Mathematisches Lexicon (Lipese, 1747), a kévetkez6 meghatarozast adja az Algorithmus sz6ra: ,ezen megjeldlés alatt foglalhato * Byron lednya. 26 ALAPFOGALMAK Ossze az aritmetikai miiveletek négy fajtaja, nevezetesen az dsszeadas, a szorzas, a kivonds és az osztas”. Az algorithmus infinitesimalis latin kifejezést ekkoriban ugy értették, hogy a ,,végteleniil kicsiny mennyiségekkel valé, Leibniz Altal bevezetett szamolas médja”. 1950-ig az algoritmus szohoz legg) rabban az euklideszi algoritmust tarsi- tottak, azt az Euklidesz Elemek cima kényvében (7. kényv, 1-2. tétel) szerepld eljarast, amely két szam legnagyobb k6z6s osztéjanak meghatarozasara szolgal. Tanulsdgos lesz most szemiigyre venni az euklideszi algoritmust. E Algoritmus (Euklideszi algoritmus). Adott két pozitiv egész szim, m és n, keresendé legnagyobb k6zds osztdjuk, vagyis a legnagyobb pozitiv egész, ame- lyik mindkettének osztéja. El. [A maradék keresése.] Osszuk el m-et n-nel, legyen a maradék r. (Ekkor persze 0 5. [12] Mutassuk meg, hogy az eldszdban talalhaté, a kényvek olvasasahoz adott iitmutato igazdbol nem algoritmus, mégpedig a Iehctséges dtbél harom ok miatt. Vegyiik észre, hogy formai eltérések is vannak az E Algoritmushoz képest. 6. [20] Mennyi Ts a szakasz végén talalhato jelolésméd szerint? 7. [M21] Legyen m adott, és n vegyen fel tetszdleges pozitiv egész értéket. Legyen Uy, az E Algoritmus alkalm: soran végrehajtott El. lepések dtlagos szima. Mutassuk meg, hogy U;, definicidja j6. Milyen kapesolatban van Uy 68 Ty? 8. [M25] Adjunk meg az m és n pozitiv egészek legnagyobb kézés osztdja kiszamitasira xelvégezhet6” formilis algoritmust a 0,, 9}, a), 6; megadasaval (3) szerint. Az input legyen az ab" string, vagyis m darab a utan All n darab b. Probaljunk minél egyszeriibb megoldast talalni. (Unmutatds: haszndljuk az E Algoritmust, de az El, lépésben oszts helyett az re—|m — n|, nmin (m, ) értékaddsokat hasznaljuk.) > 9. [M30] Legyenck Cy = (Qy, li, Q1,f;) & C2 = (Qo, Ia, Q2, fx) szdmitasi médszerek. Pl. C, jelentheti az E Algoritmust, mint (2)-ben, eltekintve att6l, hogy m és n nagysaga korlatozott, tovabba C, jelentheti az E Algoritmus szimitégépprogramkent valé meg- valésitasat. (Q, lehet a gép dsszes Allapotainak halmaza, vagyis a meméridk és regiszte- m mindig nagyobb, mint n, kiveve rek dsszes lehetséges dllapotinak halmaza; f; a gép allapotvaltozisinak leirdsa lehet; /, pedig a kezdédillapot lehet, beleértve a legnagyobb kézés oszté meghatérozisdra szolgal6 programot, valamint m és n értékét.) Adjunk halmazelméleti definiciot arra a fogalomra, hogy C, egy megvaldsitasa C,-nek. Ez intuitiven azt jelenti, hogy C, minden szamitasi sorozatat C, utanozza, atl a kiilénbségtél eltekintve, hogy esetleg tobb lépésben teszi meg a szmitast, és tobb informaciét drizhet. (Ezzel preciz értelmezését adtuk annak a fogalomnak, hogy ,,0z program megvaldsitja az Y algoritmust”.) ARAL 1.2. Matematikai eldismeretek E szakaszban a kés6bbi fejezetek sorin alkalmazott matematikai jeldléseket ismertetjiik, és levezetiink néhany alapvet6 formulat, amelyeket gyakran hasz- ndlni fogunk e kétetben. Akit nem érdekelnek a bonyolultabb matematikai levezetések, annak is meg kell ismerkednie kézelebbrél a kiilénbézé formulék jelentésével, hogy a levezetések eredményét fel tudja hasznalni. Két célra haszndlunk matematil 16léseket: (1) egy algoritmus részleteinek {) leirésara, (2) egy algoritmus mi leiré végrehajtdsi paraméterek elemzé- " sére. Az algoritmusok leirdsanal hasznalt jelélések egészen egyszeriiek, amint azt az el6z6 szakaszban el is magyaraztuk. Az algoritmusok m elemzésekor mis, specidlisabb jelélésekre lesz ziikségiink. A kétetekben ismertetett algoritmusok tulnyom6 tébbségét matematikai sza- mitasok kisérik, amelyek meghatarozzak, hogy az algoritmus varhatéan milyen gyorsan fog lefutni. Ezek a szamitasok a matematika majd minden dgat felhasz- naljak, és kiilén kényvre lenne szitkség mindazon matematikai fogalmak felépi- téschez, amelyeket egyik vagy masik helyen fel fogunk hasznalni. Mindazoniltal a szmitasok tobbsége az egyctemi algebraanyag ismeretében elvégezheté, és ha az Olvasé az elemi analizist jobbara ismeri, csaknem minden eléfordulé mate- matikai részt meg fog érteni. Csak néhany esetben lesziink kénytelenek a komp- lex fiiggvénytan, a csoportelmélet, a szimelmélet, a valosz inliségszamitas stb. mélyebb eredményeit felhasznalni. [lyen esetekben elemi médon elmagyarazzuk a szoban forgé témat, vagy mas informaciéforrdsokra hivatkozunk. Az algoritmusok elemzésé¢hez sziikséges matematikai eszkézdknek dltalaban jellegzetes zamatuk van. Gyakran fogunk véges sok racionalis szim Osszegzésé- vel vagy reKurziv relaciok megoldasaval talélkozni. Ezekre a témakérékre a matematikaoktatés soran hagyomanyosan kevés figyelmet forditanak. Ugy terveztiik tehat, hogy a kévetkezé pontok ,,mélyebben” mutassak be az ilyen problémakban hasznilatos szdmitasokat és médszereket, a definialt fogalmak hasznalataban pedig biztositsanak alapos gyakorlatot. Fontos megjegyzés: Bar a kévetkezé pontok meglehetds jartassagot biztositanak a sz mitogép-algorit- musok vizsgalatahoz sziikséges matematikai eszkéztarban, a legtébb olvasé ‘a Aulatni, hogy szoros kapesolat van a most kévetkezd programozas k6z6tt (kivéve az 1.2.1. pontot). Az Olvasé that: vagy elfogadja nek azt az allitasat, hogy az itt targyalt témak valéban rendkiviill fontosak, és alaposan attanulmanyozza a most kévetkez6 pontokat, vagy gyorsan défutja ezt a szakaszt, és kesébb (amikor a kévetkez6 fejezetekben mar lata a médszerek szimos alkalmazasat) esetleg kedvet kap ahhoz, hogy visszatérjen erre a szakaszra és intenzivebben is tanulmanyozza. Valésziniileg célszeriibb a masodik Ichetdséget valasztani, mert ily médon erdésebb az Olvasé motivaci ha pedig valaki a kdnyv elsé olvastisakor nil sok id6t tlt el ezzel az anyagrésszel, konnyen tigy érezheti, hogy sohasem jut el a szamitogép-programozas témakéréhez. A kdvetkezd pontok altalanos tartalmaval azonban mar elsé olvasasra is legalabb ismerkedjék meg az Olvas6, és probalkozzék meg némelyik gyakorlattal is. Forditsunk kiilénds figyelmet az 1.2.10. pontra, mert a késSbb ett elméleti anyag legnagyobb részének ez a kiindulépontja, Ezutan az 1.3. szakasz hirtelen elhagyja a ,,tiszta matematika” birodalmat, és belép a ,,tiszta szamitogép-programozas” teriiletére. nem fogja elsé pillanta 1.2.4, TELJES INDUKCIO 35, 1.2.1. Teljes indukcié* Legyen P(n) egy allités az n egész szimrél; P(n) lehet pl. az az allités, hogy wh-szet (n+3) paros szim” vagy az, hogy ,,ha n= 10, akkor 2"> 2”. Tegyiik fel, hogy be akarjuk bizonyitani: P(n) minden pozitiv egész n szdmra igaz. Ennek egyik fontos médja a kivetkez6: a) Bebizonyitjuk, hogy P(1) igaz; b) Bebizonyitjuk, hogy ,,ha a P(1), P(2), ..., P(a) allitasok mindegyike igaz, akkor P(n+ 1) is igaz”; ez a bizonyités minden pozitiv egész n szamra érvényes, Példaként tekintsiik a kdvetkez6 egyenldségsorozatot, amelyet sokan felfe- deztek, egymastél fiiggetleniil mar az dsiddktél kezdve. 1=1?, 143=2% 14+3+5 = 32, 1434547542, 143454749 = 52. @ Az ltaldnos szabilyt igy fogalmazhatjuk meg: L4+3+...4+(22-1) = n?, (2) Nevezziik most ezt az azonossagot P(n)-nek; be akarjuk bizonyitani, hogy P(n) igaz minden pozitiv n-re. A fentebb leirt eljarast kovetve: a) P(1) igaz, mert 1= 12.” 6) Haa PU), P(2), ..., P(n) allitasok mindegyike igaz, akkor specialisan P(n) is igaz, tehat fennall a (2) egyenldség. Mindkét oldalhoz (21+ 1)-et adva kapjuk: 143+...4+(2n—1)4(Qn41) = 2 +2nt1 = (nt 1), ami azt bizonyitja, hogy P(n+ 1) is igaz.” Ezt a médszert algoritmikus bizonyitasi eljérdsnak tekinthetjiik. Valéban, az alabbi algoritmus barmely pozitiv egész n szim esetén bizonyitast szolgaltat P(n)-re, feltéve, hogy a fenti a) és b) lépéseket mar kidolgoztuk: I Algoritmus (Bizonyitds konstrudldsa). Adott pozitiv egész n esetén az algorit- mus outputja annak bizonyitésa, hogy P(x) igaz. I. [Bebizonyitjuk P(1)-ct.] Legyen k — 1, és a)-nak megfeleléen végezziik el P(1) bizonyitasat. 12, [k=n2] Ha k=n, az algoritmus befejezddott; a kivant bizonyitist elvégez- tik, 13, [Bebizonyitjuk P(k + 1)-ct.] b)-nck megfeleléen végezziik el annak bizo- nyitast, hogy ,Ha a P(1), ..., P(k) dllitasok mindegyike igaz, akkor P(k+1) is igaz.” Végezziik el azt is, hogy ,,Beléttuk mar, hogy P(1), +5 P(k) igaz, igy P(e + 1) is igaz.” 14, [k megnévelése.] Néveljiik k-t I-gyel, és menjiink vissza az 12. lepés- hez. Ii. Bebizonyitjuk * Nom, [ 13, Bebizonyitjuk { Peet pe ff Pk+leet 14, Noveljiik 4-1 2. abra. Az I Algoritmus: igen teljes indukeié * A teljes indukci”-t néha (més nyelvekbdl val6 sz szerinti Forditéssal .matematikai indukeidnak” is mondjuk. (A fascerkesztd.) 36 ALAPFOGALMAK Nyilvanvalé, hogy ez az algoritmus minden adott n esetén bebizonyitja P(n)-et, ezért a bizonyitas a), b) alatt leirt technikaja logikailag helyes. A bizo- nyitasnak ezt a modjat teljes indukcidval valé bizonyitasnak nevezik. A,,,teljes indukcio” fogalmat meg kell kiilénbéztetni attol, amit a tudomany- ban induktiv kévetkeztetésnek neveznek. A tudos kiilénés megfigyelésekre tesz szert, és ,,indukcié” uitjan olyan dltalanos elméletet vagy hipotézist allit fel, tekintetbe veszi ezeket a tenyeket. Megfigyelhetjiik pl. az (1)-ben leirt 6t t, és ennek alapjan megfogalmazhatjuk (2)-t. Ebben az értelemben az ,indukcio” nem tébb, mint valakinek az adott helyzetre vonatkozo legjobb becslése; a matematikiban az ilyet tapasztalati eredménynek vagy sejtésnek nevezik. Nem art még egy példa. Jel6lje p(n) ,,n particidinak” szamat, mas szoval azt a szamot, ahany kiilénb6éz6 modon n-et pozitiv egész szamok dsszegeként a sorrendre valé tekintet nélkiil felirhatjuk. Mivel 5= 141414141 = 24+1+14+1= 24+2+1 = 34141 =34+2=44+1=5, azt tapasztaljuk, hogy p(5)=7. Az elsé néhany értéket konnyi megallapitani: PO)=1, p2)=2, pB)=3, p(A)=5, p(5)=7. yIndukcio” utjin most probaképpen felallithatjuk azt a hipotézist, hogy a p() sorozat a primszdmokon fut végig. Ezt a hipotézist ellendrizend6, kiszamitjuk p(6)-ot, és kim, p(6)= 11, sejtésiinknek megfeleléen. [Sajnos kideriil, hogy p(7)=15, ami mindent elront, és prébalkozhatunk az egésszel eléIrd1. Ez a probléma meglehetésen nehéz, bar $. Ramanujan szamos figyelemre méit6 tényt sejtett meg vagy bizonyitott be a p(n) szamokrol; béveb- ben |. G. H. Hardy, Ramanujan (London: Cambridge University Press, 1940), 6. és 8. fejezet.] Masfeldl a ,,teljes indukcié” merében kiilénbézik a kézénséges ,,indukci 161”. A teljes indukcié nem csupan sejtés, hanem egy allitas kévetkezetes bizo- nyitasa. Sét valéjaban nem is egy Allitast bizonyitunk, hanem végtelen sokat, minden n-re egyet. ,,Indukciénak” csak azért nevezik, mert az embernek eldszdr el kell déntenie, mit is akar bizonyitani, csak azutdn alkalmazhatja a teljes indukcié technikajat. Ennél eva C kOnyvben az indukcid szot csak akkor hasznaljuk, ha teljes indukcié utjan térténd bizonyitasrél beszéliink. A (2) egyenléséget geometriai uiton is be lehet bizonyitani. A 3. dbra n=6 esetére n? szimu cellat mutat be, melyeket 1+3+...+(2n—1) szamui cellat tartalmazé csoportokba osztottunk. Végsé soron azonban ezt az Abrat csak akkor tekinthetjiik ,bizonyitasnak”, ha megmutatjuk, hogy ez a konstrukcié minden n-re keresztiilvihet6, ez pedig lényegében ugyanaz, mint az indukcid uitjan térténd bizonyitas. A (2) egyenldségre adott bizonyitasunk b)-nek csak egy specialis esetét hasz~ nalta ki; azt mutattuk meg, hogy a P(n+ 1) allitas igazsiga pusztan P(n) igaz voltabol is kévetkezik. Ez a fontos egyszeri eset gyakran eléfordul, kovetkez6 példank azonban jobban mutatja a médszer hatékonysagat. Az Fo, Fi, F2, ..- Fibonacci-sorozatot a kdvetkezé szabillyal definialjuk: Fy=0, F,=1, minden tovabbi elem pedig a megeléz6 kettd dsszege. [ly médon a sorozat eleje: i) —_—_——_——_———_—_———"— Stucco ST 3. dbra, Pératlan scimok Osscege négyzetszim_ 0,1, 1, 2,3, 5,8, 13, .... A sorozatot részletesen az 1.2.8. pontban vizsgaljuk majd. Most azt akarjuk bebizonyitani, hogy ha ®-vel a (1 +5)/2 szdmot jelél- jiik, akkor F,so" QB) minden pozitiv egész n-re. Ha n=1, akkor F,=1=©°=6"~', az a) lépést tehat megtettik. Most a b) lépés kGvetkezik. P(2) is igaz, mert F,=1<16<'=¢?~'. Ha most P(1), P(2), -.-, P(n) igazak, és n>1, akkor specidlisan P(n—1) és P(n) is igaz, tehat F,_,<@"-? és F,<@""!, Az egyenlétlenségeket dsszeadva: Fai = Fy-i tk, SO 74+0"" | = O71 +6). (4) A @ szam fontos tulajdonsaga (valdjaban ezért valasztottuk ezt a szamot ehhez a problémahoz), hogy @ = O+1, (5) Beirva ezt (4)-be, azt kapjuk, hogy F,,, < ", ami éppena P(n+ 1) allitas. Ab) lépést tehat megtettiik és igy (3)-at teljes indukciéval bebizonyitottuk. Vegyiik észre, hogy a 5) lepéshez itt kétféleképpen kézelitettiink: kézvetleniil bebizonyi- tottuk P(n+1)-ct az n=1 esetre, és induktiv médszert alkalmaztunk n> I-re. Erre azért volt sziiks¢g, mert n=1 esetén nem hivatkozhattunk P(n—1) = = P(0)-ra. Most ratériink arra, hogyan lehet algoritmusokra vonatkoz6 tényeket teljes indukciéval bebizonyitani. Tekintsiik az euklideszi algoritmus kévetkezé dltala- nositasat: E Algoritmus (Kiterjesztett euklideszi algoritmus). Adott két pozitiv egész szaim, m és n. Kiszamitjuk legnagyobb kézés osztoju- kat, d-t, és két olyan egész a és b szimot, hogy am+bn = d legyen. El, [Elokészités.] Legyen a'-b<1, ab'—-0, com, den. E2. [Osztas.] Osszuk el c-t d-vel, és legyen a hanyados g, a maradék pedig r. (Ekkor ¢ = qd+r,0Sr1, és m nem tébbsz6rése n-nek. Ilyenkor viszont az els6é végrehajtas utan c — n és d — rlesz, és mivel r0, 00, ElLa=+0 ul com bl 60 dwn 2 Pada Dh a= sam -+bn=d, aim+ bn=e=qd+r, E2, q = hanyados (c+) 0, Inko(e.d) = Inko (nin), 4. bra. Az E Algoritmus folyamatabraja, olyan Allitisokkal megcimkézve, amelyck az algoritmus helyességét bizonyitjik rajat tekintjiik, és minden nyilat egy olyan dllitassal cimkéziink meg, amely a dolgok pillanatnyi allasira vonatkozik abban az idépontban, amikor az algorit- mus végrehajtasa a szban forgé nyilon athalad. A 4. abran ezeket az allitasokat Al, A2, ..., AG cimkékkel littuk el. (Valamennyi dllitashoz hozzatartozik az a tovabbi kikétés, hogy a valtozok egészek; ezt a kik6tést helykimélés céljabol hagytuk el.) A/ a kezdeti feltételeket adja meg az algoritmus végrehajtasanak kezdetén, A4 pedig azt illitja, amit a,b és d kimeneti értékeirdl bizonyitani szeretnénk. Az altalanos médszernek az a lényege, hogy a folyamatabra minden doboza- rol bebizonyitjuk: ha az illeté dobozba vezeté nyilakon elhelyezett dllitdsok barmelyike igaz volt, mielétt a dobozban jelzett miiveletet elvégeztiik volna, akkor a dobozbél kivezeté nyilakon elhelyezett allitasok mind igazak lesznek a miivelet elvégzése utdn. Igy pl. be kell bizonyitanunk, hogy akar A2, akar A6 volt igaz E2. elétt, abbol az kévetkezik, hogy E2. utdn A3 igaz lesz. (Jelen esetben A2 erdsebb allitas, mint AG, tehat A2-bd1 AO kévetkezik, igy elég bebizonyitanunk, hogy ha E2. eldt teljesiilt 46, akkor E2. utan teljesiilni fog 43. Vegyiik észre, hogy a d>0 feltétel A6-ban sziikséges, mar ahhoz is, hogy bebizonyitsuk, az E2-vel jelzett miiveletnek egyaltalan értelme van.) Meg kell mutatni azt is, hogy ha A3 teljesiil, és r=0, akkor teljesiil 44; hogy A3-bdl és r#0-bél kévetkezik AS stb. A sziikséges bizonyitasok mindegyike teljesen magatol értetddé. Ha a fenti, délten szedett kijelentést a folyamatdbra valamennyi dobozéra igazoltuk, akkor az algoritmus barmely végrehajtasa sordn mindegyik allités igaz lesz. A szamitas lépésszamara, mas széval azon nyilak szimara, amelyeken a 80 RORRUGAL Nr folyamatabraban keresztiilhaladtunk, indukciot alkalmazunk. Mikor az els6 nyilon, azaz a ,,Start”-bél kivezeté nyilon Athaladunk, az AJ Allitas igaz, mert mindig feltételezzitk, hogy bemené adataink megfelelnek az algoritmus kévetel- ményeinek; ilyen médon az elsé nyilon elhelyezett Allitas a nyilon val6 athala- daskor igaz. Ha az n-edik nyilat megcimkéz6 allitas igaz, akkor a délten szedett kijelentés folytan az (n+ 1)-edik nyilat cimkéz6 allitas is i Ha ezt az altalanos modszert hasznaljuk, akkor egy algoritmus helyességének bizonyitasa nyilvan elsésorban abbdl all, hogy megtalaljuk a folyamatabraba beirandé helyes allitasokat. Ha ezt az ,,induktiv ugrast” végrehajtottuk, jofor- man rutinfeladat bebizonyitani, hogy egy dobozba vezetd barmely allitasbol kévetkezik barmely, a dobozbol kivezet6 allitas. Valojaban maguknak az allita- soknak a kital: is jrészt rutinfeladat, ha a nehezebbek kéziil néhanyat mar megtalaltunk. Példankban nagyon egyszerii kitalalni, mi legyen A2, 43, A4 és AS, feltéve, hogy Al és AG mar megvan. A bizonyitas ,,kreativ” része az A6 Allitas, minden mast elvileg mechanikusan is el lehet végezni. Kényviinkben ezért a legtébb bemutatasra keriilé algoritmusra nem is probdlunk részletes formalis bizonyitast k6z6lni. Elegendé ismertetni azt az induktiv allitast, amely a bizonyitas kulesat jelenti. Ezt vagy az algoritmust kévetd szdveg fogja tartal- mi vagy magaban az algoritmus szdvegében fogjuk zardjeles megjegyzés formajaban kézélni. Azalgoritmusok bizonyitasara felvazolt elvi eljardsnak van még egy vonatko- zasa, ami talin még fontosabb: azt az utat mutatja, ahogy egy algoritmust amegérthetiink”. Emlékeztetink az 1.1. szakaszra, ahol évtuk az Olvasot, ne- hogy ugy probaljon egy algoritmust olvasni, mint egy regényt; ajanlatos egy-ket probaadattal kiprobalni az algoritmust. Erre kifejezetten azért van sziikség, mert az algoritmus kisérleti végrehajtésa hozzdsegit ahhoz, hogy magunk fogal- mazzuk meg az allitasokat. A szerz6 szilard meggydzédése, hogy az ember csak akkor érti meg igazan, miért miikédik helyesen egy algoritmus, ha eljutott oda, hogy gondolatban beirta a megfelelé Allitasokat, gy, ahogy az a 4. abran lathaté. Ennek a szempontnak fontos pszichologiai kévetkezményei vannak arra nézve, hogyan kell egy algoritmust masnak atadni (vagy sajat magunk szimara megOrizni). Azt jelenti pl., hogy ha egy algoritmust valaki mdsnak magyarazunk, akkor a kulcsillitésokat, amelyck nem vezethetk le kénnyen és automatikusan, kiilén ki kell emelniink. Ha az E Algoritmusrol beszéliink, akkor A6-ot is meg kell emliteniink. Az Algoritmusra vonatkoz6 legutobbi bizonyitasunkban azonban az éber Olvasé tatongé lyukat fedezhetett fel. Sehol sem mutattuk meg ugyanis, hogy az algoritmus valoban véget ér. Mindéssze annyit lattunk be, hogy ha véget ér, helyes eredményt ad. (Vegyiik észre, hogy az E Algoritmus akkor is értelmes, ha az m, 1, ¢ és r valtozoknak megengedjiik, hogy pl. w+ 0 y2 alaku értékeket vegyenek fel, ahol uw és v egész. A q, a, b, a’ és b valtozok tovabbra is egész értéktiek maradnak. Ha most algoritmusunkat m = 12-6/2 és n = 20- 10/2 értékekkel inditjuk, ki fogia szimolni a d= 4—2/2 legnagyobb kézés osztdt”, tovibba az a= +2,b = —1értékeket. Az AJ, A2,..., A6 allitasok bizonyitasa e kiterjesz~ tett feltételek mellett is érvényes marad; ily médon az allitasok igazak az algoritmus barmely végrehajtasa sorin. Ha viszont az eljarast az m= 1 és n= [2 értékekkel inditjuk, a szimitis sohasem ér véget (1. a 12. feladatot). Az A1-t6l AG-ig terjedé allitasok bizonyitasa tehat logikailag nem bizonyitja, hogy az algoritmus veges.) A végesség bizonyitasat ezért dltaliban kiilén kezelik. Sok fontos esetben Iehetséges a fenti modszert tigy kiterjeszteni, hogy a végesség bizonyitdsa mellék- termékként adédjék, amint azt a 13. feladatban lithatjuk. Most mar kétszer bizonyitottuk be az E Algoritmus helyességet. Ha igazin kévetkezetesek akarunk lenni, azt is meg kell probalnunk bebizonyitani, hogy e szakasz els6 algoritmusa, az I Algoritmus helyes. Valéban, hiszen az 1 Algorit- must arra hasznaltuk, hogy minden, indukcidn alapulé bizonyitas helyességét megallapitsuk. Ha azonban megkiséreljtk bebizonyitani, hogy az I Algoritmus helyesen mikédik, megoldhatatlan problémaval talaljuk szembe magunkat — képtelenek vagyunk valéban bebizonyitani anélkiil, hogy ne alkalmaznank megint indukciot. Az érvelés circulus viciosus, vagyis ,,korbeforgé hibas okos- kodas” lenne. Ha a dolgokat kielemezziik, akkor rajéviink arra, hogy az egész szimok minden tulajdonsagat ugy kell bebizonyitani, hogy menet kézben vala- hol indukeiét hasznalunk. Ha ugyanis az alapfogalmakig ledsunk, kideriil, hogy az egész szamokat lényegében magaval az indukcidval definidljak. Ezért a yma- nak tekinthetjiik, hogy minden pozitiv egész szam vagy 1, vagy clérheté ugy, hogy az 1-b6l kiindulunk, és ismételten ,hozzdadogatunk” I-et. [Az egész szimok alapfogalmainak szigort tanulmanyozdsahoz lasd Leon Henkin On Mathematical Induction” cimti cikkét, AMM 67 (1960), 323-338.]* A teljes indukcié mégétt meghiizod6 gondolat tehat szoros kapcsolatban all a szimfogalommal. Francesco Maurolico olasz tudés volt az elsé eurdpai, aki szigort bizonyitashoz a teljes indukcidt hasznalta, 1575-ben. Pierre de Fermat a XVII. szézad elején tovabbi bizonyitasoknal hasznilta fel; 6 ,,a végtelen is médszeré”-nek nevezte. A fogalom vilagosan megjelenik Blaise Pascal kés6i munkaiban is (1653). A ,,teljes indukcio” kifejezést valoszintileg A. de Morgan alkotta meg a XIX. svdzad clején. [L. AMA 24 (1917), 199-207.; (1918), 197-201; Arch. Hist. Exact Sci. 9 (1972), 1-21.) A teljes indukei tovabbi részleteirél |. G. Polya Induction and Analogy in Mathematics (Prince- ton, N. J.: Princeton University Press, 1954), 7. fejezetét. ‘Az algoritmushelyesség bizonyit okon és az indukcion alapulé megfogalmazasa lényegében R. W. Floydté ik. Floyd kimutat- ja, hogy egy programozisi nyelv minden miivelete szemantikailag olyan logikai szabilyként definialhato, amely abbél, hogy a miivelet elvégzése el6tt milyen Allitasok voltak igazak, pontosan megadja, hogy mely allitésok fognak teljesiilni ‘a miivelet elvégzese utin [l. ,,Assigning Meanings to Programs,” Proc. Symp. ‘Appl. Math,, Amer. Math. Soc., 19 (1967), 19-32]. Hasonlé gondolatokat + Ha axiomatizilni akarjuk az egész szmok elméletét, t6bbnyire a Peano axiémarendszert haszniljuk. Ennck egyik allitasa éppen az, hogy a teljes indukcid helyes bizonyitasi eljiris az egész szimok elméletében. Az egész sedmok elmélete felépitésének elején még nincsenck tételeink, hogy azokra hivatkozhassunk. fey mindig az axiémikra kell hivatkoznunk, pl. a tcljes indukeié elvére Szigorian véve az, hogy ,ismételten hozziadogatunk 1-et", epvaltalin nem preciz, és éppen az ilyen kifejezése ket szoktuk teljes indukcids bizonyitasokkal helyettesiteni. L. Halmos, P. R.: Elemi halmazeimélet, Muszaki Kényvkiad6, Budapest, 1981. (A faszerkeszté.) p-—9GALN, fejtett ki tole fiiggetleniil Peter Naur, BIT'6 (1966), 310-316., aki az Allitasokat »dltalanos pillanatfelvételeknek” nevezi. C. A. R. Hoare a médszer egy fontos finomitasat, az ,invariansok” fogalmat vezette be; [l. pl. CACM 14 (1971), 39-45.]. Az induktiv dllitasok Stlete embrionalis formaban mar 1946-ban megije- lent, egy idében azzal, hogy H. H. Goldstine és Neumann Janos bevezette a folyamatabra fogalmat. Ezek az eredeti folyamatabrak ,,allitasdobozokat” tar- talmaztak, amelyek erds analogiat mutatnak a 4, abran lathato dllitasokkal. [L. John von Neumann, Collected Works 5 (New York: Macmillan, 1963), 91-99.) Feladatok 1, [05] Hogyan kell médositani a teljes indukcidval val6 bizonyitas gondolatmenetét, ha a P(n) dllitast minden nemmnegativ egész szimra be akarjuk bizonyitani, azaz nemcsak azn = 1,2,3,... esetre, hanem az n = 0, 1, 2, ... esetre is? » 2, [15] Mia hiba az aldbbi bizonyitésban? »Tétel: Legyen a tetszdleges pozitiv szam. rmely # pozitiv egészre a"~'=1. Bizonyitds: Ha n= 1, a'~'=a'~'=a= 1, Ha feltessziik, hogy a tétel igaz az 1,2, ..4 esetre, azt kapjuk, hogy Sgt Tp aernnt og oa = Lape a? J tehat a tétel (m+ 1) esetére is igaz.” 3. [18] Az alabbi, indukciéval térténd bizonyités helyesnek tiinik, n=6 esetén a bal oldalon mégis 3+4+73+25++35 = § all, mig a jobb oldalon 3-1 = 4. Megtalalja-e a hibat? ,,7étel: 1 1 1 3 toe fee tert 1x2” 2x3 (n-Dxn 27 Bizonyités: Indukcidt alkalmazunk n-re. n= 1 esetén 3/2—1/n = 1/(1 2); ha feltessziik, hogy a tétel igaz n-re, akkor 1 nx (n+ 1) 81, sate (i-h)-3 be 2 n° nntl) 2 n\n nti) 2 ntl 4. [20] Bizonyitsuk be, hogy a (3) egyenlétlenségen tilmenden, fennall F,>0"~?! 5. [2/] A primszam olyan egynél nagyobb egész szim, amelynek |-en és énmagan kiviil nines osztdja. E definicid és a teljes indukcié felhasznaldsiival igazoljuk, hogy minden egynél nagyobb pozitiv egész szim primszimok szorzataként irhaté fel. 6. [20] Bizonyitsuk be, hogy ha a (6) egyenléségek az E4. lépés végrchajtasa elétt fennalltak, akkor fennallnak a végrehajtas utan is. 7, [23] Adjunk zart formulat az 17, 2?— 17, 32-2? + 17, 4?—3?+ 27-12, 52-4? 4.32— —2°-+1?, stb. dsszegek értékénck kiszdmitasdra, és igazoljuk indukcidval helyességét. > 8. [25] a) Bizonyitsuk be Nikomakhosz (kb. i. sz. 100) alabbi tételét indukcié segitsé- gével: P= 1, 2? = 345,39 =749411, 49 = 13+15+17+19 stb. b) Ezt az eredményt felhasznalva igazoljuk azt a figyelemre mélté tételt, hogy B+2+ bn = (L424...40). ES IO 5, bra, A 8, feladat geometriai valtozata n=5 esetére (Megjegyzés: Az 5, bran ¢ formula latvényos, geometriai interpreticidja léthat, ame- lyet R. W. Floyd javasolt a szerzének. Az étlet Nikomakhosz tételéhez és a 3. Abrahoz kapesolédik. Tovabbi bizonyitisokat |. M. Gardner, Scientific American 229 (1973. okt.), 114-118.) 9. [20] Bizonyitsuk be indukcidval, hogy ha 0 10, akkor 2"> n°, 11. [30] Keressiink egyszerii formulit az alabbi dsszegre és bizonyitsuk be helyességet: 1g of gt 4 EV'Ont 1P I4+4 34440 5444 7 Qn+1)4+4 © 12. [M25] Mutassuk meg, hogyan Iehet az E Algoritmust a szévegben emlitett médon kiterjeszteni tigy, hogy w+v /2 alakii szimokat is be Iehessen vinni, ahol u és v egész szdmok, de a szdmitasokat mégis clemi titon lehessen végezni (azaz anélkiil, hogy /2 végtelen tizedes tort alakjat fel kellene haszndlni), Bizonyitsuk be, hogy a szamitas nem fejezédik be soha, ha m=1 és n=//2. »13, [M23] Bovitsiik ki az E Algoritmust Ugy, hogy hozzivesziink egy ij T valtozét és minden lépés elejére beiktatjuk a ,,7.- T+1” miiveletet. (T tehat gy mikédik, mint egy Gra, szamlalja a végrehajtott lépéseket.) Tegyiik fel, hogy T eredetileg nulla, tehat a4, dbra AJ dl wmn>0,n>0, T=0" lesz. Az A2 allitishoz hasonldképpen csatolni kell a T=1 kiegészité feltételt. Hogyan kell kiegészité feltételeket illeszteni az egyes Allitasokhoz gy, hogy az A/, A2, ..., A6 Allitésok mindegyike tartalmazza a TS felté- telt, és az indukcids bizonyitas tovabbra is érvényes legyen? (A szamitasnak ilyen modon legfeljebb 3n lépésben be kell fejezddnic.) 14. [50] (R. W. Floyd) Készitsiink olyan szAmitégépprogramot, amelynek bemenete valamilyen programozasi nyelven irott program tetszdlegesen kivalasztott dllitasokkal egyiitt, és amely megprobalja ezt kiegésziteni a tObbi sziikséges Allitdssal, amelyck segitségével be Iehet bizonyitani, hogy a program helyes. (Probiljunk pl. olyan progra- mot irni, amely be tudja bizonyitani az E Algoritmus helyességét, ha csak az Al és A6 dllitasok adottak. Részletesebben 1. R. W. Floyd és J. C. King dolgozatéban, az IFIP kongresszus kiadvanyaban, 1971.) >15. [FM28] [Altaldnositon indukcié.] A szévegben megmutattuk, hogyan lehet egy olyan P(n) allitést bebizonyitani, amely egyetlen n szimtol fiigg. Nem sz6ltunk azonban arrol, hogyan lehet a két egész szdmt0l fiiggd P(mn, n) dllitasokat igazolni. Ilyen esetekben a bizonyitast sokszor egyfajta ,kétszeres indukcidval” szoktik elvégezni, amely gyakran elég bonyolultnak tGnik. Van azonban egy, az egyszeri indukcidnal altalinosabb, fontos Ta ALAPFOGALMAK fogalom, amelyet nemesak erre az esetre Iehet alkalmazni, hanem olyan esetekre is, amikor nem megszamlilhaté halmazokhoz kapesolédé dllitast kell bebizonyitani, pl. a minden valds x-r5l sz616 P(x)-ct. Ezt az altaldnos fogalmat jélrendezésnek hivjak. Legyen ,,<” olyan rel z S halmazon, amely eleget tesz az alabbi feltételeknek: (i) Adott S-beli x, y, z elemekre, ha x 0 esetén pedig jeldlje T, az S-beli x, elemekbél alkotott dsszes (x1, Xo, «5 X,) mest. Legyen (14, x9, «... X,) < (i Yass Joh ha van olyan k, 10, b"=b"*1/b, ha n<0. (3) Indukciéval kénnyen igazolhato, hogy érvényesek a hatvanyozas szabilyai: B= BY (OP=d", (4) valahanyszor x és y egész. Ha wu pozitiv valés szim és m pozitiv egész, mindig létezik egy és csak egy olyan v pozitiv valés szam, u ,m-edik gyéke”, amelyre o"=u. Ezt tgy irjuk, hogy iu. Racionalis r szam esetére marmost b’-et a kévetkez6képpen definialjuk: prt yr, (5) Ez.az Oresmétél (kb. 1360) szrmazé definicié azért jo, mert "=", és mert a hatvanyozis azonossagai akkor is igazak maradnak, ha x és y tetszdleges raciondllis szimok (1. a 9. feladatot). juk végiil b*-et minden valds x-re. Tegyiik fel eldszdr, hogy b> 1; ha most x az (1) egyenlétlenséggel van megadva, azt akarjuk, hogy prtdsl1O+ td 2S prt di/tO+tdy/1 8+ 1/108 (6) legyen. Ez b*-et egyértelmiien kijeléli a pozitiv vals szamok k6zétt, minthogy a (6) egyenlflenségben az also és a felsd korlat kézdtti kiilinbség br tailtO¥... +dx/10*(H 1/10" — 1), mint azt a 13. feladatban latni fogjuk, ez a kiilonb- 46 ALAPFOGALMAK ség kisebb, mint b"*4(b—1)/104, és ha k-t elég nagyra valasztjuk, b*-et a kivant pontossdggal megkapjuk. Azt talaljuk pl., hogy 10°-30102999 — 1.9999999737..., 103193000 9.9999000198... (7) és ezért, ha b= 10, x=0.30102999..., akkor 10* értékét egy tizmilliomodnal nagyobb pontossaggal ismerjiik (bar azt még mindig nem tudjuk, hogy 10* tizedestort alakja 1.999..., vagy 2.000...). Ha 6<1, legyen 6*=(1/b)~*; ha pedig b=1, akkor 1*=1. E definiciékbol bebizonyithat6, hogy a hatvanyozas azonossigai (4) egyenletek) barmely valos x-re és y-ra érvényesek, A fenti gondolatokat 5* definidlasdra elészér John Wallis (1655) és Isaac Newton (1669) fogalmazta meg. Felvetddik a kévetkez6 fontos kérdés. Tegyiik fel, hogy adott egy y pozitiv vals szam; talalhato-e olyan x valés szim, hogy b*= y. A valasz igenld (feltéve, hogy #1), mivel, ha b*=y adott, a (6) egyenlotlenséget egyszertien visszafelé alkalmazzuk n és d;, da, ... meghatérozisara, Az eredményill kapott x szimot y 6 alapi: logaritmusdnak nevezziik, és gy jeliljik, hogy x=log, y. Definicié szerint: = be *= log, (6°). (8) A (7) egyenletek szerint pl. logic 2=0.30102999... . 9) A hatvanyozas azonossdgaibél kévetkezik, hogy . log, xy = log, xt+log,y, ha x>0, y>0, (10) . log, (c’) = ylogye, ha ¢>0. (11) A (9) egyenletben az Un. ,kézénséges logaritmus”, azaz a 10-es alapu logarit- mus szerepel. Azt varhatjuk, hogy a szimitogéppel végzett munka soran inkabb a bindris (2-es alaptt) logaritmus bizonyul hasznosnak, mivel szamitogépek esetében a binaris aritmetikat igen gyakran hasznaljak. Latni fogjuk, hogy a binaris logaritmusok va/éban nagyon hasznosak, de nem elsds ok, hogy a szmitogép-algoritmusokban igen gyakoriak a kétiranya cl A binaris logaritmusok oly gyakran fognak eléfordulni, hogy célszerii révi- debb jeldlést haszndlni erre a célra; ezért egyszeriien tigy fogjuk irni: lg x = log, x.* Felmeriil a kérdés, vajon van-e kapesolat Ig x és logy x k6z6tt; szerenesére van, mivel a (8) egyenléségnck megfeleléen: logio x = logyo (2'%*) = (logs x) (logo 2). Igy Ig x = logiy x/logyo 2, és altalaban is log, x = log, x/log, c. (12) A (10), (11), (12) egyenletek a logaritmusok kezelésének alapszabalyai. * A scakirodalomban gyakran haszndijak Ig.x-et a 10-es alapi logaritmus jel6lésére is, Emellett a log x jellést szoktuk az e alapii és (nchol) a 2-es alapa logaritmus helyett is haszndlni 1.22, SZAMOK, HATVANYOK ES LOGARITMUSOK 47 a0 (x, Ix) (0) (x, 0) 6. bra, Természetes logaritmus Kideriil azonban, hogy a legtdbb esetben nem is 10, é nem is 2 az az alap, amivel a legkényelmesebben Iehet dolgozni. Van egy valés szm, amelyet e=2.718281828459045...-vel jeldliink és amelyre a logaritmus tulajdonsdgai sokkal egyszeriibbek. Konvencié szerint az ¢ alapi logaritmust .,természetes alapt logaritmusnak” nevezziik, és a kovetkezdképpen jeldljiik: In x = log, x. (13) Az Olvasé valdsziniileg nem fogja ezt a meglehetésen nkényes definicidt (tulaj- donképpen még e-t sem definialtuk igazén) nagyon ,,természetes” logaritmus- nak talalni. Ki fog azonban deriilni, hogy In x annal természetesebbnek tiinik, minél tobbet dolgozunk vele. John Napier 1590 eldtt fedezte fel a természetes alapt logaritmust (némileg mas formaban és anélkiil, hogy a hatvanyozassal Ssszefiiggésbe hozta volna), sok évvel azelétt, hogy a logaritmusnak barmilyen mas fajtaja ismert lett volna, Két révid példat mutatunk, bizonyitas nélkiil, amelyek arra utalnak, hogy ez a logaritmus ,,természetes”: a) A 6. abran lathatd, besatirozott rész teritlete In x. b) Ha egy bank évi r kamatlabbal fizet kamatos kamatot félévenként, akkor minden betett dollar utan évenként (1 +r/2)? dollart fizet vissza; ha a kamatos kamatot negyedévenként szamoljak, (1 +7/4)* dollart kapunk; ha pedig a kamatot naponta tokésitik, (1+ r/365)°°> dollart kell visszakapnunk. Ha marmost a kamatos kamatot folytonosan sza- molnak, minden dollar utan pontosan e” dollirt kapnank (a kerekitési hibaktél eltckintve). Szdmitogép uralta korunkban néhdny bankar valban el is érte mar ezt a hatarformulat. A hatvany és a logaritmus valoban érdekes torténetérdl I. F. Cajori cikksoro- zatat, AMM 20(1913), 5-14, 35-47, 75-84, 107-117, 148-151, 173-182, 205-210. Azzal zarjuk le ezt.a pontot, hogy megvizsgiljuk, hogyan lehet a logaritmuso- kat kiszdmitani. Egy modszert mindjart sugallanak a (6) egyenldtlenségek: ha b*=y és az egyenlétlenség minden részét 10* hatvanyra emeljiik, azt kapjuk, hogy Bhs yl pms (14) valamilyen m egész szamra, Minddssze annyit kell tenniink, ha y logaritmusit akarjuk megtalalni, hogy y-t erre az irdatlan nagy hatvanyra emeljiik, és megke- ressiik, melyik az az m szim, amelyre az eredmény b” és b"*! kdzé esik. [ay m/10* a keresett logaritmus k tizedesjegy pontossiggal Ebbél a nyilvanvaloan gyakorlatilag hasznalhatatlan médszerbil kis médosi- 48 ALAPFOGALMAK tassal egyszerti és ésszerti eljarast kaphatunk. Megmutatjuk, hogyan lehet log, x-et kiszdmitani és az eredményt bindris tortként logyox = n+ by/2+b,/4+ by/8 +... alakban kifejezni. Eldsz6r x-ben is a tizedespontot jobbra vagy balra elcsusztat- juk annyival, hogy 1 4. [05] Mennyi (0.125)~2? 5. [05] A valés szimokat a tizedes kifejtés fogalmaval definiéltuk. Hogyan lehetne chelyett a bindris kifejtés fogalmaval definidlni? Adjunk olyan definiciét, amellyel (2)-t helyettesithetjiik. 6. [10] Legyen x = m+O.did>... é y = n+0.0,e3... két valos szim. Adjunk olyan szabilyt, amelynek segitségével a tizedes aibrazolis alapjin eldénthetjak, hogy x=, xy dll-e fen! 7. [M23] Feltéve, hogy x és y egész szimok, bizonyitsuk be a hatvainyozis azonossigait a (3)-ban adott definicidbél kiindulva! 8. [25] Legyen m pozitiv egész, szim. Bizonyi szimnak van m-edik gydke, mégpedig igy, hogy médszert adunk n, dj, d stb., tehit a aydk tizedesjegyeinek megkonstrudlasar: 9. [M23] Bizonyitsuk be a hatvanyozis azonossigait raciondlis x és y esetére, feltéve, hogy az azonossigok igazak, ha x és y egész. 10. "[/8] Bizonyitsuk be, hogy logy 2 nem racionalis, >1L. [10] Ha b=10 és x = log, 2, hany tizedesjegy pontossiggal kell ismerniink + értékét ahhoz, hogy b* elsé hirom tizedesjegyét meg tudjuk hatdérozni? be, hogy minden w pozitiv valés (Megjegyzés: & 10. feladat eredménye felhasznalhato.) 12. [02] Miért kévetkezik (9) a (7) egyenliségekbél? »13. [M23] a) Bizonyitsuk be, hogy ha x pozitiv valds szim, n pedig pozitiv egész, akkor i+x-1 < xn. 5) E tény felhasznalasdval igazoljuk a (6) egyenlétlenségeket kéveté megjegyzést. 14. [/5] Bizonyitsuk be a (11) egyenldséget. 15. [/0] Bizonyitsuk be, vagy céfoljuk meg: log, x/y = log, x-log,y, ha x,y >0. 16. [00] Hogyan fejezhetd ki logy) x In x és In 10 segitségével? »17. [05] Mennyi lg 32? log, 2? In e? log, 1? log, (—1)? 18. [/0] Igazoljuk, vagy cifoljuk meg: logy x = + gx. »19. [20] Ha n olyan egész szim, amely a tizes szimrendszerben felitva 14 jegybol dll, elfér-e az értéke egy olya it6gépi szoban, amelynek hossza 47 bit, plusz az eldjel? 20. [10] Van-e egyszerii dsszefiiggés logy 2 és logy 10 kézitt? 21, [15] Fejezziik ki logy (logy x) értékét In (In x)-szel, In (In 4)-vel és In b-vel. +22. [20] Bizonyitsuk be, hogy Igx © Inx+logyo x 1%-nél kisebb hibaval. (Ily médon a természetes logaritmus és a kozOnséges logaritmus értekeit tartalmazé tablazat felhaszndlhato arra, hogy a binaris logaritmus értékeit kézelitsiik.) 23. [M25] A 6. Abra alapjin adjunk geometriai bizonyitist arra a tényre, hogy Inxy = Inx+Iny! 24, [15] Hogyan médosithatd az ¢ pont végén bemutatott, a 10-es alapéi logaritmus kiszmitasira alkalmas médszer Ugy, hogy 2-es alapii logaritmust szolgaltasson? 25. [20] Tegyiik fel, hogy van egy binatis szimitdgépiink és egy olyan x szimunk, melyre 1Sx<2. Mutassuk meg, hogy az alabbi algoritmus felhaszndlhaté y — logy x kézelitésé- re. Az algoritmusban csak a léptetés, dsszeadis és kivonds miiveletek szerepelnck, és € miiveletek szima ardnyos azzal, ahiny tizedesjegy pontossigot az. eredményt6l megkive- teliink. Li. [Elokészités.] Legyen y-0, 2x I-gyel jobbra léptetve, k—1. BO ALAPFOGALMAK L2. [Vége van-c?] Ha x= 1, all}. 13. [Léptetés jobbra] Ha x—z < 1, legyen zz I-gyel jobbra léptetve, k — k +1, és ismételjiik meg ezt a Iépést. LA. [Az értékek csdkkentése.] Legyen x — x—z, zx k-val jobbra léptetve, to- vabba y — y+ log, (24/(2*=1)), és térjiink visa L2.-héz. il (Megjegyzés: Ez a médszer nagyon hasonlit ahhoz, amelyet a szimitégép hardverjében osztasra haszndlnak. Az dtlet Kenyegében Henry Biggstél szérmazik, aki ezt (nem binaris, hanem tizedes alakban) logaritmustiblizatok kiszdmitisdra haszndlta, amelyeket 1624. ben publikalt. A médszerhez egy kisegitd ¢ébldzatra van sziikség, amely tartalmazza a log, 2, log, (4/3), log, (8/7) stb. értékeket annyi értékes jegyre, amennyi a szdmitogép pontossaga. Az algoritmus szdndékos szdmitasi hibakat tartalmaz azaltal, hogy a szamo- kat jobbra lépteti, mig végiil x I-re csékken, és az algoritmus véget ér. A gyakorlatban azt kell megmagyarazni, miért fog a fenti algoritmus befejez6dni, és miért szolgaltatja log, x kézelité értékét.) 26. [M27] Az aritmetikai miiveletek pontossdga alapjin adjunk felsé korkitot az el6z6 feladatban szereplé algoritmus pontossigara. »27. [M25] Tckintsiik a szdvegben targyalt, logy x kiszamitasara szolgalé médszert. Jelilje xj az x, kiszdmitott kézelitését, amelyet a kvetkezdképpen hatirozunk meg: x(1=1) S 10°, < x(1 +2); és xf-nek a (15) egyenletck segitségével trténd meghatdéro- zsdnal (xj_,)* helyett yy-t haszndlunk, ahol GPU) Sm SOU +8) es 1S, < 100. Itty és ¢ kis konstansok, amelyek a kerekitésb6l vagy csonkitasbél szarmazé fels6 és als hibakorlétot tiikrzik. Ha a szimitas eredményét log’ x-szel jel6ljiik, mutassuk meg, hogy k lépés utén logio x +2 logs (1) —1/2* < log’ x S logy x+2 logyo (+2). 28. [4430] (R. Feynman) Allitsunk eld olyan médszert 6* kiszimitasira, ahol OS.x<1, amely csak léptetést, dsszeadast és kivonast hasznal (a 25. feladatban szereplé algorit- mushoz hasonléan). Elemezziik a médszer pontossagat. 29, [FM20] Legyen x 1-nél nagyobb valés szém. a) Mely 5>1 valés szdmra lesz b log, x minimélis? 4) Mely b> I egész szdmra lesz ¢ kifejezés minimilis? c) Mely 6>1 egész. szamra lesz (6+ 1) log, x minimalis? 1.2.3. Osszegek és szorzatok Legyen a,, az, ..., egy szimsorozat. Gyakran hasznaljuk az olyan dsszegeket, mint a, +a, +... -+4,, Ez az dsszeg témorebben is felirhaté a kdvetkezd jeldlés- sel:* a; a) 1sjsn * (1)-¢t olvassuk igy: szumma j egyenlé egyt6l n-ig ay (A forditd.) “Re \aproN ale 1.2.3. OSSZEGEK ES SZORZATOK 51 Ha n negativ vagy nulla, akkor az dsszeg értéke megallapodas szerint nulla. Altalaban, ha R(j/) egy j-re vonatkoz6 relacid, akkor a Ya (2) RD jeléli azon a,-k dsszegét, amelyekben j az R(j) relaciot kielégité egész. Ha ilyen egész nincsen, a (2) kifejezés értéke nulla. Az (1)-ben és (2)-ben szereplé / betti az tigynevezett ,,dsszegzési valtozé” vagy ,,futo index”, amit éppen ennek a jelélesnek a kedvéért vezettek be. Az dsszegzési valtoz6 jelélésére tobbnyire az i, j, k, m,n, r, 8, 1 betiiket haszndljuk, esctleg indexszel vagy vessz6vel ellatva. Az bsszegzés jeldlésére a Y-t és az Ssszegzési valtozdt J. Lagrange vezette be 1772-ben. A k6nyvben hasznalatos még a )'gqy a; (nyomdatechnikailag) témér jelélés (2) helyett. Szigoruian nézve az (1) jeldlés félreérthet6, hiszen nem teljesen vildgos, hogy az dsszegzés j-re vagy n-re torténik. A jelen esetben ugyan meglehetdsen ostoba dolog lenne (1)-et tigy tekinteni, hogy az dsszegzés n>j-re torténik, 4m Iehet olyan értelmes példat is késziteni, ahol nem viligos, hogy mi az Ssszegzési valtoz6, pl. Y'j 3. [/3] Magyardzzuk meg, hogy miért kaptunk két kiilénbéz6 eredményt az eléz6 gyakorlatban a b) atalakitasi szabaly ellenére! 4. [10] {rjuk ki a Y'jeldlés hasznalata nélkiil (10) mindkét oldalit az n=3 esetben mint Ssszegek dsszegét! 5, [FM20] Bizonyitandé, hogy az a) atalakitasi szabaly végtelen sorokra is érvényes, feltéve, hogy nem minden a, nulla. 6. [FM20] Bizonyitand6, hogy a d) dtalakitasi szabaly végielen sorokra is érvényes, inter hogy a négy 6sszegb6l valamelyik hdrom étezik. [FM23] Bizonyitandd, hogy egész c mellett Yay a; = Dre-p &e-» Meg vegtelen ce esetén is. + (16)-ot olvassuk igy: produktum a, azon j-kre, amelyekre az RU) relici6 teljesil. (A forditd.) 1.23 OSSZEGEK 8. [FM25] Mutassunk példat olyan végtelen sorra, amelyre (7) nem igaz. > 9. [05] Ervényes-e (14) bizonyitasa az n= —1 értékre ii 10. {05] Ervényes-e (14) bizonyitasa az n=—2 értékre is? 11. [03] Mi dlljon (14) jobb oldalan, ha x= 1? 12. [10] Mennyi 1+ 1/7-+ 1/49-+1/343+...+(1/7)"? 13. [J0] Feltéve, hogy mSn, (15) segitségével szimitsuk ki a kdvetkezd Lensisnd: 14, [/5] Az elézé feladat eredményénck felhaszné Osszeget: Yimgisn Drsksalk 15. [M22] Szimitsuk ki kis n-ekre az 1-2+2+2?-+3-29-+...+n2" dsszeget. Eszreve- sziink-e valamilyen szabilyossigot? Ha nem, probaljuk megtalilni azon az tton, amely a (14) formulihoz vezetett. 16. [M22] Bizonyitsuk be indukeié alkalmazésa nélkiil, hogy x I-re rw nxt*?—(nt Ix" + x ogjsn Gy szeget: wal szimitsuk ki a kévetkezd 17. [M00] Legyen S egy egész szdimokbél all6 halmaz. Mennyi Dy-s 1? 18, [M20] Hogyan kell (9)-nek megfeleléen felcserélni az Ssszegzés sorrendjét, ha R(i) az a relicid, hogy ,i osztdja n-nek”, és S(i, ) az a relicid, hogy ,,1 31. [M23] Fejezziik ki Dy res, B pedig egy nx mcs miitrix. Adott 1S/y.Jay es jg St esetén jelilje 4;,,,. ;, azt az mx m-es matrixot, amely A j,-edik, ..., jq-edik oszlopabol all, ill. By), j,, azt"az mx m-es matrixot, amely B jy-edik, .... jedik sorabol all. Bizonyitands, hogy det (AB) = & det (Aj,;,..j,,) det (Bj, i... jg.) LS 0, akkor 0Sx mod p<); b) ha y<0, akkor 0=x mod y> y; c) az x—(x mod y) mennyiség y egész szimit tbbsz6rdse, ezért felfoghatjuk ugy, hogy x mod y az x-nek y-ra vonatkoz6 osztasi maradéka. Igy a ,mod” jél ismert miivelet az egészek kérében: 5 mod 3=2, 18 mod 3=0, Q) —2mod 3=1. xmod y=0 pontosan akkor, ha x tébbszérése y-nak, mas sz6val pontosan akkor, ha y osztéja x-nek. A mod” miivelet tetszdleges valds x, y a trigonometrikus fiiggvényekre felirhato tga Az xmod | mennyiség az x tortrésze, (1) szerint x = Lx]+(x mod 1). (4) A szimelméletben a modulo jelélés mast jelent. A kongruencia szmelméleti fogalmat a kévetkezé moddon fejezziik ki: x=y (modulo z). (5) amokra alkalmazya is hasznos, pl. g (x mod z). 62 ALAPFOGALMAK jelenti, hogy x mod z=y mod z, vagyis az x— y kiilénbség egész szamu se z-nek. (5)-dt igy olvassuk: x kongruens y-nal modulo z. Vegyiik mot at a kongruenciak legegyszeriibb tulajdonsdgait. Ezeket a konyv- ben a szimelméleti megfontolasok soran fogjuk felhasznalni. A kévetkezé kifejezésekben eléfordulé valamennyi valtoz6 egész. Két egész szamot relativ primnek neveziink, ha nines ki , vagyis legnagyobb kézés osztojuk I. A relativ prim egész szamok fogalma nem Iehet teljesen tijszerii, hiszen egy tértet akkor mondunk egyszertisithetetlennek, ha szdmldldja és nevezdje relativ prim. A Szabaly, Ha a=b és x=y, akkor a+ y = b+y és ax=by (modulo m). B Szabaly. =by és a=b, valamint a és m relativ prim, akkor x=y (modulo m). C Szabaly. a=b (modulo m) pontosan akkor, ha an=bn (modulo mn), feltéve n #0. D Szabily. Ha r és s relativ prim, akkor a= (modulo rs) pontosan akkor All fenn, ha a=b (modulo r) és a= (modulo 5). AZA Szabilly azt mondja, hogy az dsszeadas, kivonas, szorzas (és igy persze a pozitiv exe kitevés hatvanyo; modulo m éppen ugy végzendé el, mint a kéz6nséges dsszeadas, kivonds, szorzas, hatvanyozas. A B Szabaly az osztassal foglalkozik. Azt mondja, hogy bizonyos esetekben (nevezetesen, ha az o: a modulus relativ prim) a kongruencia két oldalat az osztéval egyszeriisiteni lehet. A C és D Szabalyok a kongruencia modulusinak megvaltoztatasakor fennallé dsszefiiggéseket targyaljak Példaként-e szabalyok alkalmazasara egy fontos tételt bizonyitunk. F Tétel (Fermat tétele, 1640). Ha p primszim, akkor a? =a (modulo p). Bizonyitds. Ha p osztdja a-nak, nyilvin a =0=a (modulo p). [gy elegends az amod p#0 esettel foglalkoznunk. Mivel p primszam, ez azt jelenti, hogy a és p telatiy primek. Tekintsiik a k6vetkez6 szamokat. Omodp, amodp, 2amodp, ..., (p—l)amodp. (6) Ez a p szam mind kiilénbézé, mert ha ax mod p = ay mod p, akkor az (5) definicié szerint ax=ay (modulo p); innen a B Szabaly x=y (modulo p)-t adja. Mivel (6)-ban p darab kiilénb6zé6 p-nél kisebb nemnegativ egész all, és latszik, hogy az elsé kGziiliik nulla, adédik, hogy a tébbi szim az 1,2,...,(p—1) valamilyen sorrendben. Ezért az A Szabaly szerint (a) (2a)...((p—1)a) = 1-2+...:(p—1) (modulo p). (7) Beszorozva a-val (7) mindkét oldalat, kapjuk: a(1-2+...°(p- 1D) Sa(1-2-...-(@-1)) (modulo p), (8) ami mar bizonyitja is a tételt, hiszen az 1, 2, ..., (e—1) tényezdk p-vel relativ primek, igy a B Szabily szerint veliik egyszeriisiteni Iehet. Il A 17-21. feladatokban folytatjuk az elemi szamelmélet alapjat alkot6 szaba- lyok kifejtését. 1.2.4. EGESZRESZ-FUGGVENYEK ES ELEMI SZAMELMELET 63 datok 1, (00] Mennyi [1.1 J, |— 1.1, [— 1.1], [0.99999], ill. [Ig 35? > 2. [01] Mennyi[|x[]? 3. [M10] Legyen n egész és x valés szim. Bizonyitandd: a) |x] 4. [MJ0] Az eldzé feladatot felhasznalva bizonyitandé |—x] = —[x]. 5. [J6] Adjunk meg olyan egyszerti képletet, amely egy adott x pozitiv valés szmhoz a hozza legkGzelebb levd egészet rendeli. Azaz, az eredmény legyen |x|, ha xmod | < < 1/2, és legyen[x], hax mod 1 = 1/2. Aképletnek mindkét esetben mukédnie kell. Mit ad a képlet, ha x negativ? > 6. [20] A kévetkez5 egyenldségek kéziil melyik teljesiil minden pozitiv valés x-re? a) Wald = Was ») THEST] = (Vk ©) [dl = 11 7. [M15] Mutassuk meg, hogy |x|+L»| $ [x+y], és egyenléség akkor és csak akkor All fenn, ha x mod 1+y mod 1 < 1. Ervényes-e hasonlé dsszefiiggés a fels6 egészrészre? 8. [00] Mennyi 100 mod 3, 100 mod 7, — 100 mod 7, ~ 100 mod 0? 9. [05] Mennyi 5 mod —3, 18 mod —3, —2 mod —3? »10, [/0] Mennyi 1.1 mod 1, 0.11 mod .1, 0.11 mod —.1? 11, [00] Mit jelent megallapodasaink szerint ,,x=y (modulo 0)"? 12. [00] Melyek az, I-hez relativ prim egészek? 13. [4100] Allapodjunk meg abban, hogy 0 és legnagyobb kézis oszt6ja |n|. Melyek a O-hoz relativ prim egészek »14, [/2] Ha xmod 3 = 2 és — 5 = 3, akkor mennyi x mod 15? 15. [10] Bizonyitandé 2(x mod y) = (zx) mod (zy). (Vegyiik észre, hogy a C Szabily egyenes kévetkezménye ennek a disztributiv térvénynek.) 16. [M0] Legyen y>0. Bizonyitsuk be, hogy ha (x—z)/y egész és 0<2 1 egész a tényczdk sorrendjétél eltekintve egyértelmiien irhaté fel primsza- 64 ALAPFOGALMAK mok szorzataként, tehat egyctlen olyan felirisa van n-nck, hogy n=p,p2.-.Px, ahol minden p, prim és py Sp2-..SPx- 22. [M/0] Mutassunk példat arra, hogy a B Szabalyban nem Iehet elengedni azt a kikétést, hogy a és m relativ prim. 23. [M/0] Mutassunk példat arra, hogy a D Szabalyban nem lehet elengedni azt a kik6tést, hogy r és s relativ prim. »24. [20] Milyen mértékben Iehet az A, B, C, D szabalyokat tetszdleges valds szimokra altalanositani? 25. [M00] Mutassuk meg, hogy az F Tételnek megfelelden a”"' mod p = 1, ha a nem t8bbsz6rdse a p primszdmnak, ill. a”! mod p = 0, ha tdbbszbrdse. 26. [M19] Legyen p pdratlan primszim, a egész és b = a”? Bizonyitandé, hogy b mod p 0 vagy | vagy p—1. (Uenutatds: tekintsitk (b+ 1) (6— 1)-et.) 27. [M15] Adott n pozitiv egészhez az Euler-féle g-fiiggvény azt a szamot rendeli, ahdny n-hez relativ prim van a 0, 1,...,2—1 szimok kézott. [gy g(1)=1, g(2)=1, 93)=2, o(4)=2 stb. Lassuk be, hogy p primszimra g(p) = p—I; és szimitsuk ki g(p*)-t, ahol e pozitiv egész. »28, [M25] Mutassuk meg, hogy az F Tétel bizonyitasdra hasznalt médszer a tétel Euler-tételnek nevezett altalanosi nak bizonyitasara is alkalmas: ha a és m relativ prim, a” mod m = 1. (Specidlisan, a 19. feladatban n’-nek vehetd n™"~* mod m.) 29. [M20] A pozitiv egész n-cken értelmezett /(n) figgvényt multiplikativnak nevezik, ha r és 5 relativ primekre f(rs)= (f(s). Bizonyitsuk be, hogy alabbi fiiggvényck multiplikativak: a) finan, b) f(n)=0 ha n oszthaté k?-tel valamely k> 1 egész mellett, egyébként f() = 1; c) fin)=ct, ahol k az n szim kiilénbéz6 primosztoinak szima; d) két multiplikativ fiiggyény szorzata. [436}. Bizonyitsuk be, hogy a 27. feladatbeli g(x) fiigevény multiplikativ. E teny secon mitsuk ki g(1000000)-t és adjunk médszert y(n) kis: ra, han yez6s felbontasa ismert. aL LW22) Mutassuk meg, hogy ha f() multiplikativ, akkor g(u) = Dy), (d) is az. A din 4d osztéja n-nek” jelélést, masképpen igy mondhatjuk: d pozitiv egész és nmod d = 0. 32. [M18] Az eléz6 feladat jelélésével kapcsolatban, mutassuk meg, hogy tetszdleges A(x, y) fiigavenyre a LEsed=Y Y feed. dincjd elm di (ale) 33. [M18] Szimitsuk ki az alibi mennyiségeket, feltéve, hogy m és m egészek: cf" |+ pase of} (Az m=0 eset megjegyzésre érdemes.) »34, [M21] Mia szitkseges és elégséges feltétele annak egy b> I valds szdmra vonatkoz6- an, hogy minden x21 valés szamra teljesiiljn [log, x|=L[loge|x |? »35, [4/20] Legyen més n egész, n> 0. Bizonyitandé tetszdleges x valds szdmra|(x-+m)/n| = = [(Lx]+m)/n]. (Az m=0 fontos specials eset.) Van-e hasonlé formula a fels6 egészrész- fliggvényre? 36. [M23] Bizonyitandé Y) 0-ra Yan Lo kei isksn Igk 4, [/3] Fogadjuk el azt a tényt, hogy log, 1000!=2567.60464.... Hatarozzuk meg pontosan 1000! szamjegyeinek szdmat! Mi 1000! elsé és utolsé jegye? 5. [15] Mit ad 8!-ra kézelit6 értékéiil a Stirling-formula alabbi, élesitett valtozata? nlx jam (2) (1+ rae > 6. [J7] Bontsuk fel 20!-t primtényez6k szorzatara (8) segitségével! 7. [MIO] Mutassuk meg, hogy a (10)-beli x? figgvény minden valés x-re kielégiti az x? = x+(x~1)? dsszefiiggést. [FM15] Mutassuk meg, hogy a (13)-beli hatarérték !-sal egyenl6, ha n nemnegativ egész! 9. [M10] Fogadjuk el, hogy (1/2)!=|/n/2, és ebbél hatérozzuk meg (1/2) és P(— 1/2) értékét, 10. [FM20] Ervényes-e minden valés szimra a P(x-+1) = x(x) azonossig? (L. a 7. feladatot.) 11. [M15] Legyen n kettes szamrendszerbeli alakja n e;>e,>...>e,20. Mutassuk meg, hogy n! még oszthaté 2” nem! 12. [M22] (A. Legendre, 1808.) Altalénositsuk az elézé feladat eredményét! Legyen p primszim, #p alapi szimrendszerbeli alakja n = ap*+a,_yp*"'+...+a,p+ao. Ad- junk egyszerti kifejezést a (8)-beli « szamra n, p és az a-k segitségével. 13. [M23] (Wilson-tétel, amely tulajdonképpen Leibniz-tétel, 1682.) Ha p primszim, akkor (p— 1)! mod p = p—1. Bizonyitsuk ezt ugy, hogy {1, 2,..., p—1}-en parositast készitiink tigy, hogy azok az elemek keriilnck parba, amelyek szorzata | mod p. 14, [M28] (L. Stickelberger, 1890.) A Wilson-tételt dltalinositva minden egész n-re meg tudjuk hatarozni az n! mod p szimot n p alapi szmrendszerbeli felirasénak ismeretében. A 12. feladatban haszndlt jeldlést felidézve bizonyitandé: n\/p" = (—1)"ag!a;!...a! (modulo p). 15. [FM15] A négyzetes matrix permanensét agy kapjuk, hogy a matrix determindnsa- nak kifejtett alakjaban a negativ eldjellel veendé szorzatokat is pozitiv eldjellel vessziik. Igy aei+ bfg + cdh + gec+hfat idb a permanense a kévetkez6 matrixnak: abe def). g hi Mi az alébbi matrix permanense Txl 1x2... 1xa! 2x1 2x2... 2xn wi 2+ ...2", ahol el, de 2"-"*!-gyel mar 2 axl nx2..0xn 16. [FM15] Mutassuk meg, hogy a (1)-beli végtelen dsszeg kizirdlag nemnegativ ogész n-ek esetében konvergens.

You might also like