GETALLEN Tussen haakjes staan de namen van de programma's, in de groep GRGETALN . 0 Tellen - Aftellen (AFTELLEN ) ..............................................................................................................................................1 - Is pincodes tellen dom werk? (DOMWERK, CIJFERS4, CIJFERS5) ...........................................................2 1 Gehele getallen 1.1 Ontbinden (DELERS, ONTBIND, AANUIT ) .......................................................................................................5 - De priemgetallengenerator (PRIEMTST, PRIEMRIJ ) ...................................................................................7 - De Grootste Gemene Deler (GGD ) ......................................................................................................................8 Diophantische vergelijkingen (DIOFANT1) ......................................................................................................10 - De stelling van Pythagoras in R2 ( PYTHAGO2 ) ..............................................................................................11 - De stelling van Pythagoras in R3 ( PYTHAGO3 ) ..............................................................................................13 - Het vermoeden van Fermat (PSFERMAT ) ........................................................................................................14 - Fibonacci en het 3n+1 vermoeden (FIBONAC, N3PLUS1) ..........................................................................16 1.2 Antwoorden ...........................................................................................................................................................................22 GETALLEN 0. Tellen Aftellen Dit boek is een speurtocht naar merkwaardigheden rond getallen, getalrijen, getalverzamelingen, getallenparen (coördinaten), toevalsgetallen, getalbewerkingen, variabele getallen (letters) en verbanden tussen variabelen (functies). Aan de basis daarvan lig het tellen. Paragraaf nul dus. Is aan zoiets gewoons als tellen nog wat bijzonders te bespeuren? Voor de hand ligt een onderzoekje naar het aftellen. Tien kinderen staan in een kring. Wie krijgt het ijsje? Via het aftelversje ie-wie-waai-weg (met de klemtoon op de vierde lettergreep) wordt elk vierde kind afgetikt (je kunt ook zeggen dat er telkens drie overgeslagen worden). Welk kind blijft over? Voor het gemak geven we de kinderen een nummer, van 1 tot en met 10. De eerste paar stappen zijn: 1 2 3 4 5 6 7 8 9 10 1 2 3 5 6 7 9 10 1 3 56 9 10 waarna een kind kan zien hoe het afgemaakt wordt. Nummer 5 krijgt het ijsje. Als je hier een programma voor maakt, moet dat ook met andere getallen bruikbaar zijn. Zo krijg je variabelen. Bijvoorbeeld N voor het aantal kinderen (1,2,3,...,N) en P voor het aantal overgeslagenen. In regel 2 van het volgende TIBASIC programma is een rij L1 met N enen geformeerd. Een 1 betekent dat een kind nog meedoet. Elke geschrapte 1 gaat over in een nul (regel 9). In regel 5 is X het aangetikte nummer en telt T van 1 tot en met P zolang er een 1 in de lijst op nummer X staat. Daarna (in regels 8 en 9) wordt het te schrappen nummer op het scherm geplaatst (Disp is van Display) en op nul gezet. Ook de teller T wordt dan op nul gezet. T staat dus voor het iewie-waai. In regel 11, 12 en 13 telt S het aantal enen in L1. In regel 14 tellen we door vanaf het begin van de rij zolang er meer dan één 1 staat. De inleidende en begeleidende tekst van het programma AFTELLEN zijn hier niet vermeld. Een goede intro en toelichting zijn weliswaar belangrijk (een andere gebruiker moet het programma zonder problemen kunnen hanteren), maar leiden te veel af van de inhoud. Daarom tonen we in het algemeen slechts de kern van een programma, een enkele keer zelfs alleen maar de belangrijkste regel uit die kern. 1. 2. 3. Nüdim(L1 ) Fill(1,L1 ) 0üT:0üX 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Lbl 0 X+1üX:T+L1 (X)üT If T=P Then Disp X 0üL1 (X):0üT End sum(L1 )üS If X<N:Goto 0 0üX If S>1:Goto 0 Disp "OVER BLIJFT NR.:" For(Y,1,N) If L1 (Y)=1:Disp Y End GETALLEN -1- Is pincodes tellen dom werk? Vraagje 1: Hoeveel van de 100 getallen 00 t/m 99 bestaan uit twee verschillende cijfers? Het antwoord daarop is gauw gevonden. Er zijn 100 getallen, waarvan er 10 uit twee gelijke cijfers bestaan (namelijk de getallen 00, 11, 22, 33, 44, 55, 66, 77, 88 en 99). Over blijven dus 100-10 = 90 getallen met twee verschillende cijfers. Met een kleine redenering kan je ook op een andere manier aan dat antwoord komen: voor het eerste cijfer zijn er 10 mogelijkheden (0 t/m 9); bij elk van die 10 keuzes zijn er nog 9 mogelijkheden voor het andere cijfer; totaal dus 10´9=90. We noteren de uitkomsten van het aantal getallen met respectievelijk 1 en 2 verschillende cijfers als #(1)=10 en #(2)=90. Vraagje 2: Hoeveel van de getallen 000 t/m 999 bestaan uit een, twee of drie verschillende cijfers? Niet te gauw hoera roepen, we moeten namelijk drie gevallen onderscheiden: (1) het type {A,A,A} zoals bijvoorbeeld 333 of 000 (2) het type {A,A,B} met twee verschillende cijfers, zoals 225 of 020 en (3) het type {A,B,C} met drie verschillende cijfers, zoals 537 of 189 Van het eerste type zijn er weer 10 versies (000 t/m 999); van type (2) zijn er 10 mogelijkheden voor A en (nadat je A gekozen hebt) 9 voor B en (nadat je een volgorde uit {A,A,B} gekozen hebt) 3 rangschikkingen AAB, ABA, BAA zodat er in totaal 10´9´3 = 270 mogelijkheden zijn. Voor type (3) resteren er dus 1000 – 10 – 270 = 720 getallen. Met de opmerking dat voor type (3) ook de berekening 10´9´8 = 720 in aanmerking komt. Samengevat: #(1)=10 #(2)=270 #(3)=720 controle: #(1) + #(2) + #(3) = 1000. Slim gewerkt, al zeggen we het zelf. Nu pakken we de programmeerbare rekenmachine om het een en ander te controleren. Dom werk dus, maar het geeft een goed gevoel om een rekenmachine te slim af te wezen. Ik noem het programma DOMWERK. In het begin staat de teller T op nul. Vervolgens doorlopen A, B en C alle mogelijkheden van 0 t/m 9. T wordt met 1 verhoogd (T+1üT) zodra de drie cijfers verschillend zijn. Ik heb wat verklarende teksten toegevoegd, maar die zijn er alleen voor de gebruiksvriendelijkheid. Ziehier de kern van een mogelijk TIBASIC programma dat #(3) uitrekent. De uitdrukking For(A,0,9) betekent "Voor A lopend vanaf 0 t/m 9". 0üT For(A,0,9) For(B,0,9) For(C,0,9) If AøB and BøC and AøC Then T+1üT End End End End Disp T Voor #(2) is een kleine wijziging in de broncode voldoende. In de vijfde regel moet dan staan: If A=B and BøC met in de zevende regel: T+3üT ter vervanging van de ingewikkelde logische constructie: En voor #(1): If A=B and BøC or A=C and AøB or B=C and AøB If A=B and B=C Dom werk? Wacht even. Hoe staat het met viercijferige getallen? GETALLEN -2- Vraagje 3: Een pincode bevat vier cijfers (0000 t/m 9999). Hoe groot is de kans dat een willekeurige pincode #(1) uit vier gelijke cijfers (bijvoorbeeld 0000) #(2) uit twee verschillende cijfers (bijvoorbeeld 2233 of 2333) #(3) uit drie verschillende cijfers (bijvoorbeeld 2234) #(4) uit vier verschillende cijfers (bijvoorbeeld 5308) bestaat? We lossen dit eerst "even" slim op. (1) De kans op vier gelijke cijfers is 0,1% want #(1) is weer 10. Geen probleem. (2) en (3) slaan we even over. (4) Het aantal getallen met vier verschillende cijfers is #(4)=10´9´8´7=5040; de kans daarop is 50,4% (2) Type {A,A,B,B} met AABB, ABAB en ABBA geeft 3´10´9=270 mogelijkheden. Type {A,A,A,B} met AAAB, AABA, ABAA en BAAA levert 4´10´9=360 mogelijkheden. Totaal 270+360=630 mogelijkheden met kans 6,3%. (3) Type {A,A,B,C} levert zes mogelijkheden: AABC, ABAC, ABCA, BAAC, BACA en BSAA. Dus in totaal 6´10´9´8=4320 mogelijkheden met kans 43,2%. Controle: #(1)=10 #(2)=630 #(3)=4320 #(4)=5040 totaal: 10+630+4320+5040=10 000. Je begrijpt nu waarom ik het woord "even" tussen aanhalingstekens gezet had. Ik denk dat er niet zo gek veel mensen in staat zijn deze uitwerking zelf te bedenken. Daarvoor is een toch wel grote technische vaardigheid vereist. En er is nog een kanttekening. Als het gaat om meer dan vier cijfers, wordt het probleem al gauw praktisch onoplosbaar, zelfs voor routiniers. Tussen twee haakjes, vaak ondekt zo'n routinier een algemene formule, waarna het oplossen van een probleem neerkomt op het invullen van getalwaarden in die formule. Ik weet niet of er zo een formule bestaat voor pincodes met meer dan 4 cijfers, ik denk het wel, maar eerlijk gezegd interesseert me dat niet erg. Wel wil ik graag onderzoeken of er een programmaatje voor dit probleem geschreven kan worden. Laten we het daarom nog maar eens met de computer (in dit geval dus de grafische rekenmachine TI83 of TI-84 met TIBASIC) proberen. De hierboven gekozen methode met If A=B and BøC or A=C and AøB or B=C and AøB is niet handig, want je krijgt zo enorme ketens van onontwarbare logische betrekkingen. We zullen een andere aanpak moeten bedenken. Ik geef eerst het fundament van het programma CIJFERS4 en daarna de toelichting. Is dit dom werk? Oordeel zelf. 1. For(A,0,9) 2. For(B,0,9) 3. For(C,0,9) 4. For(D,0,9) 5. {A,B,C,D}üL1 6. SortA(L1) 7. 1+sum(¾List(L1)=0)üS 8. 1+L3(S)üL3(S) 9. End 10. End 11. End 12. End 13. L3üL2 GETALLEN -3- In de regels 5 en 6 wordt het actuele stel waarden van A, B, C en D in de lijst L1 gestopt die direct daarna oplopend gesorteerd wordt met SortA(L1). Regel 7 is ingewikkeld; ¾List(L1) is de verschilrij van lijst L1. Om regel 7 goed te begrijpen moet je de werking van de logische beweringen (= > < enzovoorts) kennen. Een logische bewering kent slechts twee uitkomsten: goed (uitkomst 1) of fout (uitkomst 0). Zo heeft de bewering 7<9 de uitkomst 1, want hij is waar. De uitkomst van 7=9 is 0 (nul) want hij is onwaar. De uitkomst van {1,2,3,4}={1,3,5,7} is {1,0,0,0} want alleen de eerste term klopt. En de uitkomst van {1,2,2,3,4,5}=2 zal zijn {0,1,1,0,0,0}. De logische bewering ¾List(L1)=0 geeft dus ook een rijtje nullen en enen. Ik zal dat toelichten met een getallenvoorbeeld. Stel dat L1={A,B,C,D} op een bepaald moment de waarden {4,5,5,9} heeft (al oplopend gesorteerd met SortA(L1)), dan is de verschilrij ¾List(L1)= {1,0,4} en het resultaat van ¾List(L1)=0 is nu {0,1,0} omdat het middelste getal nul is. De som van (¾List(L1)=0) is nu 1 omdat er één 1 in staat (verder alleen maar nullen). De uitdrukking in regel 7 sommeert dus het aantal gelijke cijfers S in het rijtje L1. In regel 8 wordt de S-de term van L3 met één verhoogd. (Aan het eind verschuiven we lijst L3 nog naar L2, om cosmetische redenen). Een intro en een verzoek om geduld voltooien het geheel. Is dat dom werk? Ik dacht het niet! En nu de finishing touch. Het kostte me minder dan een minuut om de regels 4 en 5 zodanig te wijzigen (met een extra End aan het eind) dat de mogelijkheden voor een pincode van vijf cijfers berekend konden worden. De TI-83, gehoorzaam en geduldig, deed daar ruim een uur over. Zie het rechter plaatje. Je ziet daar o.a. uit dat de kans dat een vijfcijferige pincode uit vier verschillende cijfers bestaat, praktisch gelijk is aan 50% (toevallig hetzelfde als bij een viercijferige pincode). [ Muggenzifters (en een echte wiskundige is altijd een beetje aan het muggenziften) zullen vallen over het woord toevallig in de vorige zin. De kans op vier verschillende cijfers bij een viercijferige pincode is precies even groot als bij een vijfcijferige pincode omdat het aantal combinaties van 2 uit 5 een tienvoud is, namelijk 10. En dat is wèl toevallig. ] GETALLEN -4- 1. Gehele getallen 1.1 Ontbinden "Oude" Grieken als Euclides (300 vC) en Pythagoras (500 vC) hebben zich intensief beziggehouden met getaltheorie. Daarbij wordt alleen gekeken naar de natuurlijke getallen (0, 1, 2, 3, …) of de gehele getallen (0, 1, 2, 3, … maar ook -1, -2, -3, …). We noemen A deelbaar door B (of: B is een deler van A, of: B deelt op A) als voor de gehele getallen A, B en B' (B¹0 en B' ¹0) geldt: A = B¢ B A Aangezien A = B ´ B¢ en dus = B , zal ook B ' een deler zijn van A. B¢ Bij iedere deler B van A hoort dus een partner B', die eventueel gelijk is aan B. In dat geval is A=B´B dus het kwadraat van B. Als je alle delers zoekt van een getal N hoef je dus alleen maar te kijken naar de delers kleiner dan of gelijk aan Ö N. Neem bijvoorbeeld N=36 met Ö 36 = 6. Beginnend bij 1 vind je achtereenvolgens de delers 2, 3, 4 en 6. bij 1 hoort 36 bij 2 hoort 18 bij 3 hoort 12 bij 4 hoort 9 bij 6 hoort 6. Stoppen maar, want de eerstvolgende deler (9) is al genoemd. Het getal 36 heeft dus negen delers. Bij veel onderzoek naar de deelbaarheid van een getal N hoef je dus niet verder te gaan dan Ö N. De TI-83 gebruikt iPart(X) voor het gehele deel van X en fPart(X) voor het breukdeel van X. Zo is iPart(17/5)=3 en fPart(17/5)=2/5=0.4. Als A deelbaar is door B, dan is fPart(A/B)=0 . In het volgende programma DELERS verschijnen alle delers van een ingevoerd getal in paren op het scherm. Het aantal delers wordt geteld door T , het rijnummer is X. Input "GETAL?",N ClrHome For(I,1,ð(N)) "I=DELER?" If fPart(N/I)=0 "DELER GEVONDEN" Then X+1üX "X=RIJNUMMER" If X=9 "NIEUW SCHERM ALS LAATSTE RIJ" Then Pause :ClrHome 1üX End Output(X,1,I):Output(X,8,"*"):Output(X,11,N/I) End End GETALLEN -5- Priemgetallen zijn natuurlijke getallen met precies twee delers, namelijk 1 en het getal zelf. De rij priemgetallen begint dus met 2, 3, 5, 7, 11, 13, 17, 19. Straks meer daarover. De hoofdstelling van de rekenkunde zegt hierover het volgende. Elk natuurlijk getal > 1 is, afgezien van de volgorde, op precies één manier te schrijven als product van priemgetallen. 3 2 1 Zo is het getal 2600 te schrijven als 2 ´5 ´13 . De getalletjes op één hoog heten de exponenten van de priemdelers 2, 5 en 13. Men zegt dat het getal ontbonden is in (priem)factoren (priemdelers). Dat ontbinden gaat zo dat je, beginnend met het kleinste priemgetal (2), door alle priemgetallen probeert te delen tot er 1 staat: 3 2600/2=1300, 1300/2=650, 650/2=325 dus 3 keer door 2 gedeeld; factoren 2 ; door 3 delen lukt niet; 2 325/5=65, 65/5=13 dus 2 keer door 5 gedeeld; factoren 5 ; delen door 7 en 11 lukt niet; 1 13/13=1; tenslotte 1 keer door 13 gedeeld; factor 13 ; uiteindelijk kom je altijd op 1 uit. Zo'n zichzelf herhalend mechanisme heet een algoritme (rekenritme) en wordt in het volgende programma ONTBIND gedemonstreerd. Prompt N 1üS:2üF:0üE ð(N)üM "VRAAGT DE WAARDE VAN N" Hierna komen twee While opdrachten. E telt hoe vaak een priemfactor voorkomt (dat wordt de exponent); F geeft de bijbehorende priemfactor. 3 2 1 De oplossing krijgt de vorm: F1E1´F2E2´F3E3´ … bijvoorbeeld 2600 = 2 ´5 ´13 waarbij de priemfactoren in L1 komen en de exponenten in L2. While F÷M While fPart(N/F)=0 E+1üE N/FüN End If E>0 Then FüL1(S) EüL2(S) S+1üS 0üE ð(N)üM End If F=2 Then 3üF Else F+2üF End End If Nø1 Then NüL1(S) 1üL2(S) End "F=PRIEMFACTOR" "N DEELBAAR DOOR F, DAN:" "EXPONENT OPGEHOOGD" "NIEUWE WAARDE VAN N" "PRIEMFACTOR IN L 1 " "EXPONENT IN L2 " "VOLGENDE PRIEMFACTOR" 5 4 1 2 Hieruit blijkt dat 2 190 240 ontbonden kan worden als: 2 ´3 ´5 ´13 . GETALLEN -6- OPGAVE 1. Je kent de aan/uit drukknopjes. Met één keer drukken schakel je uit als hij aan stond, en aan als hij uit stond. In een lange gang hangen 100 lampen, genummerd van 1 t/m 100. Elke lamp heeft zo'n aan/uit schakelaar. Aanvankelijk brandt geen van de lampen. In de eerste ronde (k=1) wordt op alle knopjes gedrukt waardoor de lampen aan gaan. In de tweede ronde (k=2) wordt alleen op de knopjes met een even rangnummer gedrukt; in de derde ronde op de knopjes met een rangnummer deelbaar door 3; in de k-de ronde op alle knopjes waarvan het nummer een k-voud is. Men gaat hiermee door tot en met de 100-ste ronde. Als uit met een 0 en aan met een 1 wordt weergegeven, krijg je dus: rangnr begin ronde 1 ronde 2 ronde 3 ronde 4 ronde 5 Enzovoorts 1 0 1 1 1 1 1 2 0 1 0 0 0 0 3 0 1 1 0 0 0 4 0 1 0 0 1 1 5 0 1 1 1 1 0 6 0 1 0 1 1 1 Peter Winkler behandelt dit probleem in zijn boek Mathematical Puzzles (al gaat het daar over kluisjes die beurtelings geopend en gesloten worden). De vraag is welke lampjes uiteindelijk branden. Welke getallen komen door de mazen van deze zeef van Winkler? Wie een programmaatje AANUIT maakt waaruit het antwoord op de vraag blijkt, krijgt van mij een zesje. Wie het antwoord zonder programmeren vindt en een passende redenering bedenkt krijgt een tien. Een aanwijzing: de meeste getallen hebben een even aantal delers. De priemgetallengenerator Je onderzoekt of een getal N>2 priem is via: For(K,3,ð(N),2) If fPart(N/K)=0: Goto NP End "NP= NIET PRIEM" Dit met de waarschuwing, dat je niet onbeperkt uit een lus mag springen (met Goto NP); na ongeveer 200 keer raakt de interne Goto teller geheel de kluts kwijt en weigert dienst. Dat bezwaar kan alleen opgeheven worden ten koste van de snelheid, door de for lus open te breken, ongeveer als volgt: 1üK Lbl D K+2üK If fPart(N/K)=0:Goto NP If K>ð(N):Goto P Goto D "K=DELER" "Niet priem" "Priem" Zie de programma's PRIEMTST en PRIEMRIJ. Eratosthenes, zegt men, zeefde de priemgetallen uit de natuurlijke getallen. Begin met 2 en schrap alle veelvouden van 2 behalve 2 zelf. Dan hetzelfde voor 3, enzovoorts. Dat laten we de rekenmachine doen. Makkelijk zat. Een probleem is echter dat je voor grote priemgetallen hiermee niet gemakkelijk uit de voeten kunt. GETALLEN -7- Het aantal priemgetallen neemt af, verhoudingsgewijs. Met een TI-83 (Silver Editie) maakte ik een lijst van de eerste 784 priemgetallen: p1 =2, p2 =3, p3 =5, …, p784=6007. Hieruit las ik dat p100=541, p200=1223, p300=1987, p400=2741, p500=3571, p600=4409 en p700=5279. De verschilrij hiervan is: 541, 682, 764, 754, 830, 838, 870. De priemgetallendichtheid (het aantal priemgetallen per 1000 bijvoorbeeld) neemt dus geleidelijk af. Het honderdste priemgetal p100=541 hetgeen betekent dat er aan het begin van de lijst (laten we zeggen tussen de natuurlijke getallen 1 en 1000) gemiddeld ongeveer 1000/5.41 » 185 priemgetallen per 1000 zijn, daarna 1000/6.82 » 147, vervolgens 131, 133, 120, 119 en 115. De 90 priemgetallen tussen 100 000 en 101 112 hebben een dichtheid van 1000/12.34, ongeveer 81 priemgetallen per 1000. Voor het aantal priemgetallen tussen 1 en n geldt de benaderingsformule p ( n) » n . ln n De natuurlijke logaritme van n, ln n, is een zeer traag stijgende functie. Daar is een knop voor. Kijk maar eens naar de uitkomsten van ln(1000) en ln(100000000). Bij zulke relatief kleine getallen als hier gebruikt zijn klopt de formule nog niet erg: 6000/ln(6000)=690 in plaats van het gemeten aantal 783. Pas overtuigend wordt dit verband als je heel wat meer Gigabytes en MegaHerz hanteert. De vraag dringt zich op, of op de zeer lange duur het vóórkomen van priemgetallen zo zeldzaam wordt, dat het zelfs ophoudt. Komt er een eind aan de rij priemgetallen? Of zijn het er oneindig veel? Met een kleine redenering is aan te tonen dat er na elk priemgetal (hoe groot ook) altijd een groter priemgetal te vinden is. Veronderstel dat N het grootste priemgetal is. Je kunt nu een groter getal M construeren door het product van de priemgetallen t/m N met één te vermeerderen: M = p1 ´p2 ´p3 ´…´N + 1. Dit getal is niet deelbaar door p1 , p2 , …,N (want de afstand tussen opvolgende priemgetallen moet minstens twee zijn, de waarde van het kleinste priemgetal). M kan geen priemgetal zijn (volgens de veronderstelling dat N het grootste priemgetal is), maar dan zou er tussen N en M nog minstens één priemdeler van M moeten liggen (groter dan N). Er is dus een groter priemgetal (misschien M zelf wel). Zo'n soort redenering heet een bewijs uit het ongerijmde. Grootste Gemene deler De getallen 440 en 140 hebben gemeenschappelijke delers. Behalve de deler 1 (die deler hebben alle getallen gemeenschappelijk) zijn dat 2, 4, 5, 10 en 20. De grootste gemeenschappelijke deler (de GGD) is dus 20. Onder MATH<NUM>9: vind je gcd(440,140)=20 (gcd: Greatest Common Divisor). Dat de GR het antwoord direct geeft kan ons even niet schelen. Kijk naar de ontbinding van de twee 3 2 getallen: 440=2 .5.11 en 140=2 .5.7. De gemeenschappelijke priemdeler 5 valt direct op, de deler 4 is de hoogste macht van 2 die in beide getallen voorkomt. Zodat het antwoord 4.5=20 wel duidelijk zal zijn. Als A niet deelbaar is door B, zal na delen een A rest C¹0 overblijven: = B¢ + C B GETALLEN -8- Hierbij moet opgemerkt worden dat B' op de TI-83 beschreven wordt door iPart(A/B), het gehele deel (niet lettend op een min-teken): iPart(-22/7)= -3. Je kunt in het algemeen schrijven: A/B=(iPart(A/B)+fPart(A/B)) oftewel A=B*(iPart(A/B)+fPart(A/B)) Als je een eventueel min-teken voor een getal A weglaat, krijg je de absolute waarde van A, genoteerd als |A|. Een stelling zegt dat GGD(A,B)=GGD(min(A,B), |A-B|). Gebaseerd op deze regel kun je de GGD gemakkelijk uit (laten) rekenen, mits je over het nodige geduld beschikt. De GGD(84,30) bijvoorbeeld berekenen we door telkens de GGD te nemen van het kleinste van de twee (30) en het absolute verschil van de twee (84-30=54): GGD(84,30)=GGD(30,54). Herhaling van dit proces geeft achtereenvolgens GGD(30,24) = GGD(24,6) = GGD(6,18) = GGD(6,12) = GGD(6,6), waarna duidelijk is dat de gezochte GGD gelijk is aan 6. Prompt A,B While AøB If A>B Then A-BüA Else B-AüB End End Disp A Euclides heeft een razendsnel algoritme ontwikkeld om de GGD van twee getallen A en B te vinden. Dat gaat ongeveer zo. Deel A door B en bepaal de rest C: B*fPart(A/B)->C. Deel daarna B door C en bepaal de rest D. Ga hiermee door tot de rest nul is. De voorlaatste rest was de GGD van A en B. Het bewijs van de juistheid van dit algoritme berust op het volgende inzicht. Stel A=B'B+R; iedere gemeenschappelijke deler (D) van A en B is ook een gemeenschappelijke deler van B en van de rest (R). Immers, uit A=PD en B=QD volgt R=A - B'B = PD - B'QD = D(P - B'Q) is dus ook deelbaar door D. Dus GGD(A,B) = GGD(B,R). Het algoritme van Euclides berust op het net zolang doorschuiven van de rest tot deze nul is. Als bijvoorbeeld A=1234 en B=567, dan krijg je de volgende resten: 567*fPart(1234/567)=100; 100*fPart(567/100)=67; 67*fPart(100/67)=33; 33*fPart(67/33)=1 ; 1*fPart(33/1)=0 STOP De voorlaatste rest is de GGD, dus de GGD(1234,567)=1. Een opmerking. Omdat fPart een niet-gehele uitkomst berekent (in 10 decimalen benaderd) krijg je problemen als de rest exact nul moet zijn. Daarom moet je het int of het iPart commando gebruiken, zoals in het volgende programma gebeurd is. In plaats van B*fPart(A/B)üC dus AB*iPart(A/B)üC ClrHome Prompt A,B Lbl 0 A-B*iPart(A/B)üC BüA:CüB Disp A If Cø0:Goto 0 Disp "GGD(A,B)=",A Naar het schijnt heeft Sigmund Freud, de beroemde psychiater, geen enkel inzicht gehad in de ondeelbaarheid van getallen, hoewel het begrip GGD in zijn tijd (rond 1900) al op de lagere school behandeld werd. In citeer uit het boek Ongecijferdheid van J.A. Poulos: GETALLEN -9- Een van Freuds beste vrienden, Wilhelm Fliess vond de bioritmische analyse uit. Hij wees Freud op het feit dat de getallen 23 en 28, respectievelijk de cyclusduur van een bepaald mannelijk en vrouwelijk principe, de speciale eigenschap bezaten dat men elk mogelijk getal kon verkrijgen door 23 keer x plus 28 keer y te nemen. Zo kan men bijvoorbeeld het getal 6 krijgen door x = 10 en y = -8 te nemen: 23.10 + 28.-8 = 6. Freud was hiervan zo onder de indruk dat hij jarenlang vurig in bioritmen geloofde en dacht dat hij op zijn eenenvijftigste (51=1.23+1.28) zou sterven (Freud werd 83). Maar wat is het geval? Deze eigenschap is helemaal niet bijzonder. Hij geldt voor elk tweetal getallen (zoals 23 en 28) dat een GGD = 1 heeft. Diophantus wist dat al, 1600 jaar geleden. Lees verder. 1.2 Diophantische vergelijkingen Een Diophantische vergelijking speelt zich af in de verzameling van de gehele getallen. De coëfficiënten en de variabelen zijn gehele getallen. Een algemene uitdrukking voor een eerstegraads Diophantische vergelijking is: a. x + b. y = c met a, b, c, x en y geheel. Men zegt, dat c een lineaire combinatie is van x en y. De coëfficiënten van x en y zijn respectievelijk a en b. De eerstegraads Diophantische vergelijking 2x + y = 3 bijvoorbeeld heeft o.a. de oplossingen: (0,3), (1,1), (2,-1), (-1,5) , …; de grafiek ervan is een rechte lijn die door (o.a.) deze roosterpunten gaat. Eigenlijk is de grafiek geen lijn maar een verzameling van "losse" roosterpunten. Roosterpunten hebben gehele coördinaten. De lijn 2x + 2y = 3 daarentegen gaat door geen enkel roosterpunt. Een klein verschil met grote gevolgen. De Diophantische vergelijking 2x + 2y = 3 heeft geen oplossingen; de Diophantische vergelijking 2x + 2y = 4 echter weer wél: (0,2), (2,0), (1,1), (3,-1) enzovoorts. Hoe zit dat? De oplosbaarheid en de oplossingen van a x + b y = c hangen af van de GGD van a en b. Nodig en voldoende voor de oplosbaarheid daarvan is, dat c deelbaar is door de GGD van a en b. Wonderlijk! De lijn 105 x + 24 y = 30 gaat door oneindig veel roosterpunten; de lijn 105 x + 24 y = 31 echter gaat door geen enkel roosterpunt. Door welke roosterpunten gaat de lijn 105 x + 24 y = 30? Het programma DIOFANT1 geeft antwoord op die vraag. (De 1 uit de naam DIOFANT1 duidt op de graad van de vergelijking). Het zijn de punten (30 + 8n, -130 - 35n), waarbij n weer een (willekeurig) geheel getal is. Zo geeft n = -4 de gemakkelijk te controleren oplossing (-2, 10). Het algoritme van Euclides is gebruikt bij de oplossing van dit probleem. We volgen alle Euclidische stappen op de voet. L1 L2 L3 L4 ¯ ¯ ¯ ¯ 105 = 24 = 4.24+ 9 2.9 + 6 9 = 1.6 + 3 6 = 2.3 + 0 9 = 1.105 + -4.24 6 = 24 - 2.9 = 1.24 - 2(1.105-4.24) = -2.105 + 9.24 3 = 9 - 6 = 105 -4.24 -(-2.105+9.24) = 3.105 + -13.24 STOP De onderstreepte waarden links met de doorgeschoven resten {105, 24, 9, 6} komen in L1; de gehele delen {4, 2, 1} in L2 en de lineaire combinaties die de geschikte coëfficiënten opleveren in L3 en L4. GETALLEN - 10 - 2 2 De stelling van Pythagoras in R2: a + b = c 2 Een Pythagorieel drietal (a,b,c) is een drietal natuurlijke getallen dat voldoet aan: 2 2 2 a + b = c met GGD(a,b,c) = 1 GGD(a,b,c)=1 betekent dat a,b,c de eenvoudigste verhouding hebben. In feite is dit dus een Diophantische kwadratische vergelijking. Stelling: 2 2 2 2 2 2 2 De oplossingen van a +b =c worden beschreven door a=x - y , b=2xy, c=x +y (waarbij x en y natuurlijke getallen zijn met x-y = oneven). Bovendien geldt: Óf a óf b is even, c is oneven; Er zijn een paar regels over even (E) en oneven (O) die we hier symbolisch vermelden. E is van de vorm 2n; O is van de vorm 2n+1 (n geheel) E+E=E want 2n+2m=2.(n+m)=2k dus even O+O=E want 2n+1+2m+1=2.(n+m+1)=2k dus even E+O=O want 2n+2m+1=2.(n+m)+1=2k+1 dus oneven E.E=E want 2n.2m=2.2nm=2.k is even O.O=O want (2n+1)(2m+1)=4nm+2n+2m+1=2.(2nm+n+m)+1=2k+1 dus oneven E.O=E want 2n.(2m+1)=2.(2nm+n)=2k dus even 2 2 O is dus oneven; E is dus even 2 2 2 Kijkend naar a + b = c zijn er drie mogelijkheden: 2 2 2 (1) E + E = E ; deze mogelijkheid vervalt omdat (a,b,c) een factor 2 gemeen hebben 2 2 2 2 2 2 (2) O + O = E ; oftewel (2n+1) + (2m+1) = (2k) (n, m, k geheel). Uitwerken geeft: 2 2 2 4.(n +m +n+m) + 2 = 4k , maar dat is onmogelijk (een viervoud plus 2 kan niet een viervoud zijn), dus deze mogelijkheid vervalt eveneens. Blijft over: 2 2 2 (3) E + O = O . Dus óf a óf b is even (en c is oneven). 2 2 x +y 2 2 y -x 2xy Stel dat a even is (b dus oneven). 2 2 2 Er geldt b = c - a = (c+a).(c-a). De GGD(a,b,c)=1 dus ook GGD(c+a,c-a)=1. Dus hebben (c+a) en 2 (c-a) geen gemeenschappelijke priemdeler. Links [b ] staat een kwadraat, rechts [(c+a)(c-a)] staat een product van twee factoren die geen priemdeler gemeen hebben. Daaruit volgt dat c+a en c-a beide een 2 2 2 2 2 2 2 2 2 zuiver kwadraat zijn. Noem c+a=x en c-a=y dus b =x Òy . Dan is c=(x +y )/2, a=(x -y )/2 en b=xy; 2 2 2 2 na verdubbeling (halven kunnen we niet gebruiken) komt er: c=x +y , a=x -y en b=2xy. Even controleren of hiermee aan de stelling van Pythagoras voldaan is: 2 2 2 2 2 2 2 4 2 2 4 2 2 4 2 2 4 2 2 2 a + b = (x -y ) + 4x y = x -2x y +y + 4x y = x +2x y +y = (x +y ) klopt! In het programma PYTHAGO2, dat systematisch naar Pythagoriële drietallen zoekt, is uitgegaan van 2 2 2 2 A=2XY, B=Y -X en C=X +Y , waarna X in stapjes van 2 oploopt van 1 (als Y even is) of 2 (als Y oneven is) tot en met Y-1. GETALLEN - 11 - PYTHAGO2 1üY:0üT "T=REGELTELLER" Lbl P Y+1üY "Y MET 1 VERHOOGD" If fPart(Y/2)=0 "ALS Y=EVEN DAN STARTWAARDE S=1" Then 1üS Else "ALS Y=ONEVEN DAN STARTWAARDE S=2" 2üS End For(X,S,Y-1,2) "X VAN S TOT Y-1, STAPGROOTTE 2" XÜ+YÜüC: YÜ-XÜüB 2XYüA If gcd(A,B)ø1:Goto Q "VEREENVOUDIGBAAR DAN OVERSLAAN" min(A,B)üD "KLEINSTE VOOROP" max(A,B)üE DüA:EüB T+1üT If T=9 Then 1üT Pause ClrHome End Output(T,1,A):Output(T,6,B):Output(T,11,C) Lbl Q End Goto P 2 De stelling van Pythagoras in R3: 2 2 2 a +b +c =d In een rechthoekig blok met breedte a, lengte b en hoogte c is de lengte van een lichaamsdiagonaal te berekenen door twee keer de stelling van Pythagoras te hanteren. 2 2 De gronddiagonaal is Ö(a +b ) en in rechthoekige driehoek PQR komt er vervolgens voor de lichaamsdiagonaal: 2 2 2 2 2 R P 2 PR =PQ +QR =(a +b )+c . Dat is de stelling van Pythagoras in de ruimte R3. In de tekening zie je dat 2 2 2 Ö(2 +2 +1 )=Ö(4+4+1)=Ö9=3 c=1 Q d=3 Q a=2 Q b=2 QQ Als we uitsluitend naar gehele oplossingen van deze (Diophantische) vergelijking zoeken, is er geen tijdbesparend trucje mogelijk (zoals in het tweedimensionale geval). En dat is jammer, want er moeten liefst drie geneste for-lussen doorlopen worden bij het zoeken naar gehele oplossingen. Toch is er nog wel iets te verbeteren. De lichaamsdiagonaal (d) is namelijk altijd oneven, zodat een stapgrootte 2 bij d tijdwinst oplevert (die vooral bij grotere getallen merkbaar is). Stelling. 2 2 2 2 Voor de gehele oplossingen van a +b +c =d (a,b,c zijn natuurlijke getallen met GGD(a,b,c)=1) geldt dat d oneven is en precies twee van de drie a,b,c even zijn. We werken weer met de symbolen E voor even en O voor oneven. Er zijn vier mogelijkheden. E + E + E = E vervalt (namelijk alle termen zijn deelbaar door 2) O + O + O = O vervalt (4-voud + 3 ¹ 4-voud + 1) E + O + O = E vervalt (4-voud + 2 ¹ 4-voud) GETALLEN - 12 - Conclusie: E + E + O = O is de enige mogelijkheid. In het programma hebben we van dit laatste nuttig gebruik gemaakt. We slaan met de waarde van d er telkens een over: d = 3, 5, 7, … PYTHAGO3 1üT: 1üD Output(1,1,"A B C D ") Lbl 1 D+2üD "D IS ONEVEN DUS STAP 2" For(A,1,D-1) For(B,A,D-1) For(C,B,D-1) If AÜ+BÜ+CÜ=DÜ Then If gcd(A,gcd(B,gcd(C,D)))ø1:Goto 2 T+1üT Output(T,1,A) Output(T,5,B) Output(T,9,C) Output(T,13,D) If T=8 "NIEUWE SCHERMPAGINA" Then 1üT Pause :ClrHome Output(1,1,"A B C D ") End End Lbl 2 End End End Goto 1 2 2 2 2 Kijk naar het plaatje van de TI-83 en verbaas je. Op de bol x +y +z =33 =1089 liggen maar liefst 366 2 2 2 roosterpunten! De bol x +y +z =1090 daarentegen gaat door geen enkel roosterpunt. Het vermoeden van Fermat Er zijn dus oneindig veel oplossingen met positieve, gehele drietallen (x, y, z) van de vergelijking 2 2 2 x +y =z . Je kunt je afvragen, nadat je de stelling van Pythagoras voor gehele getallen hebt doorgrond, in hoeverre er oplossingen zijn van vergelijkingen als: 3 3 n n 3 x +y = z 4 4 4 x +y = z .... en in het algemeen: n x +y =z (met x, y, z en n positieve gehele getallen, n ³ 3). Dan ben je niet de eerste die zich dat afvraagt. De vraag heeft haar oorsprong in de wiskunde van het oude Griekenland, tweeduizend jaar voordat Pierre de Fermat (1601-1665) er diepgaand onderzoek naar verrichtte. Fermat was jurist aan het gerechtshof in Toulouse en in zijn vrije tijd een gedreven en nauwgezet wiskundige. Hij wordt wel eens de koning van de wiskunde-amateurs genoemd. Zijn vermoeden was, dat de bovenvermelde vergelijking voor geen enkele n oplossingen had. GETALLEN - 13 - Maar een vermoeden telt niet in de wiskunde. Al bevestig je de juistheid met behulp van computers voor alle getallen onder de miljard, dan is dat nog steeds geen bewijs. Exactheid wil zeggen dat er geen speld tussen te krijgen is. Immers, misschien vindt later iemand een oplossing die boven de miljard ligt. Maar … In 1637 schrijft Fermat: Ik heb een waarlijk spectaculair bewijs van deze stelling gevonden, maar deze marge is te smal om het te bevatten. Inmiddels hebben de grootste wiskundige genieën (waaronder Euler) hun tanden stuk gebeten op dit "laatste" raadsel van Fermat, maar geen sluitend bewijs gevonden. Men gelooft thans dat er toch een onvolkomenheid in zijn vermeende bewijs heeft gezeten. Op 25 oktober 1991 kwam er een eind aan tweeduizend jaar onzekerheid. Na acht jaar hartstochtelijke, hoogst specialistische arbeid publiceerde de Brit Andrew Wiles in een manuscript van meer dan honderd bladzijden een bewijs dat uiteindelijk de toets der kritiek kon doorstaan. Men zegt dat er in de hele wereld maar een paar honderd wiskundigen zijn die zijn werk hebben begrepen. Maar het bewijs staat als een huis. We hoeven dus geen moeite te doen om het laatste raadsel van Fermat op te lossen. Wat we wel kunnen proberen is, te kijken naar "bijna" oplossingen. Laten we ons beperken tot de exponent n=3 en kijken naar oplossingen die er maar één naast zitten. Dan is de vraag: 3 3 3 Is de vergelijking x + y = z ± 1 oplosbaar? Let op. Als er ook maar één oplossing te vinden is (een zogenaamd tegenvoorbeeld) dan kun je met die oplossing een vermoeden ontzenuwen, een bewijs leveren dus. Met een rekenmachine mogen we in dit geval dus op zoek gaan naar een bewijs! Goede tijden slechte tijden … We nemen ons voor systematisch te zoeken naar oplossingen (x,y,z) van een Diophantische vergelijking die "heel weinig" afwijkt van de vergelijking van Fermat. Zijn er oplossingen (zo ja, welke?) van de vergelijking n n n x + y = z ± M? We beperken ons eerst tot n=3 en M=1 dus: 3 3 3 3 3 3 x + y = z + 1 en x + y = z - 1 Laten we met de rekenmachine maar eens beginnen met Z lopend van 10 tot en met 25 en X en Y van het begin af (2) tot en met de lopende waarde van Z. Als je daarvoor alle getallen X en Y achtereenvolgens van 2 t/m Z gebruikt ziet je programma er uit als programma A hieronder. Drie geneste for-lussen, dat kost tijd. Kostbare tijd. Dat kun je constateren door programma A af te draaien. Mijn TI-83 Silver Edition (hoewel twee keer zo snel als een gewone TI-83) deed er ruim twee minuten over. Nou zit er symmetrie in de verschillende mogelijkheden: X en Y zijn verwisselbaar (symmetrisch). 3 3 3 3 12 + 15 is bijvoorbeeld hetzelfde als 15 + 12 . Je verliest dus geen informatie (en wat belangrijker is: geen oplossing) door in de binnenste lus Y niet alle waarden maar alleen die van X t/m Z te laten doorlopen. Het programma B werkte z'n opdrachten af, voor Z van 10 t/m 25, in iets meer dan één minuut. Een duidelijke verbetering dus. Maar nog geen goede tijd. Dan maar even goed nadenken. Is er nog tijdwinst te boeken? Is het een idee om te starten met X en Y ongeveer even groot, daarna X een stapje groter te maken en Y daarbij aan te passen zodanig, dat Y vlakbij een mogelijke oplossing blijft? 3 3 3 3 3 1/3 3 1/3 Het eerste betekent dat X +X =2X » Z dus X » (Z /2) , dus starten met X = 1+int((Z /2) ); 3 3 1/3 het tweede betekent dat Y = (Z - X ) uitgeprobeerd moet worden. Bij elke combinatie X, Z hoeft dan maar één Y waarde uitgerekend te worden. In programma C is dit verwezenlijkt, met een verbluffend resultaat! Het programma is in 5 seconden klaar. Een goede tijd, 26 keer zo snel als bij de eerste poging. GETALLEN - 14 - programma A:130 sec programma B: 72 sec programma C: 5 sec For(Z,10,25) For(X,2,Z) For(Y,2,Z) For(Z,10,25) For(X,2,Z) For(Y,X,Z) For(Z,10,25) (.5Z^3)^(1/3)üK 1+int(K) üK For(X,K,Z-1) (Z^3-X^3)üQ round(Q^(1/3),0)üY abs(Y^3-Q)üE If E=1: Then . . . Een overzicht van de doorlopen Z, X en Y waarden: programma A programma B programma C X 2 2 2 ... 3 3 ... 3 4 4 ... 4 X 2 2 ... 2 3 ... 3 4 4 ... 4 5 X 8 9 9 10 10 11 11 12 12 13 12 ... Y 2 3 4 ... 2 3 ... 10 2 3 ... 10 Z 10 10 * 10 * 10 * 10 10 10 * 10 10 Y 2 3 ... 10 3 ... 10 4 5 ... 10 5 Z 10 10 10 10 10 10 10 10 10 Y 8 6 8 7 9 7 10 8 10 8 12 Z 10 10 11 11 12 12 13 13 14 14 15 De waarden met * zijn verwisselbaar, komen dus twee keer voor. Het blijkt dat er nogal wat oplossingen bestaan van de "bijna" Fermat vergelijking. Het programma PSFERMAT (een afkorting van Pseudo Fermat) levert bijvoorbeeld: 4 4 4 36 + 21 = 37 - 64 (een afwijking van 0,003%) 5 5 5 13 + 16 = 17 + 12 (een afwijking van slechts 0,00085%) Voor n=3 en een afwijking van 1 zijn er veel oplossingen binnen het bereik van de GR. Robert Schipper (geen wiskundige, maar een amateur als Fermat) schreef me dat hij een algemene 3 3 3 oplossing heeft gevonden voor x + y = z + 1, namelijk 3 4 3 x = 72a +1, y=144a , z=6a(24a +1) (a geheel) OPGAVEN 2. 3. 3 3 3 De eerste oplossing die het programma PSFERMAT vindt is 6 + 8 = 9 - 1. Controleer dit met een berekening en bepaal alle volgende oplossingen met z < 200. Bewijs dat de oplossing van R. Schipper inderdaad voldoet (voor alle a). 3 3 3 Voor a=1 komt er 73 + 144 = 150 + 1; 3375001 = 3375000 + 1. Om het maar eens natuurkundig uit te drukken: voor 99,99997% de ontkenning van de stelling van Fermat. Een voor natuurkundigen volstrekt verwaarloosbaar foutje. Waar hebben die wiskundigen zich al die eeuwen eigenlijk druk over gemaakt! Sterker nog: er zijn oneindig veel waarden van a die we in 3 3 3 kunnen vullen om zo een bijna perfecte benadering van x +y =z te krijgen. Neem de bescheiden 13 waarde a = 4 en je krijgt een afwijking van 1 op de 5.10 , dat is ongeveer het totale aantal zandkorrels 3 3 3 aan een strand van 1 km lang, 100 m breed en 1 m diep. Op één korrel zand na x +y =z . Wat een wonderlijke prestatie van het menselijk vernuft, dat "we" (c.q. Andrew Wiles) aangetoond hebben dat 3 3 3 3 3 3 x + y = z nooit kloppend te krijgen is terwijl x + y = z + 1 oneindig vaak klopt. GETALLEN - 15 - PSFERMAT Input M:ClrHome For(Z,1,100) 1+int((.5Z^N)^(1/N))üK For(X,K,Z-1) (Z^N-X^N)üQ round(Q^(1/N),0)üY abs(Y^N-Q)üE Output(7,1,"X") Output(7,6,"Y") Output(7,11,"Z") Output(8,1," Output(8,1,X) Output(8,6,Y) Output(8,11,Z) If abs(E)÷M Then Output(1,1,"X=") Output(1,4,X) Output(1,14,"N=") Output(1,16,N) Output(2,1,"Y=") Output(2,4,Y) Output(3,1,"Z=") Output(3,4,Z) Output(4,1,"VERSCHIL:") Output(4,10,E) Output(5,10,"-----") Pause :ClrHome End End End ") Fibonacci en het 3n+1 vermoeden De rij van Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, … is de moeite van het bestuderen waard. Na een beetje puzzelen lukt het je vast wel om de volgende term te vinden. Elke term is namelijk de som van de twee eraan voorafgaande termen: 3 = 1+2, 5 = 2+3, 8 = 3+5 enzovoorts. Als we term nummer n voorstellen door tn is het verband dus: tn+2 = tn+1 + tn (t1=1, t2=1) Kijken we naar de verhouding t n / tn+1 van twee opvolgende termen dan krijg je achtereenvolgens: 1/2, 2/3, 3/5, 5/8, … afgerond 0.5, 0.67, 0.6, 0.625, 0.615, … Met het programma FIBONAC verschijnen de termen in L1 en de opvolgende verhoudingen op het scherm. ClrHome:ClrAllLists 1üX:1üY For(T,1,100) X+YüZ YüX ZüY YüL1(T) Output(1,1,X/Y) End GETALLEN - 16 - De verhouding in deze rij convergeert naar een limietwaarde r = 0,61803398… die de "gouden" verhouding of gulden snede genoemd wordt. Kijk naar de breedte en hoogte van de rechthoeken hierboven. De verhouding tussen de breedte en lengte gaat voor grotere rechthoeken steeds meer lijken op wat men vroeger een ideale verhouding vond. Elke rechthoek met hoogte h wordt op een vierkant met zijde h geplaatst en levert zo de volgende rechthoek. Wie over de abc formule beschikt (de oplossing van kwadratische vergelijkingen) kan r exact uitrekenen. Stel dat de hoogte van zo'n ideale rechthoek r is en de breedte 1, dan moet de verhouding constant blijven, dus: r 1 -1± 1+ 4 2 r : 1 = 1 : (1+r) oftewel = zodat r + r - 1 = 0. En nu: r1, 2 = ; het minteken 1 1+ r 2 kunnen we niet gebruiken omdat r positief moet zijn. Dus r = 1 2 ( -1 + 5 ) » 0,618034 De Fibonaccigetallen 2, 3, 5, 8, 13 enzovoorts en de erbij behorende limiet r spelen een rol bij het 3n+1 raadsel. In het midden van de vorige eeuw kwam een ogenschijnlijk onnozel spelletje onder de aandacht van de wiskundigen. Begin met een willekeurig, geheel getal n groter dan 2 en pas het volgende voorschrift steeds maar weer toe tot n =1 geworden is. Als n even is halveer je n; als n oneven is ga je over op 3n+1. Startend met bijvoorbeeld n=3 komt er: 3 ® 10 ® 5 ® 16 ® 8 ® 4 ® 2 ® 1 STOP. [ Doorgaan heeft geen zin omdat je in een cirkel zit: 1 ® 4 ® 2 ® 1.] Daar is gemakkelijk een programma bij te maken (N3PLUS1), dat we aan de lezer overlaten. 16 Men heeft geconstateerd dat je voor alle startwaarden n kleiner dan 3.10 op 1 uitkomt. Het vermoeden rijst, dat je altijd op 1 uitkomt. Maar een vermoeden is nog geen bewijs en dat maakt het spelletje interessant. Tot op heden is er zelfs nog geen begin van een theorie die tot een bewijs zou kunnen leiden. Soms kan het erg lang duren voor we het eindpunt bereiken. Met onze GR ontstaat een lange rij bijvoorbeeld al met n = 27, waar 111 stappen nodig zijn. Rekenend met supercomputers heeft men bij het getal 100759293214567 gevonden dat het einde pas na 1820 stappen komt. k Startgetallen van de vorm 2 - 1 (3, 7, 15, 31, 63, 127, …) beginnen met een aantal keren verdrievoudiging en worden steeds maar groter, tot uiteindelijk de halvering toeslaat en het eindpunt 1 toch wel degelijk, zij het moeizaam, bereikt wordt. Versnellend daarbij werkt het feit dat voor oneven waarden van n, 3n+1 altijd even is en dus daarna door 2 gedeeld wordt. Bij de drietallen van Pythagoras gebruikten we de letters E en O voor even en oneven. In deze symbolentaal: 3n+1 is type 3×O+1 = O+O=E; dus na 3n+1 komt altijd ½(3n+1). Hierachter een paar plaatjes met n in L1 en het aantal nodige stappen in L2. De zeven stappen bij n=3 zijn al vertoond; de 2 stappen bij n=4 zijn 4 ® 2 ® 1; vanuit 5 gaat het verder met 16 ® 8 ® 4 ® 2 ® 1, dat zijn 5 stappen; enzovoorts. Twee dingen vallen op. Allereerst de grote verscheidenheid en springerigheid. In het gebied van n=122 t/m n= 128 ben je soms (bij n=128) al na 7 stappen klaar, maar vlak daarvoor (bij n=124, 125, 126) kost het maar liefst 108 stappen. GETALLEN - 17 - Dit laatste groepje van drie "even trage" n-waarden is hoogst merkwaardig. Precies hetzelfde aantal stappen! Bij n=124 en n=125 zie je de kettingreactie al op de derde stap (vanaf 94) gelijk oplopen. Maar bij n=126 leidt een heel andere weg naar Rome. Pas na de dertiende stap (vanaf 364) zit deze op hetzelfde spoor. Het eerste treffen is te begrijpen: via EEOE of via OEEE, van n via ½n en ¼n naar 0,75n+1 respectievelijk van n+1 via 3(n+1)+1 en ½(3n+4) en ¼(3n+4) naar (ook) 0,75n+1 klopt; maar het tweede treffen (na EOEOEOEOEOEOEE) lijkt volstrekt toevallig. Zie de drie plaatjes hierna. Zulke clusters van "trage" getallen komen opvallend vaak voor. Het volgende cluster ligt bij n=130 t/m n=134, waar het stappenpatroon betrekkelijk snel naar 1 gaat (in 28 stappen namelijk). We zullen ons niet wagen aan een tot mislukken gedoemde poging tot bewijsvoering. Maar de drang om toch iets te begrijpen van dit wonderlijke spelletje is groot. Voor de hand ligt een op de kansrekening gebaseerde redenering met verwachtingswaarden. Weliswaar is hier strikt genomen geen sprake van aselect (random) gekozen getallen, maar voor een gewoon mens heeft het daar wel erg veel van weg. Populair gezegd wordt de verwachtingswaarde berekend door elk waarnemingsgetal met "z'n" kans te vermenigvuldigen en al deze producten op te tellen. Daar gaan we. Is het startgetal n even (de kans daarop is ½) dan krijg je ½n, is het startgetal n oneven (eveneens kans ½) dan komt er 3n+1. De verwachting na één stap is dus ½.½n + ½.(3n+1) = 0,25n + 1,5n + 0,5 = 1,75n + 0,5. Bij een verwachtingswaarde moet je denken aan de gemiddelde uitkomst bij een zeer groot aantal "experimenten". Controle op de geloofwaardigheid van deze redenering kan verricht worden met behulp van een programmaatje dat voor de 100 opvolgende getallen 9900 t/m 9999 de verhouding voor en na één stap opslaat in L3(1) t/m L3(100). Het gemiddelde Ë van L3 wordt uitgerekend met 1-VarStats. De aldus gevonden waarde 1.750050252 komt erg goed overeen met de op basis van toevalsprocessen verwachte uitkomst 1,75n + 0,5; nemen we voor n het gemiddelde startgetal (9950 of 1,75 . 9949,5 + 0,5 = 1,750050254 eigenlijk 9949,5) dan is de voorspelling 9949,5 Nou kunnen we wel blij zijn met deze prachtige voorspelling, maar in feite is het raadsel alleen maar groter geworden! Gemiddeld genomen en voor grote getallen wordt een getal opgevolgd door een ongeveer 1,75 keer zo groot getal. Dat zou een letterlijk exponentiële stijging betekenen in plaats van een krimp naar het eindgetal 1. Maar de praktijk is natuurlijk minder simpel. Elk oneven getal namelijk wordt onverbiddelijk gehalveerd. In plaats van het model na één stap E: dan ½n met verwachting ½n.½ = ¼n O: dan 3n+1 met verwachting (3n+1).½ ; totale verwachting 1,75n + 0,5 moet een model voor anderhalve stap E: ½n met verwachting ½n.½ = ¼n OE: ½.(3n+1) met verwachting ½.(3n+1).½ ; totale verwachting 1.n + 0,25 gehanteerd worden. Met verwaarlozing van de onbelangrijke term 0,25 betekent dit dat gemiddeld en op de lange duur een getal gelijk is aan zijn opvolger (of ietsje groter zelfs). GETALLEN - 18 - Ook nu klopt het experiment (Ë = 1.000025126) met de voorspelling (1,000025127). Maar het raadsel blijft. Verder onderzoek in deze richting blijkt ons aanvankelijk niet verder te helpen. De mogelijkheid OO vervalt. Na twee hele stappen EE, EO, OE vinden we een verwachte verhouding van 19/16 (als we de rest ½ verwaarlozen) dat gaat aardig richting 1, maar … Na drie hele stappen EEE, EEO, EOE, OEE, OEO is de voorspelde verhouding juist weer de verkeerde kant op: 103/64. En daarna blijft voor hele stappen de verwachting rond de 1,45 schommelen. Kijkend naar de extra halve stap OE (na O komt altijd E) vinden we voor tweeënhalve stap de verwachting 1.n + 3/8; de coëfficiënt van n blijft steeds 1, met een extra halve stap. OPGAVE 4. Controleer of de verwachte groeiverhoudingen na 2, 2½ en 3 stappen (respectievelijk 19/16, 1 en 103/64) goed berekend zijn. De schrijver van dit boek is menselijk … Probleem! Hoe kan (vermoedelijk) elk getal uiteindelijk op 1 uitkomen terwijl gemiddeld genomen de verwachting is dat de getallen ongeveer gelijk blijven of zelfs iets stijgen? Laten we het programma N3PLUS1 er nog maar eens bij halen en voor een honderdtal grote getallen het gemiddeld aantal stappen uitrekenen. Dat doen we met STAT<CALC> en 1-VarStats. Voor de groep n=9900 t/m 9999 vinden we 93 voor het gemiddeld aantal stappen; voor de groep n=513 t/m 612 is het gemiddeld aantal 93 stappen 61. In het eerste geval is de gemiddelde "groeifactor" g te berekenen uit 1/9950 = g met als 61 oplossing g=0,906; in het tweede geval doe je dat met 1/563 = g met g=0,901. Deze uitkomsten wijzen er op dat in de praktijk gemiddeld en op de zeer lange duur een getal gevolgd wordt door een getal dat ongeveer 10% kleiner is. Kunnen we dat verklaren (niet bewijzen)? Als je de verschillende mogelijkheden met E en O op een rijtje zet, valt op dat er na een stap meer E's dan O's zijn. De kans op even en oneven is dus niet ½: kijk maar naar het aantal E's en O's in de laatste stap. Eén stap: E O E Twee stappen: EE EO OE stap 3 O Drie stappen: EEE EEO EOE OEE OEO E E stap 2 E E Vier stappen: E EEE E EEO E EOE E OEE E OEO O EEE O EEO O EOE stap 1 E O Enzovoorts. Laten we de kans op even p(E) aangeven met de letter p. Dan is p(O) = 1- p. GETALLEN O - 19 - O In het anderhalf-stapsmodel kunnen we nu de verwachting beschrijven met E: ½n.p plus OE: ½(3n+1).(1-p) groei per stap dus ½n.p + 1½.n+½-1½.np-½p = ½.(3-2p)n - ½p » ½.(3-2p)n (*) Voor de bepaling van p kijken we naar de eerste (of laatste) kolom hierboven en merken op dat, aangezien de mogelijkheid OO vervalt, het aantal E's in de eerste kolom in het vierstaps model gelijk is aan het totaal aantal E's en O's in het driestaps model, maar dat is weer gelijk aan het aantal mogelijkheden in het tweestaps model. Dat doet denken aan het plaatje bij de rij van Fibonacci, waar telkens een rechthoek werd gestapeld op een vierkant. Zie de vetgedrukte blokjes van letters. De rechthoek van 2 bij 3 wordt gestapeld op het vierkant van 3 bij 3 en wordt de rechthoek van 5 bij 3. De aantallen E's en O's in de eerste kolom, de startgetallen dus, volgen keurig netjes de rij van Fibonacci: (1, 1) (2, 1) (3, 2) (5, 3) (8,5) . . . Aangezien we weten volgens welke verhouding deze aantallen op den duur gaan optreden, is daarmee duidelijk geworden hoe groot de kans p is op een even getal. Die kans wordt gegeven door het verhoudingsgetal van Fibonacci: p » 0,618. In de formule (*) vullen we deze benadering in voor p en er komt ongeveer 0,882n uit. We noemen de coëfficiënt 0,882 de gemiddelde (of verwachte) groeifactor, te vinden door p = ½ (-1+Ö5) in te vullen: ½.(3-2.½(-1+Ö5)) = 2-½Ö5; zie het vervolg. De verwachting is dus dat de getallen op den duur gemiddeld ongeveer 12% kleiner worden na elke tussenstap. Waarmee we dicht bij een bevredigende verklaring van het 3n+1 raadsel gekomen zijn. De verwachte gemiddelde groeifactor 2-½Ö5 » 0,881966 kwam er prachtig uitrollen, toen ik naar de virtuele TI-83 greep (die op mijn modale PC ongeveer 12 keer zo snel rekent als de TI83 SE) en het volgende programmaatje intypte. Na een kwartiertje stabiliseerde de groeifactor zich rond de 0,882. ClrHome 0üT:0üG:0üU Input "STARTGTAL?",N Lbl 0 NüM Lbl 1 U+1üU If fPart(M/2)=0 Then: M/2üM Else: 3M+1üM End If Mø1:Goto 1 G+(1/N)^(1/U)üG "G=GROEIFACTOR" T+1üT:Disp G/T N+1üN:0üU:Goto 0 Een nieuw probleem duikt op, als we starten met een veel grotere waarde van n. Het startgetal 1 miljoen leverde na 10 uur rekenen met de virtual TI-83 een groeifactor die tot rust kwam in de buurt van 0,890638, dat is 1% hoger dan voorspeld was (0,881966). Hoe groter de startwaarde, des te hoger de groeifactor. En bij lagere startwaarden is het net zo: tussen n=10 en n=300 loopt de groeifactor g op van ongeveer 0,75 naar 0,84. Waar kan dat aan liggen? GETALLEN - 20 - n 10 100 1000 1000000 g 0,75 0,80 0,88 0,89 Het lijkt erop dat p gemiddeld langzaam naar zijn limietwaarde r»0,618 groeit. Dat wordt duidelijk met een programmaatje dat het voortschrijdende gemiddelde van die verhouding t t1 t2 + + ... + n t t tn +1 pn = 2 3 n uitrekent: 0,5 ; 0,583 ; 0,589 ; 0,598 ; enzovoorts, waaruit blijkt dat na de eerste 10 termen pn pas boven 0,61 komt en na 100 stappen nog "slechts" op de waarde 0,6172 zit. OPGAVEN 5. Toon aan dat het verband tussen het gemiddeld aantal stappen s en de startwaarde n beschreven kan worden door s » 20 × 10 log n (neem p=0,61). 6. (a) Ontbind de getallen 100 000, 100 001, 100 002 en 100 003 in priemfactoren. (b) Zelfde vraag voor de getallen 2´3´5´7´11´13´17´19 ± 1 7. Onderzoek voor welke natuurlijke waarden van n £ 41 de uitdrukking 2 n - n + 41 een priemgetal oplevert. 8. Het vermoeden van Goldbach (1690-1764) luidt, dat elk even getal (³ 4) op minstens één manier te schrijven is als som van twee priemgetallen. Een bewijs daarvoor is nimmer gevonden. Ermee verwant is het vermoeden dat elk oneven getal (³5) als de som van hoogstens drie priemgetallen (5=2+3; 7=2+2+3=2+5) kan worden geschreven. Kan elk oneven getal (³5) als de som van hoogstens drie verschillende priemgetallen beschreven worden? Formuleer je eigen vermoeden. 9. Er is precies één roosterpunt in het eerste kwadrant (met positieve, gehele coördinaten) dat op de lijn 23x + 29y = 792 ligt. Welk punt is dat? Gebruik DIOFANT1. 10. Bij de drietallen van Pythagoras: a + b = c . Als c-b=1 is geldt: a = 2c-1 Zo vind je (3,4,5), (5,12,13), (7,24,25) enz. Bewijs dit verband. 2 Bewijs ook, uitgaande van c-b=2, dat a = 4(c-1). Hieruit vind je o.a. (8,15,17) en (12,35,37). GETALLEN 2 2 2 - 21 - 2 ANTWOORDEN 1. AANUIT ClrHome ClrAllLists Prompt N ClrHome Nüdim(L1) For(D,1,N) For(K,D,N,D) K-L1(K)üL1(K) End:End For(I,1,N) If L1(I)ø0:Disp L1(I) End Het aantal keren drukken is gelijk aan het aantal delers van een rangnummer. Als een lampje op het eind aan geschakeld is moet er een oneven aantal keren gedrukt zijn. Waaruit volgt dat het rangnummer een paar gelijke delers had. Zo krijgen we een rij met kwadraten. 2. 3 3 3 9 + 10 = 12 + 1 3 3 3 64 + 94 = 103 + 1 3 3 3 71 +138 = 144 - 1 3 3 3 73 + 144 = 150 + 1 3 3 3 135 + 138 = 172 - 1 3 3 2 2 3 3. Gebruik makend van (p + q) = p + 3p q + 3pq + q komt er: 3 9 2 6 3 3 12 3 3 72 a + 3.72 a + 3.72a + 1 + 144 a = {6a(24a +1)} + 1 ??? 3 9 6 3 wegdelen van 216a geeft links en rechts dezelfde coëfficiënten: 4608a + 1728a + 72a + 1 5. (1/n)^(1/s) » 0,89 geeft 1/s log 1/n » log 0,89 » -0,05 6. 100000 = 2 ´5 2´3´5´76´11´13´17´19 + 1 = 347 ´ 27953 100001 = 11´9091 2´3´5´76´11´13´17´19 - 1 = 53´197´929 100002 = 2´3´7´2381 100003 = 100003 (priem!) 7. 5 5 Voor alle gehele n £ 40 is het priem; voor n = 41 is het voor het eerst niet priem 8. Oneven getallen vanaf 19 kunnen als de som van 2 of 3 priemgetallen geschreven worden. Vermoedelijk! 9. x = -3960 + n´29; y = 3168 - n´23. Voor n=137 krijg je het punt (13,17) 10. a = c - b = (c+b)(c-b) = (c+b).1 met b=c-1 geeft a = 2c-1 2 2 2 2 a = c - b = (c+b).2 met b = c-2 geeft a = 4(c-1) 2 GETALLEN 2 2 2 - 22 -