defineer de ggd2 functie (Euclides' algoritme) zoals uitgelegd tijdens het college (het kan met 1 definitie en een If, of met twee conditionele definities /; )

voer deze commando's uit en ga na wat er gebeurt

ggd2[100,12]

ggd2[1014,91]//Trace

Timing[ggd2[1234567890,234567]]

MemoryInUse[]

Timing[ggd2[1234578967890,234598967]]

MemoryInUse[]

defineer de ggd1 functie zoals uitgelegd tijdens het college

Timing[ggd1[1234567890,234567]]

Met de Compile functie kunnen numerieke berekeningen in Mathematica versneld worden. Maak de functie ggd1b zelf af

ggd1b=Compile[{u,v},Module[{t},t=Min[u,v];While[testof t een deler is van u en v,t--];t]

Merk op dat het essentieel is dat t een locale variabele is, anders wordt het niet sneller! Test dit

En vergelijk de rekentijd met als input dezelfde getallen.Wanneer het datatype van de argumenten tevoren bekend is, kan de berekening nog sneller :

ggd1c=Compile[{{u,_Integer},{v,_Integer}},Module[{t},t=Min[u,v];

Maak de functie ggd1c zelf af en vergelijk de rekentijd met als input dezelfde getallen. Maak een overzicht van alle rekentijd en trek conclusies.