Eindhoven University of Technology BACHELOR Cijfers in producten van opeenvolgende getallen Hagelüken, M.J. Award date: 2015 Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Download date: 18. Jul. 2017 Technische Universiteit Eindhoven Bachelor Eindproject: Cijfers in producten van opeenvolgende getallen Begeleider Aart Blokhuis Student/Auteur Max Hagelüken, 0786656 24 juli 2015 1 Inhoudsopgave 1 2 Inleiding ........................................................................................................................................... 4 1.1 Probleem1 ............................................................................................................................... 4 1.2 Probleem 2 ............................................................................................................................ 4 Cijfers van g(g+1)…(g+k) .................................................................................................................. 5 2.1 Manier 1 .................................................................................................................................. 5 2.1.1 2.2 Manier 2 .................................................................................................................................. 6 2.2.1 2.3 3 2.3.1 ๐ = ๐, ๐ = ๐ .................................................................................................................... 8 2.3.2 ๐ = ๐, ๐ = ๐ .................................................................................................................... 8 Laatste niet nul cijfer van n! in grondtal p .................................................................................... 10 3.1 Recursieve vergelijking .......................................................................................................... 10 3.2 Directe vergelijking ................................................................................................................ 11 Voorbeeld ...................................................................................................................... 12 3.3 Verbeterde recursieve vergelijking ....................................................................................... 13 3.4 Aantal getallen eindigend op j met i cijfers ........................................................................... 13 3.4.1 3.5 Voorbeeld ...................................................................................................................... 14 Directe vergelijking van een generatie van getallen ............................................................. 15 3.5.1 Eigenvectoren en eigenwaardes van de standaardmatrix ............................................ 15 3.5.2 Eigenvectoren en eigenwaardes van de gecombineerde matrix .................................. 16 3.5.3 Voorbeeld ...................................................................................................................... 16 3.6 Alternatieve methodes voor het vinden van een generatie van getallen............................. 18 Laatste niet nul cijfer van n! in grondtal b .................................................................................... 21 4.1 5 Voorbeeld ........................................................................................................................ 7 Resultaten................................................................................................................................ 8 3.2.1 4 Voorbeeld ........................................................................................................................ 5 Recursieve vergelijking .......................................................................................................... 21 4.1.1 Minimum aantal vermenigvuldigingen met 5 ............................................................... 21 4.1.2 Modulo 10 ..................................................................................................................... 22 Laatste l niet nul cijfers van n! in grondtal p ................................................................................. 24 5.1 Recursieve vergelijking .......................................................................................................... 24 5.1.1 Uitwerken van de vermenigvuldiging ............................................................................ 24 5.1.2 Recursieve vergelijking .................................................................................................. 25 2 5.2 Directe formule ..................................................................................................................... 26 5.2.1 5.3 Aantal getallen eindigend op j met i cijfers ........................................................................... 26 5.3.1 6 Voorbeeld ...................................................................................................................... 26 Voorbeeld ...................................................................................................................... 26 Primitieve wortel bij vermenigvuldigen modulo p ........................................................................ 28 6.1 Vinden van een primitieve wortel modulo p......................................................................... 28 7 Conclusie ....................................................................................................................................... 30 8 Bibliografie..................................................................................................................................... 31 3 1 Inleiding In dit Bachelor Eindproject komen twee problemen aan bod die kijken naar bepaalde eigenschappen van de cijfers van producten van opeenvolgende getallen. 1.1 Probleem1 Het eerste probleem omvat producten van een aantal opeenvolgende getallen en uit hoeveel verschillende getallen deze producten bestaan. De oorsprong voor dit probleem kwam van de volgende vraag. Stel je wil een wachtwoord hebben van cijfers 0-9 en letters a-z. Dan heb je dus 10 + 26 = 36 verschillende tekens. Als je nou een wachtwoord wilt hebben waarin geen teken 2 keer voorkomt op hoeveel manieren kan dat dan? Het antwoord is op 36 ∗ 35 ∗ 34 ∗ 33 ∗ 32 ∗ 31 = 1402410240 manieren. Het opvallende aan dit resultaat is dat het getal 1402410240 alleen de getallen 0,1,2 en 4 bevat. Dit is opvallend want de kans dat een willekeurig getal van 10 cijfers uit maar 4 verschillende cijfers 4 10 bestaat is (10 ) (10) 4 ≈ 0.022. De vraag is nu dus hoeveel van deze getallen zijn er en is dit aantal eindig of oneindig. Ook kun je je afvragen hoe je deze getallen vindt. 1.2 Probleem 2 Het tweede probleem bekijkt de cijfers van ๐!. Het eerste idee is om alleen te kijken naar het laatste cijfer van ๐! maar je kan inzien dat vanaf ๐ = 5 dit gelijk is aan 0 aangezien er dan vermenigvuldigd is met 2 ∗ 5 = 10. Vervolgens is het dus slimmer om naar het laatste niet nul cijfer te kijken. Hiervan zijn de eerste 25 getallen 1,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4, … Wat opvalt is dat alle getallen even zijn. Ook lijken sommige getallen meer voor te komen zo komt de 6 maar 4 keer voor terwijl de 8 wel 8 keer voor komt. We vragen ons dus af of er bepaalde patronen zijn in het laatste niet nul cijfer van ๐!. Vervolgens heeft het ook nut om te kijken naar ๐!๐ oftewel ๐! uitgeschreven in grondtal ๐ priem en kijken of hier iets over de cijfers valt te zeggen. 4 2 Cijfers van g(g+1)…(g+k) Ter verduidelijking voor de notatie - Het aantal cijfers van het getal 12312 is gelijk aan 5 terwijl het aantal verschillende cijfers van het getal 12312 gelijk is aan 3. - ๐๐ข๐(๐, ๐) = ๐ ∗ (๐ + 1) ∗ โฏ ∗ (๐ + ๐) waar ๐ ≥ 0, ๐ ≥ 0 . Bij het karakteriseren van het aantal verschillende cijfers ๐ dat het product ๐๐ข๐(๐, ๐) heeft is de standaard aanpak om gewoon alle getallen ๐ af te gaan beginnend bij 0. Dit is echter niet praktisch want er zijn veel getallen die je op basis van een paar criteria kunt uitsluiten. Twee mogelijke manieren om getallen ๐ uit te sluiten zullen aan bod komen. Beide manieren die besproken worden gebruiken een manier om een getal ๐1 uit te bereiden naar een getal ๐2 waarbij toch ๐๐ข๐(๐2 , ๐) een aantal cijfers hetzelfde houd als ๐๐ข๐(๐1 , ๐). 2.1 Manier 1 Laat ๐1 een getal zijn met ๐ cijfers. Kijk vervolgens naar ๐2 = ๐1 + โ ∗ 10๐ voor een willekeurige โ ≥ 0. Als je nu kijkt naar ๐๐ข๐(๐2 , ๐) ๐๐๐ 10๐ dan krijg je ๐๐ข๐(๐2 , ๐) ๐๐๐ 10๐ ≡ ๐๐ข๐(๐1 + โ ∗ 10๐ , ๐) ๐๐๐ 10๐ ≡ (๐1 + โ ∗ 10๐ ) ๐๐๐ 10๐ ∗ โฏ ∗ (๐1 + ๐ + โ ∗ 10๐ ) ๐๐๐ 10๐ ≡ (๐1 ) ๐๐๐ 10๐ ∗ โฏ ∗ (๐1 + ๐) ๐๐๐ 10๐ ≡ ๐๐ข๐(๐1 , ๐) ๐๐๐ 10๐ Dus de laatste ๐ cijfers van ๐๐ข๐(๐2 , ๐) zijn gelijk aan de laatste ๐ cijfers van ๐๐ข๐(๐1 , ๐). Dit betekent dat als de laatste ๐ cijfers van ๐๐ข๐(๐1 , ๐) al te veel verschillende cijfers bevat, getallen van de vorm ๐2 = ๐1 + โ ∗ 10๐ niet meer overwogen hoeven worden. Voor het zoeken naar getallen ๐ waarvan ๐๐ข๐(๐, ๐) precies ๐ verschillende cijfers heeft kan de lijst van getallen waar je in zoekt dus ingekort worden door een lijst ๐๐ van getallen ๐ bij te houden met 0 ≤ ๐ < 10๐ waarvan ๐๐ข๐(๐, ๐) ๐๐๐ 10๐ maximaal ๐ verschillende cijfers bevat. Begin met ๐1 de lijst van alle getallen ๐ met 0 ≤ ๐ < 10 aangezien deze getallen allemaal 1 verschillende cijfer hebben. Vervolgens kan de lijst ๐๐+1 recursief bepaald worden met behulp van de lijst ๐๐ . Dit kan gedaan worden door getallen ๐ uit de lijst ๐๐ uit te breiden naar getallen van de vorm ๐2 = ๐ + ๐ ∗ 10^๐ met 0 ≤ ๐ < 10. Deze getallen ๐2 voldoen aan 0 ≤ ๐2 < 10๐+1 . Voeg vervolgens alle getallen ๐2 toe aan de lijst ๐๐+1 waarvan ๐๐ข๐(๐2 , ๐) ๐๐๐ 10๐+1 ,oftewel de laatste ๐ + 1 cijfers van ๐๐ข๐(๐2 , ๐), maximaal ๐ verschillende cijfers heeft. Getallen ๐ waarvan ๐๐ข๐(๐, ๐) precies ๐ verschillende cijfers heeft met 0 ≤ ๐ < 10๐ zullen dus in ๐๐ zitten. Dit is omdat getallen ๐ die niet in ๐๐ zitten minstens ๐ + 1 verschillende cijfers hebben in ๐๐ข๐(๐, ๐) ๐๐๐ 10๐ de laatste j cijfers van ๐๐ข๐(๐, ๐). 2.1.1 Voorbeeld 5 Stel we nemen ๐ = 631, ๐ = 2 en zoeken naar getallen met maximaal ๐ = 2 verschillende cijfers geeft ๐๐ข๐(๐, ๐) = 631 ∗ 632 ∗ 633 = 252435336 ๐๐ข๐(๐, ๐) mod 103 ≡ 252435336 mod 103 ≡ 336 ๐๐๐ 103 Dit betekent dat getallen ๐ van de vorm … 631 altijd hebben dat ๐๐ข๐(๐, ๐) eindigt op … 336 en dus minstens 2 verschillende cijfers heeft. Het uitbreiden van ๐ naar ๐2 = ๐ + 1 ∗ 104 = 1631 geeft ๐๐ข๐(๐2 , ๐) = 1631 ∗ 1632 ∗ 1633 = 4346706336 ๐๐ข๐(๐2 , ๐) mod 104 ≡ 4346706336 mod 104 ≡ 6336 ๐๐๐ 104 Dit betekent dat getallen ๐ van de vorm …1631 nog een kans hebben dat ๐๐ข๐(๐, ๐) precies 2 verschillende getallen heeft. Het uitbreiden van ๐ naar ๐3 = ๐ + 2 ∗ 104 = 2631 geeft ๐๐ข๐(๐3 , ๐) = 2631 ∗ 2632 ∗ 2633 = 18232977336 ๐๐ข๐(๐3 , ๐) mod 104 ≡ 18232977336 mod 104 ≡ 7336 ๐๐๐ 104 Dit betekent dat getallen ๐ van de vorm …2631 altijd minstens 3 verschillende getallen hebben in ๐๐ข๐(๐, ๐) en dus kunnen uitgesloten worden. 2.2 Manier 2 In manier 1 wordt in feite een getal uitgebreid door er aan de voorkant cijfers aan toe te voegen. Manier 2 breid een getal ๐1 aan de achterkant uit naar getallen ๐2 = ๐1 ∗ 10๐ + โ met ๐ ≥ 1,10๐ > โ ≥ 0. Om iets te kunnen zeggen over de overeenkomstige eerste paar cijfers van ๐๐ข๐(๐1 , ๐) en ๐๐ข๐(๐2 , ๐) is het makkelijk om een bepaalde boven- en ondergrens voor ๐2 te vinden. Voor de ondergrens geldt ๐๐ข๐(๐2 , ๐) = ๐๐ข๐(๐1 ∗ 10๐ + โ , ๐) = (๐1 ∗ 10๐ + โ) ∗ (๐1 ∗ 10๐ + โ + 1) ∗ โฏ ∗ (๐1 ∗ 10๐ + โ + ๐) ≥ (๐1 ∗ 10๐ ) ∗ (๐1 ∗ 10๐ ) ∗ โฏ ∗ (๐1 ∗ 10๐ ) = ๐1 ๐+1 ∗ 10๐(๐+1) Voor de bovengrens geldt ๐๐ข๐(๐2 , ๐) = ๐๐ข๐(๐1 ∗ 10๐ + โ , ๐) = (๐1 ∗ 10๐ + โ) ∗ (๐1 ∗ 10๐ + โ + 1) ∗ โฏ ∗ (๐1 ∗ 10๐ + โ + ๐) ≤ (๐1 ∗ 10๐ + 10๐ − 1) ∗ (๐1 ∗ 10๐ + 10๐ ) ∗ โฏ ∗ (๐1 ∗ 10๐ + 10๐ + ๐ − 1) < ๐−1 ๐−1 (๐1 ∗ 10๐ + 10๐ + ⌈ 10๐ ⌉ ∗ 10๐ ) ∗ (๐1 ∗ 10๐ + 10๐ + ⌈ 10๐ ⌉ ∗ 10๐ ) ∗ โฏ ๐−1 ∗ (๐1 ∗ 10๐ + 10๐ + ⌈ 10๐ ⌉ ∗ 10๐ ) = 6 ๐+1 ๐−1 ๐ ∗ 10 ) = ⌉) 10๐ ๐+1 ๐−1 ∗ 10๐(๐+1) ⌈ 10๐ ⌉) ((๐1 + 1 + ⌈ (๐1 + 1 + ๐−1 ๐+1 De conclusie hiervan is dat de ๐ cijfers die ๐1 ๐+1 en (๐1 + 1 + ⌈ 10๐ ⌉) overeenkomstig hebben dus ook de eerste ๐ cijfers zullen zijn van ๐๐ข๐(๐2 , ๐). Als deze ๐ cijfers al meer dan ๐ verschillende cijfers zijn zal ๐๐ข๐(๐2 , ๐) in totaal dus ook meer dan ๐ verschillende cijfers hebben. ๐−1 ๐+1 Opvallend is dat voor grotere ๐ de term (๐1 + 1 + ⌈ ๐ ⌉) alleen kleiner wordt en dus zullen er 10 meer eerste ๐ overeenkomende cijfers zijn. Dit betekent dat alleen voor ๐ = 1 hoeft gekeken worden want die eerste ๐ overeenkomende cijfers worden gedeeld door alle uitbereidingen van ๐1 ongeacht hoeveel cijfers je erachteraan toevoegt. Een klein detail hierbij is dat 1234 en 125 niet 12 als overeenkomstige getallen heeft maar 1234 en 1256 wel. Voor het zoeken naar getallen ๐ waarvan ๐๐ข๐(๐, ๐) precies ๐ verschillende cijfers heeft kan de lijst van getallen waar je in zoekt dus op een soortgelijke manier ingekort worden door een lijst ๐๐ van getallen ๐ bij te houden met 10๐−1 ≤ ๐ < 10๐ waarvan de eerste ๐ cijfers die ๐๐+1 en (๐ + 1 + ๐−1 ๐+1 overeenkomstig hebben maximaal ๐ verschillende cijfers bevat. Begin met ๐1 de lijst van ⌈ 10๐ ⌉) alle getallen ๐ met 1 ≤ ๐ < 10 aangezien voor deze getallen geldt dat ๐ en ๐ + 1 al geen ๐−1 overeenkomstige getallen heeft aan het begin dus ๐ en ๐ + 1 + ⌈ 10๐ ⌉ heeft ook geen overeenkomstige getallen. Aangezien de getallen geen overeenkomstige getallen bevat hebben de overeenkomstige getallen hiervan 0 verschillende cijfers dus zeker maximaal c verschillende cijfers. Vervolgens kan uit een lijst ๐๐ de lijst ๐๐+1 gehaald worden. Dit kan gedaan worden door getallen ๐ uit de lijst ๐๐ uit te breiden naar getallen van de vorm ๐2 = ๐ ∗ 10 + ๐ met 0 ≤ ๐ < 10. Deze getallen ๐2 voldoen aan 10๐ ≤ ๐2 < 10๐+1 . Voeg vervolgens alle getallen ๐2 toe aan de lijst ๐๐+1 waarvan de ๐−1 ๐+1 eerste ๐ cijfers die ๐2 ๐+1 en (๐2 + 1 + ⌈ 10๐ ⌉) overeenkomstig hebben maximaal ๐ verschillende cijfers bevat. Getallen ๐ waarvan ๐๐ข๐(๐, ๐) precies ๐ verschillende cijfers heeft met 10๐−1 ≤ ๐ < 10๐ zullen dus in ๐๐ zitten. Dit is omdat getallen ๐ die niet in ๐๐ zitten minstens ๐ + 1 verschillende cijfers hebben in ๐๐ข๐(๐, ๐) ๐๐๐ 10๐ de laatste j cijfers van ๐๐ข๐(๐, ๐). 2.2.1 Voorbeeld Stel we nemen ๐ = 229, ๐ = 2 en zoeken naar getallen met maximaal ๐ = 2 verschillende cijfers geeft ๐๐+1 = 2293 = 12008989 ๐−1 ๐+1 (๐ + 1 + ⌈ 10 ⌉) = (229 + 1 + 1)3 = 12326391 De eerste overeenkomstige cijfers van 12008989 en 12326391 zijn 12 Dit betekent dat getallen ๐ van de vorm 229 … altijd hebben dat ๐๐ข๐(๐, ๐) begint met 12… en dus minstens 2 verschillende cijfers heeft. 7 Het uitbreiden van ๐ naar ๐3 = ๐ ∗ 10 + 7 = 2297 geeft ๐2 ๐+1 = 22973 = 12119452073 (๐2 + 1 + ⌈ ๐−1 ๐+1 ⌉) 10 = (2297 + 1 + 1)3 = 12151136899 De eerste overeenkomstige cijfers van 12119452073 en 12151136899 zijn 121 Dit betekent dat getallen ๐ van de vorm 2297 … altijd hebben dat ๐๐ข๐(๐, ๐) begint met 120… en dus minstens 2 verschillende cijfers zal hebben. Deze getallen hebben nog een kans dat ze volledig uit 2 verschillende cijfers bestaan. Het uitbreiden van ๐ naar ๐3 = ๐ ∗ 10 + 1 = 2291 geeft ๐3 ๐+1 = 22913 = 12024728171 ๐−1 ๐+1 (๐3 + 1 + ⌈ 10 ⌉) = (2291 + 1 + 1)3 = 12056247757 De eerste overeenkomstige cijfers van 12024728171 en 12056247757 zijn 120 Dit betekent dat getallen ๐ van de vorm 2291 … altijd hebben dat ๐๐ข๐(๐, ๐) begint met 120… en dus meer dan 2 verschillende cijfers zal hebben en dus uitgesloten kunnen worden. 2.3 Resultaten Voor twee specifieke ๐ en ๐ zal ik een voorbeeld geven van de lijst van gevonden getallen ๐ zodat ๐๐ข๐(๐, ๐) precies ๐ verschillende cijfers bevat 2.3.1 ๐ = ๐, ๐ = ๐ De lijst van gevonden getallen bij ๐ = 5, ๐ = 4 is 3, 4, 5, 9, 11, 15, 31, 45, 74 Hierbij is gekeken naar de getallen 1 tot 107 . 2.3.2 ๐ = ๐, ๐ = ๐ De lijst van gevonden getallen bij ๐ = 4, ๐ = 4 is 4, 5, 6, 8, 9, 26, 45, 60, 97, 98, 255, 997,998, 9997, 9998, 99997,99998, 999997, 999998 9999997, 9999998 Hierbij is gekeken naar de getallen 1 tot 107 .In de lijst is een duidelijk verschil tussen twee typen getallen. Het eerste soort lijkt random zonder patroon. Hierbij is het grootste getal 255. 8 Het tweede soort heeft een duidelijk patroon en bevat de twee patronen 9 … 97 en 9 … 98. Als je de vergelijking voor het patroon 9 … 98 = 10๐ − 2 uitschrijft dan zie je dat dit gelijk is aan (10๐ − 2)(10๐ − 1)10๐ (10๐ + 1)(10๐ + 2) = (102๐ − 4)(102๐ − 1)10๐ = 105๐ − 5 ∗ 103๐ + 4 ∗ 10๐ Hierin is het resultaat het patroon 9 … 950 … 040 … 0 Dit patroon bestaat uit de cijfers 0,4,5,9 en heeft dus inderdaad 4 verschillende cijfers. 9 3 Laatste niet nul cijfer van n! in grondtal p Voor het in kaart brengen van het gedrag van de laatste niet nul cijfer van ๐! in grondtal ๐ > 2 priem is het handig om te kijken wat het gedrag is in termen van de cijfers van ๐ geschreven in grondtal ๐. Om een beter beeld te krijgen van het gedrag is het handig om de volgende stappen uit te voeren: 1. Beschrijf het gedrag recursief. In dit geval in termen van het weghalen van het laatste cijfer. 2. Vind op basis van de recursieve vergelijking een directe vergelijking in termen van de cijfers van ๐. 3. Vind op basis van de directe vergelijking uit 2 een verbeterde recursieve vergelijking die bij het toevoegen van een cijfer alleen informatie nodig heeft van het toegevoegde cijfer. 4. Kijk naar het aantal getallen waarvan ๐! eindigt op ๐ waarbij je getallen van een bepaald aantal cijfers bekijkt. Stel hiervoor eerst een recursieve vergelijking op met behulp van de recursieve vergelijking voor de laatste cijfer van een getal uit 3. 5. Gebruik de recursieve formule uit 4 om een directe formule te vinden voor het aantal getallen waarvan ๐! met maximaal ๐ cijfers die eindigen op ๐. 3.1 Recursieve vergelijking Voor het kijken naar de laatste niet nul cijfer van een getal is het makkelijker om te redeneren over waar dit gelijk gelijk aan is modulo ๐. Dus laat de functie ๐๐(๐) het laatste niet nul cijfer van n ๐−1 ๐−1 modulo ๐ zijn met ๐๐(๐) ∈ (− , ). Verder is het handig om in te zien dat het laatste niet nul 2 2 cijfer van ๐ ∗ ๐ gelijk is aan ๐ ∗ ๐ ๐๐๐ ๐ als ๐ en ๐ geen ๐-voud zijn en dus in het bijzonder als 0 ≤ ๐, ๐ < ๐. Om het laatste niet nul cijfer van ๐! uit te rekenen is het handig om eerst elke term in grondtal ๐ uit te schrijven. Dit wordt gedaan omdat er dan een hele boel overbodige termen met ๐vouden uitgewerkt kunnen worden. stel dus eerst ๐ = ๐0 + ๐1 ๐ + โฏ + ๐๐ ๐๐ = ∑๐๐=0 ๐๐ ๐๐ en herschrijf 1 ∗ 2 ∗ โฏ ∗ (๐ − 1) ∗ ๐ ∗ (๐ + 1) ∗ โฏ ∗ (๐2 − 1) ∗ ๐2 ∗ (๐2 + 1) ∗ โฏ ∗ ๐ als 1 ∗ 2 ∗ โฏ ∗ (๐ − 1) ∗ ๐ ∗ (1 + ๐) ∗ โฏ ∗ ((๐ − 1) + (๐ − 1)๐) ∗ ๐2 ∗ (1 + ๐2 ) ∗ โฏ ∗ (๐1 ๐ + โฏ +๐๐ ๐๐ ) ∗ โฏ ∗ (๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ ) Met andere woorden schrijf elke term in het product als ∑ ๐๐ ๐๐ met ๐. Hierdoor wordt het product een product van sommen die je kunt uitschrijven in een som van producten. In deze som van producten heeft elke term in de som een aantal ๐ factoren waarbij een term in de som ∑ ๐๐ ๐๐ het minst aantal ๐ factoren heeft. Dit is de ๐๐ ๐๐ zodat ๐๐ = 0 voor ๐ < ๐ en ๐๐ ≠ 0. Hierin is de ๐๐ term overbodig want die heeft geen invloed op het laatste niet nul cijfer. 10 Voor het opstellen van een recursieve vergelijking voor het laatste niet nul cijfer van ๐! In grondtal ๐ is het handig om eerst alle termen die geen factor ๐ hebben te pakken en het laatste cijfer te gebruiken in de vermenigvuldiging. Vervolgens vormen de overige getallen (1 ∗ ๐) ∗ (2 ∗ ๐) ∗ โฏ weer bijna een product dat erg op een faculteit lijkt. Door in dit product alle ๐ termen uit te werken, aangezien die toch geen invloed hebben op het laatste getal, hou je weer een faculteit over. De vermenigvuldiging van alle de laatste cijfers van alle termen die geen ๐-voud zijn heeft de volgende vorm (1 ∗ โฏ ∗ (๐ − 1)) ∗ โฏ ∗ (1 ∗ โฏ ∗ (๐ − 1)) ∗ (1 ∗ โฏ ∗ ๐0 ) Na elke (1 ∗ โฏ ∗ (๐ − 1)) term komt in de originele vergelijking een ๐-voud voor. De laatste ๐-voud is (๐1 ๐ + โฏ + ๐๐ ∗ ๐๐ ) = ๐ ∗ (๐1 + โฏ + ๐๐ ∗ ๐๐−1 ) dus komt de (1 ∗ โฏ ∗ (๐ − 1)) term (๐1 + โฏ + ๐๐ ∗ ๐๐−1 ) keer voor. Dus is de vermenigvuldiging van alle termen die geen ๐-voud zijn gelijk aan ๐1 +โฏ+๐๐ ∗๐๐−1 (1 ∗ โฏ ∗ (๐ − 1)) ๐1 +โฏ+๐๐ ∗๐๐−1 ((๐ − 1)!) ∗ (1 ∗ โฏ ∗ ๐0 ) = ∗ ๐0 ! Het heeft dus nut om eerst te kijken wat de invloed is van (๐ − 1)! op het laatste getal. Aangezien voor alle termen geldt dat tussen 0 en ๐ zitten geldt dat de invloed gelijk is aan (๐ − 1)! ๐๐๐ ๐. Behalve 1 en ๐ − 1 heeft elk getal een inverse en deze inverse zit ook in (๐ − 1)! dus worden behalve 1 en ๐ − 1 alle getallen modulo ๐ vermenigvuldigd tot 1. Dus wat overblijft is (๐ − 1)! ≡ ๐ − 1 ๐๐๐ ๐. Verder kun je nog meer versimpelen door gebruik te maken van het feit dat ๐ oneven is ๐ dus (๐ − 1)๐ ≡ (−1)๐ ≡ −1 ๐๐๐ ๐ en als je dit herhaalt toepast ook (๐ − 1)๐ ≡ −1 ๐๐๐ ๐. Gebruik dit om het volgende te herschrijven ๐ +โฏ+๐ ∗๐๐−1 1 ๐ ∗ ๐0 ! ≡ ((๐ − 1)!) ๐−1 ๐ +โฏ+๐ ∗๐ 1 ๐ (−1) ∗ ๐0 ! ≡ (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ๐๐๐ ๐ Voor de overige ๐-vouden geld dat de grootste gelijk is aan ๐ ∗ (๐1 + โฏ + ๐๐ ∗ ๐๐−1 ). Als in al deze ๐-vouden een vermenigvuldiging met ๐ weggelaten wordt dan is wat overblijft (๐1 + โฏ + ๐๐ ∗ ๐๐−1 )! dit is een faculteit van een getal met een cijfer minder. Dus is de conclusie ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ )!) ≡ (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ ๐๐ ((๐1 + โฏ +๐๐ ๐๐−1 )!) ๐๐๐ ๐ 3.2 Directe vergelijking Door deze recursieve vergelijking herhaaldelijk toe te passen kan een directe vergelijking gevonden worden. De base case voor deze vergelijking is ๐๐(๐๐ !) ≡ ๐๐ ! ๐๐๐ ๐ met 0 ≤ ๐๐ < ๐. Het herhaaldelijk toepassen geeft: ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ )!) ≡ 11 (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ ๐๐ ((๐1 + โฏ +๐๐ ๐๐−1 )!) ≡ (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ (−1)๐2 +โฏ+๐๐ ∗ ๐1 ! ∗ ๐๐ ((๐2 + โฏ +๐๐ ๐๐−2 )!) ≡ … (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ (−1)๐2 +โฏ+๐๐ ∗ ๐1 ! ∗ โฏ ∗ (−1)๐๐ ∗ ๐๐−1 ! ∗ ๐๐(๐๐ ) ≡ (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ (−1)๐2 +โฏ+๐๐ ∗ ๐1 ! ∗ โฏ ∗ (−1)๐๐ ∗ ๐๐−1 ! ∗ ๐๐ ! ๐๐๐ ๐ Dit kan herschreven worden tot (−1)๐1 +โฏ+๐๐ ∗ (−1)๐2 +โฏ+๐๐ ∗ โฏ ∗ (−1)๐๐ ∗ ๐0 ! ∗ ๐1 ! ∗ โฏ ∗ ๐๐−1 ! ∗ ๐๐ ! ≡ (−1)๐1 +2๐2 +โฏ+๐๐๐ ∗ ∏๐๐=0(๐๐ !) ≡ (−1)๐1 +๐3 +๐5 +โฏ ∗ ∏๐๐=0(๐๐ !) ๐๐๐ ๐ dus ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ )!) ≡ (−1)๐1 +๐3 +๐5 +โฏ ∗ ∏๐๐=0(๐๐ !) ๐๐๐ ๐ Dus alleen de ๐๐ met oneven ๐ hebben een extra −1 invloed. Verder kun je de faculteiten nog verder uitwerken. Laat ๐๐ het aantal keren zijn dat ๐๐ = ๐ dan kun je de uitdrukking nog vereenvoudigen door (−1)๐1 +๐3 +๐5 +โฏ ∗ 0!๐0 ∗ 1!๐1 ∗ 2!๐2 ∗ โฏ ∗ (๐ − 1)!๐๐−1 ≡ Hierbij is het slim om eerst de faculteiten die gelijk zijn aan elkaar modulo ๐ bij elkaar te voegen dus ๐!๐๐ ∗ ๐!๐๐ = ๐!๐๐+๐๐ als ๐! = ๐! Hierbij is het ook mogelijk om nog verder te versimpelen door het feit dat ๐!๐๐๐๐ (๐!) ≡ 1 Dus is het handig om eerst de ordes uit te rekenen van de faculteiten en vervolgens ๐!๐๐+๐๐+โฏ ≡ ๐!(๐๐+๐๐+โฏ ) ๐๐๐ ๐๐๐๐ (๐!) ๐๐๐ ๐ toe te passen 3.2.1 Voorbeeld 3.2.1.1 ๐ฉ = ๐ Bij ๐ = 3 is de formule voor het laatste niet nul cijfer Bekijk 112012! volgens de formule is de laatste niet nul digit hiervan gelijk aan (−1)1+2+1 2! ∗ 1! ∗ 0! ∗ 2! ∗ 1! ∗ 1! ≡ (−1)4 ∗ 0!1 ∗ 1!3 ∗ 2!2 ≡ 11 ∗ 13 ∗ −12 ≡ 1 ๐๐๐ 3 12 3.3 Verbeterde recursieve vergelijking In de originele recursieve vergelijking zijn in de recursieve stap de informatie van alle cijfers nodig. Alle cijfers ๐0 tot ๐๐ komen voor in de term (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! uit de vergelijking ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ )!) ≡ (−1)๐1 +โฏ+๐๐ ∗ ๐0 ! ∗ ๐๐ ((๐1 + โฏ +๐๐ ๐๐−1 )!) ๐๐๐ ๐ Echter als je de directe vergelijking neemt voor de laatste cijfers ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ )!) ≡ (−1)๐1 +๐3 +๐5 +โฏ ∗ ∏๐๐=0(๐๐ !) ๐๐๐ ๐ en ๐๐ ((๐0 + ๐1 ๐ + โฏ +๐๐−1 ๐๐−1 )!) ≡ (−1)๐1 +๐3 +๐5 +โฏ ∗ ∏๐−1 ๐=0 (๐๐ !) ๐๐๐ ๐ dan kun je hier de volgende recursieve vergelijking uithalen ๐ ๐๐ ((๐0 + โฏ +๐๐ ๐ )!) ≡ { −1 ∗ ๐๐ ! ∗ ๐๐ ((๐0 + โฏ +๐๐−1 ๐๐−1 )!) ๐๐๐ ๐ als ๐ oneven ๐๐ ! ∗ ๐๐ ((๐0 + โฏ +๐๐−1 ๐๐−1 )!) ๐๐๐ ๐ als ๐ even Dit betekent dat in de recursieve stap alleen informatie nodig is van de cijfer die wordt verwijdert in de recursieve stap. 3.4 Aantal getallen eindigend op j met i cijfers Met de gegeven verbeterde recursieve vergelijking voor het laatste cijfer kan nu gekeken worden naar de verdeling van het laatste cijfer van ๐!. Laat ๐๐,1 โฎ ๐๐,๐−1 2 ๐ฬ ๐ = ๐ ๐−1 ๐,− โฎ 2 1 0 , ๐ฬ 0 = ( ) โฎ 0 ( ๐๐,−1 ) waarbij ๐๐,๐ het aantal getallen ๐ is met ๐ cijfers waarbij ๐๐(๐!) = ๐. Dan kun je dit rijtje ๐ฬ ๐ direct karakteriseren door een vergelijking of recursief door een recursieve formule op te stellen. Het is makkelijk om eerst de recursieve formule op te stellen en dan hieruit de directe vergelijking te halen. Uit de verbeterde recursieve vergelijking voor het laatste cijfer van ๐! valt te halen dat als ๐! eindigt op een ๐ ๐๐๐ ๐ en je voegt dan een cijfer ๐ toe aan de voorkant van ๐ dan eindigt het nieuwe getal op −1 ∗ ๐! ∗ ๐ als ๐ een oneven aantal cijfers heeft en ๐! ∗ ๐ als ๐ een even aantal cijfers heeft. Om beter te kunnen redeneren over de recursieve betrekking over ๐ฬ ๐ is het makkelijk om deze vermenigvuldigingen van het laatste getal uit te drukken in matrixvermenigvuldigingen op ๐ฬ ๐ . Als het toevoegen van een cijfer ๐ zorgt voor een vermenigvuldiging met โ dan wordt dat genoteerd door een vermenigvuldiging van ๐ฬ ๐ met de matrix ๐โ ofwel ๐ฬ ๐+1 = ๐โ ๐ฬ ๐ . Deze vermenigvuldiging zorgt ervoor dat getallen van het type ๐๐,๐ omgezet worden naar getallen van het type ๐๐+1,(๐∗โ ๐๐๐ ๐) . 13 Aangezien ๐ ∗ โ ≠ ๐ ∗ โ ๐๐๐ ๐ als ๐ ≠ ๐ gaat elke ๐๐,๐ naar een unieke ๐๐+1,(๐∗โ ๐๐๐ ๐) . Dit zorgt ervoor dat elke rij en kolom van ๐โ precies een entry met de waarde 1 heeft. Een paar dingen om in te zien over de matrices ๐โ zijn: - Vermenigvuldiging met ๐ ∗ โ is hetzelfde als eerst vermenigvuldigen met ๐ en dan met โ of andersom dus ๐๐∗โ ๐๐๐ ๐ = ๐๐ ๐โ = ๐โ ๐๐ - Als cijfer ๐1 toevoegen zorgt voor vermenigvuldiging met โ1 en cijfer ๐2 toevoegen zorgt voor vermenigvuldiging met โ2 dan kan de gezamelijke toedragen beschreven worden door ๐โ1 + ๐โ2 - De matrices volgen net als hun getallen dezelfde cykels en hebben dezelfde orde. Dus als โ ๐ ≡ 1 ๐๐๐ ๐ dan is (๐โ )๐ = ๐1 = ๐ผ. Laat ๐ด = ๐0! + ๐2! + โฏ + ๐(๐−1)! de bijdrage zijn van het toevoegen van alle even cijfers en ๐ต = ๐1! + ๐3! + โฏ + ๐(๐−2)! De bijdrage van alle oneven cijfers. Dan de beidrage van alle getallen gelijk aan - ๐ฬ ๐+1 = ๐๐ ∗ ๐ฬ ๐ = (๐ด + ๐ต) ∗ ๐ฬ ๐ ๐ฬ ๐+1 = ๐๐ ∗ ๐ฬ ๐ = (๐ด + ๐−1 ∗ ๐ต) ∗ ๐ฬ ๐ ๐ฬ ๐+2 = ๐๐ ๐๐ ∗ ๐ฬ ๐ als ๐ even is als ๐ oneven is als ๐ even is Aangezien er nog vermenigvuldigd moet worden met -1 al er een oneven getal wordt toegevoegd als ๐ oneven is. Een andere manier om de vermenigvuldiging te zien is om in te zien dat het vermenigvuldigen van een getal ๐ met โ modulo een priemgetal gelijk is aan een permutatie๐โ van de getallen 1,2, … , ๐ − 1 met ๐โ (๐) = ๐ ∗ โ ๐๐๐ ๐. In dit geval kun je dan ๐โ schrijven als ๐โ = (๐๐โ (1) 3.4.1 โฏ ๐๐ โ ( ๐๐ ๐−1 ) 2 โ (− ๐−1 ) 2 โฏ ๐๐โ (−1) ) Voorbeeld 3.4.1.1 ๐ = ๐ ๐1 = ( 1 1 ) = ๐ผ, ๐−1 = ( 1 1) ๐ด = ๐0! + ๐2! = ๐1 + ๐−1 ๐ต = ๐1! = ๐1 ๐๐ = ๐ด + ๐ต = 2๐1 + ๐−1 ๐๐ = ๐ด + ๐−1 ๐ต = ๐1 + 2๐−1 ๐๐ ๐๐ = (๐1 + 2๐−1 )(2๐1 + ๐−1 ) = 2๐1 ๐1 + ๐1 ๐−1 + 4๐−1 ๐1 + 2๐−1 ๐−1 = 2๐1 + ๐−1 + 4๐−1 + 2๐1 = 4๐1 + 5๐−1 14 3.4.1.2 ๐ = ๐ 1 1 1 ๐1 = ( 1 1 1 1 ๐−2 = ( ) = ๐ผ, ๐2 = ( 1 1 1 ), ๐ −1 1 1 =( 1 ), 1 1 ) 1 ๐ด = M0! + ๐2! + ๐4! = ๐1 + ๐2 + ๐−1 ๐ต = ๐1! + ๐3! = 2 ∗ ๐1 ๐๐ = 3๐1 + ๐2 + ๐−1 ๐๐ = ๐1 + ๐2 + 3๐−1 ๐๐ ๐๐ = 3๐1 ๐1 + (3 + 1)๐1 ๐2 + (9 + 1)๐1 ๐−1 + ๐2 ๐2 + (3 + 1)๐2 ๐−1 + 3๐−1 ๐−1 = 3๐1 + 4๐2 + 10๐−1 + ๐−1 + 4๐−2 + 3๐1 = 6๐1 + 4๐2 + 11๐−1 + 4๐−2 3.5 Directe vergelijking van een generatie van getallen Door de recursieve vergelijking voor ๐ฬ ๐ herhaaldelijk toe te passen kun je een directe vergelijking krijgen in de vorm van ๐ฬ 2๐ = (๐๐ ๐๐ )๐ ∗ ๐ฬ 0 ๐ฬ 2๐+1 = ( ๐๐ (๐๐ ๐๐ )๐ ) ∗ ๐ฬ 0 Het zou hierbij lastig zijn om (๐๐ ๐๐ )๐ helemaal uit te rekenen. Wat sneller zou zijn is als ๐๐ ๐๐ (๐ − 1) verschillende eigenvectoren ๐ฃฬ ๐ , ๐ ∈ [1, ๐ − 1] met bijbehorende eigenwaarden ๐๐ heeft dan kan ๐0 uitgeschreven worden als ๐0 = ๐1 ๐ฃฬ 1 + โฏ + ๐๐−1 ๐ฃฬ ๐−1 en dus (๐๐ ๐๐ )๐ ∗ ๐ฬ 0 = (๐๐ ๐๐ )๐ ∗ (๐1 ๐ฃฬ 1 + โฏ + ๐๐−1 ๐ฃฬ ๐−1 ) = ๐1 (๐๐ ๐๐ )๐ ๐ฃฬ 1 + โฏ +๐๐−1 (๐๐ ๐๐ )๐ ๐ฃฬ ๐−1 = ๐1 (๐1 )๐ ๐ฃฬ 1 + โฏ + ๐๐−1 (๐๐−1 )๐ ๐ฃฬ ๐−1 3.5.1 Eigenvectoren en eigenwaardes van de standaardmatrix Voor het vinden van de eigenvectoren en eigenwaardes van ๐โ is het makkelijk om eerst de eigenvectoren en eigenwaardes van ๐๐ te vinden met ๐ een primitieve wortel. Allereerst is het makkelijk om te kijken wat mogelijke waarden zijn voor ๐. Laat ๐ een eigenwaarde van ๐๐ zijn dan is (๐๐ )๐−1 = ๐๐๐−1 ๐๐๐ ๐ = ๐1 = ๐ผ. Dat betekent dat ๐๐−1 = 1. Dus alleen oplossingen van deze vergelijking kunnen een eigenwaarde zijn. 15 Bewijs vervolgens dat elke oplossing van deze vergelijking ook daadwerkelijk een eigenwaarde is. Laat ๐ een oplossing zijn van de vergelijking. Stel ๐ฬ = ๐๐ ∗ ๐ฃฬ dan volgt ๐๐๐ (๐) = ๐ฃ๐ . Vul vervolgens ๐๐ฃฬ in voor ๐ฬ dan krijg je ๐๐ฃ๐๐ (๐) = ๐ฃ๐ . Neem vervolgens voor ๐ฃ1 een willekeurige startwaarde en neem de overige waardes zodat ze voldoen aan de vergelijking dan geld ๐๐ฃฬ = ๐๐ ∗ ๐ฃฬ en dus is ๐ฃฬ een eigenvector voor ๐. Aangezien er ๐ − 1 oplossingen zijn van de vergelijking ๐๐−1 = 1 heeft ๐๐ dus ook ๐ − 1 eigenwaardes en eigenvector ๐1 , … , ๐๐−1 en ๐ฃฬ 1 , … , ๐ฃฬ ๐−1 en dus een volledige verzameling eigenwaardes en eigenvectoren. Aangezien ๐ een primitieve wortel is geld voor iedere โ dat er een unieke ๐ ∈ [0, ๐ − 1) met โ = ๐ ๐ . Dit betekent dat ๐โ = (๐๐ )๐ en dus dat ๐โ eigenvectoren ๐ฃฬ 1 , … , ๐ฃฬ ๐−1 heeft met bijbehorende ๐ eigenwaardes (๐1 )๐ , … , (๐๐−1 ) 3.5.2 Eigenvectoren en eigenwaardes van de gecombineerde matrix Aangezien alle ๐โ dezelfde eigenvectoren hebben blijven deze eigenvectoren hetzelfde onder vermenigvuldiging en optelling. De eigenwaardes worden hierbij respectievelijk vermenigvuldigd en opgeteld. Het is dus handig om in de volgende volgorde te werken - eerst alle eigenwaardes van ๐๐ uit te rekenen voor een primitieve wortel vervolgens de eigenwaardes van alle andere ๐โ te berekenen vervolgens daarmee de eigenwaardes van ๐๐ ๐๐ uitrekenen. Als dan ๐๐ een eigenwaarde is voor ๐๐ ๐๐ bij eigenvector ๐ฃฬ ๐ dan is de eigenwaarde bij diezelfde eigenvector (๐๐ )๐ voor (๐๐ ๐๐ )๐ . 3.5.3 Voorbeeld 3.5.3.1 ๐ = ๐ Modulo 5 is 2 een primitieve wortel. Dus bereken eerst de eigenwaardes en eigenvectoren van ๐2 . De vier eigenwaarden zijn de wortels van ๐4 = 1 dus ๐1 = 1, ๐2 = ๐, ๐3 = −1 en ๐4 = −๐ de bijbehorende eigenvectoren zijn 1 1 1 1 1 −๐ −1 ๐ ๐ฃฬ 1 = ( ), ๐ฃฬ 2 = ( ), ๐ฃฬ 3 = ( ) en ๐ฃฬ 4 = ( ) 1 ๐ −1 −๐ 1 −1 1 −1 Hierbij is ๐ฬ 0 op te splitsen in 1 1 1 1 1 1 1 1 1 1 0 1 −๐ −1 ๐ ๐ฬ 0 = ( ) = 4 ∗ ( ) + 4 ∗ ( ) + 4 ∗ ( ) + 4 ∗ ( ) = 4 (๐ฃฬ 1 + ๐ฃฬ 2 + ๐ฃฬ 3 + ๐ฃฬ 4 ) 0 1 ๐ −1 −๐ 0 1 −1 1 −1 Voor de andere matrices kun je gebruiken dat 2 de volgende cykel volgt (20 , 21 , 22 , 23 ) = (1, 2, −1, −2) 16 en dus volgt de matrix ๐2 ook de cykel (๐1 , ๐2 , ๐−1 , ๐−2 ) De eigenwaardes van ๐๐ = 3๐1 + ๐2 + ๐−1 zijn dus ๐1 = 3 ∗ 10 + 11 + 12 ๐2 = 3 ∗ ๐ 0 + ๐ 1 + ๐ 2 ๐3 = 3 ∗ (−1)0 + (−1)1 + (−1)2 ๐4 = 3 ∗ (−๐)0 + (−๐)1 + (−๐)2 =5 =2+๐ =3 =2−๐ De eigenwaardes van ๐๐ = ๐1 + ๐2 + 3๐−1 zijn dus ๐1 = 10 + 11 + 3 ∗ 12 ๐2 = ๐ 0 + ๐ 1 + 3 ∗ ๐ 2 ๐3 = (−1)0 + (−1)1 + 3 ∗ (−1)2 ๐4 = (−๐)0 + (−๐)1 + 3 ∗ (−๐)2 =5 = −2 + ๐ =3 = −2 − ๐ dus heeft (๐๐ ๐๐ )๐ de eigenwaardes ๐1 = (5 ∗ 5)๐ = 25๐ = 52๐ ๐ 2๐ ๐ 2๐ ๐2 = ((2 + ๐ )(−2 + ๐)) = (−5)๐ = √−5 ๐3 = (3 ∗ 3)๐ = 9๐ = 32๐ ๐4 = ((2 − ๐)(−2 − ๐)) = (−5)๐ = √−5 Verder heeft ๐๐ (๐๐ ๐๐ )๐ de eigenwaardes ๐1 = 5 ∗ 25๐ = 52๐+1 ๐2 = (2 + ๐)(−5)๐ = (2 + ๐)√−5 ๐3 = 3 ∗ 9๐ = 32๐+1 ๐4 = (2 − ๐)(−5)๐ = (2 − ๐)√−5 2๐ 2๐ Doordat de eigenvectoren en eigenwaardes bekend zijn valt nu makkelijk een directe vergelijking op te stellen voor ๐ฬ 2๐ en ๐ฬ 2๐+1 ๐ฬ 2๐ = (๐๐ ๐๐ )๐ ∗ ๐ฬ 0 1 = (๐๐ ๐๐ )๐ ∗ 4 (๐ฃฬ 1 + ๐ฃฬ 2 + ๐ฃฬ 3 + ๐ฃฬ 4 ) 2๐ 1 = 4 (52๐ ๐ฃฬ 1 + √−5 (๐ฃฬ 2 + ๐ฃฬ 4 ) + 32๐ ๐ฃฬ 3 ) 2๐ = 1 4 52๐ + 2√−5 + 32๐ 52๐ − 32๐ 52๐ − 32๐ 2๐ (5 − 2√−5 2๐ + 32๐ ) En ๐ฬ 2๐+1 = ( ๐๐ (๐๐ ๐๐ )๐ ) ∗ ๐ฬ 0 1 = ( ๐๐ (๐๐ ๐๐ )๐ ) ∗ 4 (๐ฃฬ 1 − ๐ฃฬ 2 − ๐ฃฬ 3 + ๐ฃฬ 4 ) 17 1 4 1 (52๐+1 ๐ฃฬ 1 4 2๐ 2๐ = (52๐+1 ๐ฃฬ 1 + (2 + ๐)√−5 ๐ฃฬ 2 + 32๐+1 ๐ฃฬ 3 + (2 − ๐)√−5 ๐ฃฬ 4 ) = 2๐ 2๐ + 2√−5 (๐ฃฬ 2 + ๐ฃฬ 4 ) + ๐√−5 (๐ฃฬ 2 − ๐ฃฬ 4 ) + 32๐+1 ๐ฃฬ 3 ) 1−1 1+1 52๐+1 + 32๐+1 2๐+1 2๐+1 2๐ 2๐ 1 −๐ − ๐ −๐ + ๐ 5 − 3 = 4 ( 2๐+1 ) + 2√−5 ( ) +๐√−5 ( ) ๐+๐ ๐−๐ 5 − 32๐+1 −1 + 1 −1 − 1 52๐+1 + 32๐+1 ( ) 2๐+1 2๐+1 0 2 5 +3 2๐+1 2๐+1 2๐ 2๐ 1 0 −2๐ = 4 (52๐+1 − 32๐+1 ) + 2√−5 ( ) +๐√−5 ( ) 0 2๐ 5 −3 −2 0 52๐+1 + 32๐+1 ( ) 2๐ 2๐+1 2๐+1 5 + 4√−5 + 3 52๐+1 +2√−5 1 =4 2๐ 2๐ − 32๐+1 52๐+1 − 2√−5 − 32๐+1 2๐ ( 52๐+1 −4√−5 + 32๐+1 ) Ter vergelijking de tabel voor de eerste 6 generaties van ๐ฬ ๐ ๐๐,1 1 3 6 33 189 867 4026 i 0 1 2 3 4 5 6 ๐๐,2 0 1 4 22 136 733 3724 ๐๐,−2 0 0 4 27 136 708 3724 ๐๐,− 1 0 1 11 43 164 817 4151 3.6 Alternatieve methodes voor het vinden van een generatie van getallen In sommige gevallen kan voor bepaalde ๐ฬ ๐ een alternatieve methode gebruikt worden om een deel direct te vinden. Een voorbeeld hiervan is dat voor ๐ = 5 je op een alternatieve manier ๐๐,2 + ๐๐,−2 kunt bepalen. Volgens de formule uit het voorbeeld moet gelden ๐2๐,2 + ๐2๐,−2 = 1 1 ∗ (52๐ − 32๐ ) + 4 ∗ (52๐ − 32๐ ) = 4 1 2 ∗ (52๐ − 32๐ ) en ๐2๐+1,2 + ๐2๐+1,−2 = 1 4 1 2 ∗ (52๐+1 +2√−5 2๐ ∗ (52๐+1 − 32๐+1 ) 1 − 32๐+1 ) + 4 ∗ (52๐+1 −2√−5 dus ๐๐,2 + ๐๐,−2 = 18 2๐ − 32๐+1 ) = 1 2 ∗ (5๐ − 3๐ ) Het idee van de directe aanpak is dat je de formule voor het laatste niet nul cijfer van ๐! in grondtal 5 bekijkt (−1)๐1 +๐3 +๐5 +โฏ ∗ 0!๐0 ∗ 1!๐1 ∗ 2!๐2 ∗ 3!๐3 ∗ 4!๐4 ≡ (−1)๐1 +๐3 +๐5 +โฏ ∗ 1๐0 +๐1 +๐3 ∗ 2๐2 ∗ −1๐4 ๐๐๐ 5 Hierin valt te zien dat het laatste cijfer van ๐! gelijk is aan 2 of -2 ๐๐๐ 5 als 2๐2 gelijk is aan 2 of −2 = 23 ๐๐๐ 5. Het getal 2 heeft orde 4 modulo 5 dus geldt 2๐2 = 2๐2 ๐๐๐ 4 ๐๐๐ 5. Er moet dus gelden dat ๐2 ≡ 1 ๐๐๐ 4 of ๐2 ≡ 3 ๐๐๐ 4 in andere woorden ๐2 ≡ 1 ๐๐๐ 2. Met andere woorden alle getallen met een oneven aantal 2 cijfers voldoen. Laat ๐๐ het aantal getallen zijn van ๐ cijfers met een oneven aantal 2 cijfers en laat ๐๐ het aantal getallen zijn van ๐ cijfers met een even aantal 2 cijfers. Er zijn in totaal 5๐ getallen van ๐ cijfers dus 5๐ = ๐๐ + ๐๐ Hierbij is ๐1 = 1 ๐1 = 4 (alleen het getal 2) (de getallen 0,1,3,4) Een getal van ๐ cijfers met een oneven aantal 2 cijfers kan - eindigen op een 2. Dit geeft dat de eerste ๐ − 1 cijfers een even aantal 2 cijfers bevat. - eindigen op een 0,1,3,4. Dit geeft dat de eerste ๐ − 1 cijfers een oneven aantal 2 cijfers bevat. Dit geeft de betrekking ๐๐ = ๐๐−1 + 4๐๐−1 Samen met 5๐ = ๐๐ + ๐๐ geeft dit ๐๐ = 5๐−1 − ๐๐−1 + 4๐๐−1 = 5๐−1 + 3๐๐−1 Gebruik nu 1 1 ๐๐ − 2 5๐ = 5๐−1 − 2 5๐ + 3๐๐−1 5 = 5๐−1 − 2 5๐−1 + 3๐๐−1 3 = − 2 5๐−1 + 3๐๐−1 1 2 = 3(๐๐−1 − 5๐−1 ) 1 en substitueer ๐๐ = ๐๐ − 2 5๐ dit geeft ๐๐ = 3๐๐−1 = โฏ = 3๐−1 ๐1 19 met 1 5 3 ๐1 = ๐1 − 2 51 = 1 − 2 = − 2 geeft dit 3 1 ๐๐ = 3๐−1 ∗ − 2 = − 2 3๐ dus 1 2 1 2 ๐๐ = ๐๐ − 5๐ = − 3๐ 1 ๐๐ = (5๐ − 3๐ ) 2 20 4 Laatste niet nul cijfer van n! in grondtal b Met het inzicht verkregen door het laatste niet nul cijfer van ๐! in grondtal ๐ > 2 priem kan ook worden gekeken naar het laatste niet nul cijfer in grondtal ๐ niet priem. Als uitgangspunt wordt ๐ = 10 genomen aangezien het decimale stelsel het standaardstelsel is. Om weer een beter beeld te krijgen van het gedrag wordt eerst naar een recursieve vergelijking gezocht om vervolgens dit in een directe vergelijking om te zetten. 4.1 Recursieve vergelijking Het is net als in het geval van grondtal ๐ makkelijker om te redeneren waar een laatste niet nul cijfer van een getal gelijk aan is modulo ๐. Dus laat weer de ๐๐(๐) het laatste niet nul cijfer van n modulo ๐ zijn. In het geval van grondtal 10 kunnen 10-vouden echter niet weggelaten worden op dezelfde manier als ๐-vouden in het grondtal ๐ geval weggelaten werden. Om een voorbeeld te geven in het grondtal ๐ = 5 geval zou het laatste niet nul cijfer berekend worden door ๐๐((1 + 5) ∗ (2 + 5)) = 1 ∗ 2 In het grondtal 10 geval zou dit echter niet werken aangezien ๐๐((5 + 10) ∗ (2 + 10)) = ๐๐(5 ∗ 2 + 5 ∗ 10 + 2 ∗ 10) = 1 + 5 + 2 Aangezien ๐! meer 5 factoren bevat dan 2 factoren, zullen voornamelijk de 5 factoren een probleem zijn. Een slimme aanpak is dus om eerst de vermenigvuldiging in een soort van grondtal 5 vorm uit te schrijven en vervolgens op die manier alle 10 vouden eruit te halen. Dus laat ๐ = ๐0 + ๐1 ∗ 5 + โฏ ๐๐ ∗ 5๐ = ∑๐๐=0 ๐๐ ∗ 5๐ en herschrijf 1 ∗ 2 ∗ … ∗ 4 ∗ 5 ∗ 6 ∗ … ∗ 24 ∗ 25 ∗ 26 ∗ … ∗ ๐ als 1 ∗ 2 ∗ … ∗ 4 ∗ 5 ∗ (1 + 5) ∗ … ∗ (4 + 4 ∗ 5) ∗ 52 ∗ (1 + 52 ) ∗ … ∗ (๐0 + ๐1 ∗ 5 + โฏ +๐๐ ∗ 5๐ ) Het minimale aantal vermenigvuldigingen met 10 in dit product wordt verkregen door het minimum aantal vermenigvuldigingen met 5 4.1.1 Minimum aantal vermenigvuldigingen met 5 Het minimum aantal vermenigvuldigingen met 5 wordt verkregen door in elke term van de originele vermenigvuldiging de meest linker factor te nemen. Dus in 1 ∗ 2 ∗ … ∗ 4 ∗ 5 ∗ (1 + 5) ∗ … ∗ (4 + 4 ∗ 5) ∗ 52 ∗ (1 + 52 ) ∗ … ∗ (๐0 + ๐1 ∗ 5 + โฏ + ๐๐ ∗ 5๐ ) 21 neem je 1 ∗ 2 ∗ … ∗ 4 ∗ 5 ∗ 1 ∗ … ∗ 4 ∗ 52 ∗ 1 ∗ … ∗ ๐ 0 De laatste 5-voud hierin is (๐1 ∗ 5 + โฏ ๐๐ ∗ 5๐ ) = 5 ∗ (๐1 + โฏ + ๐๐ ∗ 5๐−1 ) In totaal is het dus te herschrijven als 1 ∗ 2 ∗ … ∗ 4 ∗ 5 ∗ 1 ∗ … ∗ 4 ∗ 52 ∗ 1 ∗ … ∗ ๐ 0 = 5! ∗ 1 ∗ 5! ∗ 2 ∗ … ∗ 5! ∗ (๐1 + โฏ ๐ +๐ ∗ 5๐−1 ) ∗ ๐0 ! = ๐−1 5!(๐1 +โฏ๐๐∗5 ) (๐1 + โฏ + ๐๐ ∗ 5๐−1 )! ∗ ๐0 ! In deze nieuwe vergelijking komt een faculteit van een getal voor dat ongeveer 5 keer kleiner is dan het originele getal. Deze stap kunnen we recursief uitvoeren dus ๐−1 5!(๐1 +โฏ+๐๐ ∗5 ) ∗ (๐1 + โฏ ๐๐ ∗ 5๐−1 )! ∗ ๐0 ! = ๐−1 ๐−2 5!(๐1 +๐2 ∗5+โฏ+๐๐∗5 ) ∗ 5!(๐2 +โฏ+๐๐ ∗5 ) ∗ (๐2 + โฏ ๐๐ ∗ 5๐−2 )! ∗ ๐1 ! ∗ ๐0 ! = ๐−1 ๐−2 5!(๐1 +๐2 ∗(5+1)+โฏ+∗๐๐ ∗(5 +5 )) ∗ (๐2 + โฏ + ๐๐ ∗ 5๐−2 )! ∗ ๐1 ! ∗ ๐0 ! = …= ๐−1 5!(๐1 + ๐2 ∗(5+1)+โฏ+๐๐∗(5 +โฏ+1)) ∗ ๐๐ ! ∗ … ∗ ๐1 ! ∗ ๐0 ! = ๐−1 ๐−1 10(๐1 + ๐2 ∗(5+1)+โฏ+๐๐ ∗(5 +โฏ+1)) ∗ 12(๐1 + ๐2 ∗(5+1)+โฏ+๐๐ ∗(5 +โฏ+1)) ∗ ๐๐ ! ∗ … ∗ ๐1 ! ∗ ๐0 ! 4.1.2 Modulo 10 Als we de uitkomst modulo 10 gaan bekijken valt de 10 macht term weg en wordt de 12 macht een 2 macht. Dus ๐−1 ๐−1 10(๐1 + ๐2 ∗(5+1)+โฏ+๐๐ ∗(5 +โฏ+1)) ∗ 12(๐1 + ๐2 ∗(5+1)+โฏ+๐๐ ∗(5 +โฏ+1)) ∗ ๐๐ ! ∗ … ∗ ๐1 ! ∗ ๐0 ! ≡ ๐−1 2(๐1 + ๐2 ∗(5+1)+โฏ+๐๐∗(5 +โฏ+1)) ∗ ๐๐ ! ∗ … ∗ ๐1 ! ∗ ๐0 ! ๐๐๐ 10 ≡ ๐−1 2(๐1 + ๐2 ∗(5+1)+โฏ+๐๐ ∗(5 +โฏ+1)) ∗ ∏๐๐=0(๐๐ !)๐ ๐๐๐ 10 Voor de twee macht kunnen we een simpelere vorm krijgen door de volgende rekenregel te gebruiken: 2๐ ≡ 2๐ ๐๐๐ 4 ๐๐๐ 5 dus 2 ∗ 2๐ ≡ 2 ∗ 2๐ ๐๐๐ 4 ๐๐๐ 10 dus ๐−1 2(๐1 + ๐2 ∗(5+1)+โฏ+๐๐∗(5 +โฏ+1)) ๐๐๐ 10 ≡ 2(๐1 + ๐2 ∗(1+1)+โฏ+๐๐∗(1+โฏ+1)) ๐๐๐ 10 ≡ 2(๐1 + 2∗๐2 +โฏ+๐∗๐๐) ๐๐๐ 10 ≡ ๐ 2(∑๐ =1 ๐∗๐๐) ๐๐๐ 10 ≡ 22 ๐ 2(∑๐ =1(๐ ๐๐๐ 4)∗๐๐) ๐๐๐ 10 Voor de faculteiten is het simpeler om eerst het volgende te berekenen ๐๐ = ๐๐๐๐ก๐๐ ๐๐๐๐ ๐๐๐ก ๐๐ = ๐, ๐ ∈ [0,4] En vervolgens ∏๐๐=0(๐๐ !)๐ Te schrijven als ∏4๐=0(๐!)๐๐ 2๐2 +2∗๐4 ∗ 3๐3 In totaal geld dus 2(๐1 + ๐2 ∗(5+1)+โฏ+๐๐∗(5 ๐−1 +โฏ+1)) ๐ ∗ ∏๐๐=0(๐๐ !)๐ ≡ 2(∑๐ =1(๐ ๐๐๐ 4)∗๐๐)+๐2 +2∗๐4 ∗ 3๐3 ๐๐๐ 10 Dit valt te versimpelen door gebruik te maken van de regels 2๐ ≡ 2๐ ๐๐๐ 4 ๐๐๐ 10 2๐ ≡ 24 ๐๐๐ 10 ≡ 6 ๐๐๐ 10 3๐ ≡ 3๐ ๐๐๐4 ๐๐๐ 10 als als 23 ๐ ≠ 0 ๐๐๐ 4 ๐ > 0, ๐ = 0 ๐๐๐ 4 5 Laatste l niet nul cijfers van n! in grondtal p Net als bij het geval met het laatste niet nul cijfer van ๐! is er voor de laatste k niet nul cijfers van ๐! ook een directe vergelijking te verkrijgen via een recursieve vergelijking. De algemene tactiek zal weer zijn om eerst de vergelijking uit te schrijven in grondtal ๐ 5.1 Recursieve vergelijking De eerste stap zal weer het uitschrijven van de vergelijking in grondtal ๐ zijn. Dus ๐ = ๐0 + ๐1 ๐ + โฏ + ๐๐ ๐๐ = ∑๐๐=0 ๐๐ ๐๐ en herschrijf 1 ∗ 2 ∗ โฏ ∗ (๐ − 1) ∗ ๐ ∗ (๐ + 1) ∗ โฏ ∗ (๐2 − 1) ∗ ๐2 ∗ (๐2 + 1) ∗ โฏ ∗ ๐ als 1 ∗ 2 ∗ โฏ ∗ (๐ − 1) ∗ ๐ ∗ (1 + ๐) ∗ โฏ ∗ ((๐ − 1) + (๐ − 1)๐) ∗ ๐2 ∗ (1 + ๐2 ) ∗ โฏ ∗ (๐1 ๐ + โฏ +๐๐ ๐๐ ) ∗ โฏ ∗ (๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ ) Vervolgens is het makkelijk om in te zien dat alleen de laatste ๐ niet nul cijfers van elke term invloed hebben op de laatste ๐ niet nul cijfers van ๐!. Het is makkelijk om eerst alle termen die geen ๐-voud zijn eruit te halen en vervolgens de overige ๐vouden door ๐ te delen en recursief door te gaan. Hiervoor is het makkelijk om de functie ๐: โค/๐๐ โค → โค/๐๐ โค gegeven door ๐(๐) = ๐! ๐๐๐ ๐๐ behalve alle termen die ๐ bevatten in te voeren. 5.1.1 Uitwerken van de vermenigvuldiging Voor de recursieve vergelijking zal het van nut zijn om te kijken waar ๐(๐๐ − 1) gelijk aan is modulo ๐๐ . Allereerst is ๐(๐๐ − 1) = ๐๐ ! ๐−1 ๐๐−1 !∗๐๐ de vermenigvuldiging alle elementen modulo ๐๐ die relatief priem zijn ten opzichte van ๐๐ zijn. Elk van deze elementen heeft een inverse en sommige zijn zelf inverteerbaar. Getallen die zelf inverteerbaar zijn voldoen aan ๐2 ≡ 1 ๐๐๐ ๐๐ ๐2 − 1 ≡ 0 ๐๐๐ ๐๐ (๐ − 1)(๐ + 1) ≡ 0 ๐๐๐ ๐๐ Hieraan voldoen alleen ๐ = 1 en ๐ = ๐๐ − 1 want (1 − 1)(1 + 1) ≡ 0 ∗ 2 ≡ 0 ๐๐๐ ๐๐ en 24 (๐๐ − 1 − 1)(๐๐ − 1 + 1) ≡ (๐๐ − 2)๐๐ ≡ 0 ๐๐๐ ๐๐ Voor alle andere 1 < ๐ < ๐๐ − 1 geldt 1 ≤ (๐ − 1) ≤ ๐๐ − 1 1 ≤ (๐ + 1) ≤ ๐๐ − 1 en verder kan maar een van (๐ + 1) en (๐ − 1) een veelvoud zijn van ๐ met exponent kleiner dan ๐ dus kan (๐ − 1)(๐ + 1) geen veelvoud zijn van ๐๐ dus (๐ − 1)(๐ + 1) โข 0 ๐๐๐ ๐๐ In ๐(๐๐ − 1) worden dus alle termen die ongelijk zijn aan 1 of (๐๐ − 1) ≡ −1 ๐๐๐ ๐๐ tegen elkaars inverse weggewerkt wat overblijft is dus ๐(๐๐ − 1) ≡ 1 ∗ −1 ≡ −1 ๐๐๐ ๐๐ . Bron: (product of a reduced residue system) (wilson's theorem for prime powers) 5.1.2 Recursieve vergelijking Als we terugkijken naar de recursieve vergelijking en voor gegeven ๐ kijken naar (๐ ∗ ๐๐ ) ∗ (๐ ∗ ๐๐ + 1) ∗ (๐ ∗ ๐๐ + 2) ∗ โฏ ∗ (๐ ∗ ๐๐ + (๐ − 1) ∗ ๐๐−1 + โฏ + (๐ − 1)) ∗ ((๐ + 1) ∗ ๐๐ ) en dan de ๐-vouden weglaten en van elk overige getal alleen de laatste ๐ cijfers bekijken krijgen we 1 ∗ 2 ∗ โฏ ∗ ((๐ − 1) ∗ ๐๐−1 + โฏ + (๐ − 1)) = 1 ∗ 2 ∗ โฏ ∗ (๐๐ − 1) Dit is gelijk aan ๐(๐๐ − 1) In de originele vermenigvuldiging komt dit ๐๐ … ๐๐ = ๐๐ + โฏ +๐๐ ๐๐−๐ keer voor namelijk 1 ∗ โฏ ∗ (๐๐ ๐๐ + โฏ +๐๐ ๐๐ ) ∗ โฏ Verder zitten in het staartgedeelte (1 + ๐๐ ๐๐ + โฏ +๐๐ ๐๐ ) ∗ โฏ ∗ (๐0 + ๐1 ๐ + โฏ +๐๐ ๐๐ ) nog termen die een bijdrage hebben van ๐(๐0 + โฏ +๐๐−1 ๐๐−1 ) Dus de bijdragen van alle termen die geen ๐-voud zijn is ๐ +โฏ+๐ ๐๐−๐ ๐ ๐(๐๐ − 1) ๐ ∗ ๐(๐0 + โฏ +๐๐−1 ๐๐−1 ) ≡ (−1)๐๐+โฏ+๐๐ ∗ ๐(๐0 + โฏ +๐๐−1 ๐๐−1 ) ๐๐๐ ๐๐ 25 Vervolgens blijven alleen de ๐-vouden over en dus na elke term door ๐ te delen is het overblijfsel (๐1 + โฏ +๐๐ ๐๐−1 )! 5.2 Directe formule Door de recursieve formule te gebruiken en dit herhaaldelijk toe te passen krijg je dat de laatste ๐ cijfers van ๐! gelijk zijn aan (−1)๐๐+โฏ+๐๐ ∗ (−1)๐๐+1 +โฏ+๐๐ ∗ โฏ ∗ (−1)๐๐−1 +nk ∗ (−1)๐๐ ∗ ๐(๐0 + โฏ +๐๐−1 ๐๐−1 ) ∗ ๐(๐1 + โฏ +๐๐ ๐๐−1 ) ∗ โฏ ∗ ๐(๐๐−1 +๐๐ ๐) ∗ ๐(๐๐ ) ≡ (−1)๐๐+๐๐+2 +โฏ ∗ ๐(๐0 + โฏ +๐๐−1 ๐๐−1 ) ∗ ๐(๐1 + โฏ +๐๐ ๐๐−1 ) ∗ โฏ ∗ ๐(๐๐−1 +๐๐ ๐) ∗ ๐(๐๐ ) ๐๐๐ ๐๐ 5.2.1 Voorbeeld Neem ๐ = 3 en ๐ = 2 en bekijk 112! dan zijn de laatste twee niet nul cijfers gelijk aan (−1)1 ∗ ๐(12) ∗ ๐(11) ∗ ๐(1) ≡ −1 ∗ 4 ∗ −1 ∗ 1 ≡ 4 ๐๐๐ 32 Dus de laatste twee niet nul cijfers zijn 113 5.3 Aantal getallen eindigend op j met i cijfers Net als bij het geval met de laatste cijfer kan weer de verdeling van getallen bijgehouden worden hoe vaak getallen eindigen op ๐. Echter bij het geval van alleen de laatste cijfer van ๐! hoefde je alleen bij te houden waar ๐! op eindigde . Als je kijkt naar de laatste ๐ cijfers zul je ook de eerste ๐ − 1 cijfers van ๐ moeten bijhouden aangezien die ook invloed hebben op de verandering van de laatste ๐ niet nul cijfers van ๐!. Dit komt omdat termen zoals ๐(๐๐ ) verdwijnen en worden vervangen door ๐(๐๐ + ๐๐+1 ๐). Alle ๐( ) termen die alleen de laatste ๐ − 1 cijfers bevatten verdwijnen. Voor de eerste ๐ − 1 cijfers van ๐ zijn er ๐ ๐−1 mogelijkheden. Voor de laatste ๐ cijfers van ๐! zijn er ๐ ๐ − ๐ ๐−1 mogelijkheden aangezien het geen ๐-voud kan zijn. In totaal moet je dus (๐ ๐ − ๐ ๐−1 )๐ ๐−1 mogelijkheden per generatie bijhouden dit is voor ๐ = 3, ๐ = 2 al gelijk aan (9 − 3) ∗ 3 = 18 mogelijkheden en dit wordt dus al snel niet praktisch meer. 5.3.1 Voorbeeld Neem ๐ = 3 en ๐ = 2 en bekijk 112! dan zijn de laatste twee niet nul cijfers gelijk aan 26 (−1)1 ∗ ๐(12) ∗ ๐(11) ∗ ๐(1) Als je echter 22112! bekijkt dan zijn de laatste twee niet nul cijfers gelijk aan (−1)1+2 ∗ ๐(12) ∗ ๐(11) ∗ ๐(21) ∗ ๐(22) ∗ ๐(2) Het verschil modulo 32 = 9 is een vermenigvuldiging met (−1)2 ∗ ๐(1)−1 ∗ ๐(21) ∗ ๐(22) ∗ ๐(2) 27 6 Primitieve wortel bij vermenigvuldigen modulo p Een veel voorkomend probleem in dit verslag is het vermenigvuldigen van twee getallen modulo ๐. Als er vaak wordt vermenigvuldigd dan is een slimme manier om dit aan te pakken als volgt. 1. Vind een primitieve wortel ๐ modulo ๐. 2. Bereken voor elke ๐ met 0 < ๐ < ๐ de bijbehorende ๐ zodanig dat ๐ = ๐ ๐ ๐๐๐ ๐. Vervolgens kan dit gebruikt worden om vermenigvuldigingen uit te voeren en inverse van getallen te vinden. Namelijk voor vermenigvuldiging ๐1 ∗ ๐2 ≡ ๐ ๐1 ∗ ๐ ๐2 ≡ ๐ ๐1 +๐2 ≡ ๐ ๐3 ≡ ๐3 ๐๐๐ ๐ en voor het vinden van inverse ๐2 van ๐1 ๐2 ๐1 ≡ 1 ๐๐๐ ๐ ๐ ๐2 ๐ ๐1 ≡ ๐ ๐−1 ๐๐๐ ๐ ๐ ๐2 +๐1 ≡ ๐ ๐−1 ๐๐๐ ๐ dus ๐2 + ๐1 = ๐ − 1 ๐2 = ๐ − ๐1 − 1 6.1 Vinden van een primitieve wortel modulo p Er is geen directe formule bekend voor het vinden van een primitieve wortel. De enige manier is om getallen af te gaan en kijken of ze een primitieve wortel zijn. Er zijn in totaal ๐(๐(๐)) getallen een primitieve wortel dus heb je een kans van dat ๐ = 13 is dat bijvoorbeeld ๐(12) 12 = ๐(๐(๐)) ๐(๐) 4 1 = 3. 12 dat een getal een primitieve wortel is. In het geval De orde van een getal ๐ zal een deler zijn van ๐(๐) = ๐ − 1 dus is het handig om eerst de ๐ ๐ priemfactorisatie ๐1 1 ∗ โฏ ∗ ๐๐ ๐ van ๐ − 1 te berekenen. Als ๐ geen primitieve wortel is dan zal de orde van ๐ een deler zijn van ๐−1 ๐๐ voor een zekere ๐ ∈ [1, ๐] en dus zal ๐ primitieve wortel is dan zal de orde ๐ − 1 zijn en dus ๐ ๐−1 ๐๐ ๐−1 ๐๐ ≡ 1 ๐๐๐ ๐. Als ๐ een โข 1 ๐๐๐ ๐ voor alle ๐ ∈ [1, ๐]. Een andere manier om te kijken of ๐ een primitieve wortel is is door te kijken naar het ๐ ๐ Legendre symbool (๐). Namelijk als ๐ een primitieve wortel is modulo ๐ dan geldt (๐) = −1 dus als ๐ (๐) = 1 is ๐ geen primitieve wortel. Bron: (Is there an efficient algorithm for finding a square root modulo a prime power?) 28 (Finding a primitive root of a prime number) 29 7 Conclusie Over het oorspronkelijke probleem (probleem 1) is er niet echt iets bewezen er bestaat alleen het vermoeden dat er een eindig aantal getallen ๐ zijn waarvoor geldt dat het opeenvolgend product ๐๐ข๐(๐, ๐) maar ๐ cijfers bevat voor sommige ๐. Een goed voorbeeld hiervan is dat voor ๐ = 5 en ๐ = 4 het grootste getal dat gevonden kan worden ๐ = 74 is en dat er daarna geen getal meer voorkomt tot 107 . Wel heb ik manieren gevonden om het zoeken naar deze getallen te versnellen. Bij het tweede probleem zijn er heel wat technieken besproken om de cijfers van ๐! te bekijken. Voornamelijk als er gekeken werd in een bepaald priem grondtal ๐. Het vermoeden hierbij is ook weer dat elke combinatie van ๐ laatste niet nul cijfers ongeveer even vaak voorkomt en voor specifieke ๐ valt het ook direct te bewijzen. Een eventueel vervolg In een eventueel vervolg zou nog gekeken kunnen worden naar scherpere eisen voor het eerste probleem. Voor het tweede probleem zou nog gekeken kunnen worden naar een algemeen bewijs dat alle eindcijfers even vaak voorkomen. Ook kan er nog gekeken worden naar ๐! in andere grondtallen die niet priem zijn. In het verslag is alleen gekeken naar grondtal 10 maar dit zou veralgemeniseerd kunnen worden naar andere grondtallen die een product zijn van 2 of meerdere priemgetallen. 30 8 Bibliografie Finding a primitive root of a prime number. (sd). Opgehaald van http://math.stackexchange.com/: http://math.stackexchange.com/questions/124408/finding-a-primitive-root-of-a-primenumber Is there an efficient algorithm for finding a square root modulo a prime power? (sd). Opgehaald van http://mathoverflow.net/: http://mathoverflow.net/questions/52081/is-there-an-efficientalgorithm-for-finding-a-square-root-modulo-a-prime-power product of a reduced residue system. (sd). Opgehaald van http://math.stackexchange.com/: http://math.stackexchange.com/questions/266351/if-a-1-dots-a-phin-is-a-reduced-residuesystem-what-is-a-1-cdots-a wilson's theorem for prime powers. (sd). Opgehaald van http://www.dms.umontreal.ca/: http://www.dms.umontreal.ca/~andrew/Binomial/pflemma1.html 31