Pythagoras en Fermat

door Kees den Ijzerman

De oude Babyloniers schijnen Pythagoras al gekend te hebben; d.w.z. de stelling, want Pythagoras is immers pas vele eeuwen later geboren. Op de middelbare school maken wij bij meetkunde al gauw met zijn stelling kennis in deze vorm:

Het meest gebruikte getallen voorbeeld is 3,4,5. Mijn schoonvader die in de bouw zat noemde dat de 3-4-5 steek. Als je met drie latten en drie spijkers een driehoek in elkaar zette waarvan de afstanden van de drie spijkers zich precies verhielden als 3:4:5 dan had je een zuivere rechte hoek waarmee je iets haaks kon uitzetten.

Die stelling van Pythagoras moest je op school leren bewijzen. Van jaren geleden herinner ik me een boekje met meer dan 90 bewijzen van 'Pythagoras'. Hier volgt een simpel grafisch bewijs.

Een ander Pythagoras drietal dat bij velen is blijven hangen is 5,12,13. Zijn er veel van die drietallen?

Hoeveel zijn er eigenlijk onder de 100? (Het zijn er 50). Maar voor dat we daar met een Basic program antwoord op geven eerst een kleine opmerking voor beginners en slaperige profis. De opdracht DIM a%(3,2) dimensioneert een array met vier rijen en drie kolommen, en dus in totaal met 12 elementen. Vergeet niet de nul-rij en de nul-kolom.

Het korte program ArrayTest demonstreert dat.

100 REM>ArrayTest

110 REM Kees den IJzerman

120 REM 970728

130 REM Voor alle Acorns

140 :

150 DIM a%(3,2)

160 a%(0,0)=1:a%(0,1)=2:a% (0,2)=3

170 a%(1,0)=4:a%(1,1)=5:a% (1,2)=6

180 a%(2,0)=7:a%(2,1)=8:a% (2,2)=9

190 a%(3,0)=10:a%(3,1)=11:a% (3,2)=12

200 PRINT "Nulde rij

";a%(0,0);",";a%(0,1);",";a%(0,2)

210 PRINT "Eerste rij

";a%(1,0);",";a%(1,1);",";a%(1,2)

220 PRINT "Tweede rij

";a%(2,0);",";a%(2,1);",";a%(2,2)

230 PRINT "Derde rij

";a%(3,0);",";a%(3,1);",";a%(3,2)

260 END

Maar merk op dat DIM a%(n) de nul-kolom niet kent. Die vijftig drietallen bevatten een groot aantal veelvouden. Bijv. 6,8,10 of 10,24,26. Die willen we er niet bij hebben. Daarom moet alles zo lang in het werkgeheugen worden opgeborgen. Daarvoor hebben we nodig de opdracht DIM pd%(51,51). Die extra eind-rij nummer 51 is nodig omdat FOR-NEXT-lussen de lus-voorwaarde pas testen nadat de stap gedaan is en voordat je het weet zit je met de error message "Subscript out of range". Die nul-rij gebruik ik overigens nooit. Als je bijv. in een array binair moet zoeken komt de zoek-procedure al gauw in de nul-rij of de eind-rij terecht. Zo krijg je de fout boodschap niet.

Het program PythaDrie, dat ook de enkelvoudige P-drietallen onder de 100 op het scherm brengt (hoeveel zijn het er ?) werkt in MODE7. Dat is nodig voor 8-bitters. Dan heb je de ruimte. Het array vraagt veel werkruimte.

100 REM>PythaDrie

110 REM Kees den IJzerman

120 REM 970728

130 REM Voor alle Acorns

140 :

150 MODE7

160 REM VDU2

170 DIM pd%(51,51):n%=0

180 PRINT "Pythagoras drietallen"'

190 PROCvind

200 PROCenkelvoud

210 REM VDU3

220 END

230 :

240 DEFPROCvind

250 FOR a%=1 TO 97

260 FOR b%=a%+1 TO 98

270 hypo=SQR(a%^2+b%^2)

280 IF hypo=INT(hypo) AND hypo<100 PROCarray

290 NEXT

300 NEXT

310 PRINT "Alle P-drietallen < 100."'

