| 
		  | 
				
		
		  | 
			 
			
				| 
		Het Euclidisch Algoritme | 
				
				 © 
				h.hofstede (h.hofstede@hogeland.nl)   | 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      Een algoritme moet je zien als 
		een soort "recept". 
		Nou bedacht de Griekse Euclides een "recept" om van twee willekeurige 
		getallen het grootste getal op te sporen waar beiden door gedeeld kunnen 
		worden. Dat getal heet de Grootste Gemene Deler (GGD). 
		 
		Stel bijvoorbeeld dat we graag willen weten wat het grootste getal is 
		waar we 1470 en 825 door kunnen delen. 
		Je ziet natuurlijk zσ dat je beiden door 5 kunt delen, maar misschien is 
		er wel een groter getal waar je beiden σσk door kunt delen. 
		 
		't Is eigenlijk heel eenvoudig die GGD te vinden, maar je moet er maar 
		opkomen....  
		 
		Stel dat we de GGD van 1470 en 825 weten...... 
		Laten we die mysterieuze GGD als een blauw blokje tekenen. 
		Dan kun je dus 1470 en 825 beiden zien als een ketting van blokjes die 
		allemaal de grootte van die onbekende GGD hebben: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
		 
		   | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      (het aantal blokjes in die twee 
		kettingen is voorlopig natuurlijk nog onbekend) 
		Daarbij is het de vraag hoe we er achter kunnen komen hoe groot zo'n 
		mysterieus blauw blokje is. 
		Nou, als we daarnaar op zoek gaan, dan kunnen we ons vraagstuk kleiner 
		maken door de onderste blauwe rij van de bovenste af te trekken: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
		 
		   | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | Haal eerst maar eens al die 
		rooien weg! Daar wordt het probleem tenminste alvast iets kleiner door. 
		Dan houden we het volgende over (1470 - 825 = 645, maar dat wist je 
		natuurlijk wel) | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
		 
		   | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | Ik hoop dat je al door hebt waar 
		dit naar toe gaat:  trek nu die 645 van de 825 af, en je houdt 180 
		over: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		  | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | En nu kun je zelfs in plaats van 
		ιιn keer die 180 van de 645 af te trekken, dat meteen drie keer doen, 
		immers 180 past drie keer in 645. Dat gaat wel zo snel! | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		  | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | Dat geeft  (645 - 3  180 = 
		105) | 
    
    
      |   | 
    
    
      
		  | 
    
    
      |   | 
    
    
      | nog een paar keer van elkaar 
		aftrekken, en je krijgt dit: | 
    
    
      |   | 
    
    
      
		  | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | En daar is ons mysterieuze blokje 
		al!! Het is 15 !!! Wat is hier 
		gebeurd? 
		 
		We hebben elke keer van twee 
		getallen een nieuw getal gemaakt door de kleinste zo vaak mogelijk van 
		de grootste af te trekken. Dat zag er zσ uit:  | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		
			
				
					| 
					overgebleven: | 
					
					verkleinen: | 
				 
				
					| 1470 en 825:    | 
					1470 - 1  825 = 645 | 
				 
				
					| 825 en 645: | 
					825 - 1  645 = 180 | 
				 
				
					| 645 en 180: | 
					645 - 3  180 = 105 | 
				 
				
					| 180 en 105: | 
					180 - 1  105 = 75 | 
				 
				
					| 105 en 75: | 
					105 - 1  75 = 30 | 
				 
				
					| 75 en 30: | 
					75 - 2  30 = 15 | 
				 
				
					| 30 en 15: | 
					30 - 15 = 15 | 
				 
				
					| 15 en 15: | 
					15 - 15 = 0 | 
				 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | In een blokschema zou Euclidisch 
		Algoritme er zσ uit kunnen zien: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
		 
		   | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      Het Uitgebreid 
		Euclidisch Algoritme. 
		 
		Het Euclidisch Algoritme kun je uitbreiden om een oplossing van de 
		vergelijking  a  x + b  y = ggd(x,
		y) te vinden. Dat wil zeggen, bij gegeven x en y 
		kun je de coλfficiλnten a en b vinden  
		Ik denk dat een voorbeeld wel zal duidelijk maken hoe het werkt. 
		 
		Neem x = 1452 en y = 735. 
		Dan vinden we de GGD daarvan als volgt, waarbij we het verkleinen bij 
		het Euclidisch algoritme als vermenigvuldiging plus rest noteren: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		
			
				
					
					
						
							1452 
							735 
							717 
							18 
							15   | 
							= 1  735 + 717 
							= 1  717 + 18 
							= 39  18 + 15 
							= 1  15 + 3 
							= 5  3 + 0 | 
						 
						
							| GGD | 
							3 | 
						 
					 
					 | 
				 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      Dat geeft ons de mogelijkheid 
		getallen a en b te vinden waarvoor de vergelijking 
		 1452a + 725b = 3 klopt. 
		Maak eerst een nieuwe kolom met daarin de rest voorop geschreven: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		
			
				
					
					
						
							1452 
							735 
							717 
							18 
							15   | 
							= 1  735 + 717 
							= 1  717 + 18 
							= 39  18 + 15 
							= 1  15 + 3 
							= 5  3 + 0 | 
						 
					 
					 | 
					
					
						
							1452 
							735 
							717 
							18 
							15 | 
							= 717 + 1  735 
							= 18 + 1  717 
							= 15 + 39  18 
							= 3 + 1  15 
							= 0 + 3  5 | 
						 
					 
					 | 
				 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | Nu gaan we vanaf de ιιn na 
		onderste rij steeds een rij omhoog, waarbij we die rest invullen: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      |   | 
    
    
      
		
			
				
					
					
						
							1452 
							735 
							717 
							18 
							15   | 
							= 1  735 + 717 
							= 1  717 + 18 
							= 39  18 + 15 
							= 1  15 + 3 
							= 5  3 + 0 | 
						 
					 
					 | 
					
					
						
							717 
							18 
							15 
							3 
							0 | 
							= 1452 - 1  735 
							= 735 - 1  717 
							= 717 - 39  18 
							= 18 - 1  15 
							= 15 - 3  5 | 
						 
					 
					 | 
					
					
						
							 
							 
							 
							 
  | 
							3 = 40  735 - 41  (1452 - 1  735) = 81  735 
							- 41  1452 
							3 = 40  (735 - 1  717) - 1  717 = 40  735 - 41  
							717 
							3 = 18 - 1  (717 - 39  18) = 40  18 - 1  717  
							3 = 18 - 1  15 
							- | 
						 
					 
					 | 
				 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | Gelukt:   81  735 - 41 
		 1452 = 3  dus a = -41  en b = 81  
		voldoen. | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
		Stelling van Lamι | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      Een niet onbelangrijke vraag is:  
		"Hoe vaak moet je eigenlijk die blokjes eraf halen?" ofwel:  
		"Hoeveel stappen telt het Euclidisch algoritme?" 
		De stelling van Lamι zegt daarover: | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      
		
			
				
					| 
					 Het aantal stappen dat nodig is in het 
					Euclidisch algoritme 
					is hoogstens gelijk aan het aantal cijfers van het kleinste 
					getal, vermenigvuldigd met 5.  | 
				 
			 
		 
		 | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      In het voorbeeld van 1452 en 735 
		hierboven zou je maximaal 5  3 = 15 stappen nodig hebben (het waren er 
		4). 
		 
		De volgende les zullen we een toepassing zien:  het oplossen van 
		Diophantische vergelijkingen. | 
    
    
      |   | 
        | 
        | 
        | 
        | 
      
		  | 
    
    
      | 
				 © 
				h.hofstede (h.hofstede@hogeland.nl)   |