320 ENDPROC

330 :

340 DEFPROCarray

350 c%=hypo:n%=n%+1

360 pd%(n%,0)=a%:pd%(n%,1)=b%:pd%(n%,2)=c%

370 PROCprint

380 ENDPROC

390 :

400 DEFPROCenkelvoud

410 FOR i%=1 TO n%

420 a%=pd%(i%,0):b%=pd%(i%,1):c%=pd%(i%,2)

430 IF pd%(i%,0)<>0 PROCprint:PROCcontrole

440 NEXT

450 PRINT "Alle enkelvoudige P-drietallen <100"'

460 ENDPROC

470 :

480 DEFPROCcontrole

490 FOR j%=i%+1 TO n%

500 d%=pd%(j%,0):e%=pd%(j%,1):f%=pd%(j%,2)

510 q1=d%/a%:PROCq1

520 NEXT

530 ENDPROC

540 :

550 DEFPROCq1

560 IF q1=INT(q1) q2=e%/b%:PROCq2

570 ENDPROC

580 :

590 DEFPROCq2

600 IF q2=INT(q2) AND q2=q1 q3=f%/c%:PROCq3

610 ENDPROC

620 :

630 DEFPROCq3

640 IF q3=INT(q3) AND q3=q2 pd%(j%,0)=0

650 ENDPROC

660 :

670 DEFPROCprint

680 PRINT a%;",";b%;",";c%

690 ENDPROC

De veelvouden worden gevonden en ongeldig gemaakt door DEFPROCenkelvoud dat zoekt met de procedure's q1, q2 en q3. Als er een is gevonden wordt het eerste van dat P-drietal veranderd in nul en bij de volgende lus-doorgang overgeslagen.

Als je een printer hebt en je wilt de alle P-drietallen op papier hebben schrap dan in de regels 160 en 230 de REM. Alles kan op een A4 als je de regelafstand op 8 lijnen per inch zet en het oogt netjes met de pitch op 12. Nu we weten dat er zoveel P-drietallen zijn komt de vraag op: geldt de formule ook voor machten groter dan twee? Het onverwachte antwoord is nee, nooit. Al in de 17de eeuw stelde de Franse amateur wiskundige de Fermat vast dat voor alle waarden van n groter dan 2 geldt:

maar hij deed er geen bewijs bij. Dat was blijkbaar moeilijk. Meer dan drie eeuwen zochten vele wiskundigen naar wat langzamerhand ging heten 'de laatste (nog te bewijzen) stelling van Fermat'. Totdat in 1993/94 de Engelse, bij de Amerikaanse Princeton universiteit werkzame, professor Andrew Wiles definitief 'Fermat' bewees. Eerst schoot in 1993 een wiskundige nog een gat in het bewijs, maar in 1994 werd ook deze lacune, naar men zegt met hulp van een andere wiskundige, Richard Taylor, uit de weg geruimd.

Het schijnt in de wiskunige wereld gebruikelijk te zijn het manuscript in dergelijke moeilijke gevallen toe te zenden aan een aantal grote wiskundigen over de hele wereld. Als er na verloop van tijd niemand bezwaren maakt geldt het werkstuk als juist. Het heeft Wiles wel heel wat papier en porto gekost want het manuscript was meer dan 130 bladzijden lang. Maar het loonde wel want voorzover bekend heeft er niemand geprotesteerd.

Als jongen werd Wiles al gefascineerd door 'de laatste stelling van Fermat' en hij nam zich voor die een keer te bewijzen. Toen hij eenmaal professor was ging hij, al zijn tijd daaraan spenderend, aan het werk. Het kostte hem zeven jaren. Zonder van computers gebruik te maken. Over volharding gesproken ! Toen alles voorbij was kwam de vraag op hem af:
"Wat ga je nu doen ?". En het boeiende antwoord was: "Meer tijd besteden aan mijn vrouw en mijn dochters".

De drie korte formules zijn als Draw-file gemaakt met Equasor (wordt met Impression meegeleverd). De figuur is gemaakt met DrawAid van Carvic Engineering. De Basic listings zijn gemaakt en getest met DeskEdit.

Kees den IJzerman. Regio 19. Apeldoorn.