Euklides algoritm och diofantiska ekvationer
=======================================

Euklides algoritm är ett sätt att finna största gemensamma delaren för två tal. Diofantiska 
ekvationer är ekvationer med heltalslösningar.

Euklides algoritm
-----------------------------

En division kan skrivas på följande sätt:

     dividend = kvot gånger divisor plus rest

Divisionen a/b kan alltså skrivas

      a = c x b + d

där 

    a   dividend    (täljare)
    b   divisor     (nämnare)
    c   kvot
    d   rest

Om a och b innehåller en gemensam faktor finns den även i d (om d inte är noll). Det gör att man kan 
fortsätta leta efter den genom att undersöka b och d. Man skriver då divisionen b/d som

     b = e x d + f

där 

    b  dividend
    d  divisor
    e   kvot
    f     rest

Och så fortsätter man tills resten blir noll. Det man då har som divisor är den största gensamma 
delaren i a och b.

Man får alltså

    a = c x b + d
    b = e x d + f
    d = g x f + h
    f = i x h + j

Och så fortsätter man tills resten blir noll.Divisorn i en rad blir alltså dividend i raden under och 
resten i en rad blir divisor i raden under. 

Diofantiska ekvationer
---------------------------------

En linjär diofantisk ekvation med två variabler är

      a X + b Y = c

där X och Y är heltalsvariabler och a, b och c är givna konstanter.

Om a och b har en gemensam faktor måste den finnas även i c. Annars har ekvationen ingen 
lösning. Om a och b enbart har fakton 1 gemensam finns den ju även i c och man kan då 
lösa ekvationen.

Finns det en gemensam faktor större än 1 i a, b och c börjar man med att dividera bort den.

Om a och b enbart har faktorn 1 gemensam löser man 

      a X + b Y = c

på följande sätt:

Lös först

      a X0 + b Y0 = 1

då blir

     X = c  X0 
     Y = c  Y0 

Om jag sätter  a X0  lika med minus b Y0 blir summan noll. Men 
a X0 skall vara 1 större än b Y0. Det betyder att om jag tar 
a X0 dividerat med b Y0 skall jag få resten 1.

Jag kan nu använda Euklides algoritm för att övertyga mig om att a och b bara har faktorn 1 
gemensam. Så kan jag gå baklänges genom algoritmen för att hitta två heltal som ligger 
intill varandra och som innehåller a respektive b. När jag går baklänges eliminerar jag i varje 
steg resten genom att använda att 

    a = c x b + d     kan skrivas  d = a - c x b
    b = e x d + f      kan skrivas  f = b - e x d       o s v

Exempel:

Lös ekvationen  

       77 X + 171 Y = 5

Euklides algoritm ger 

     171 = 2 x 77 + 17
      77 = 4 x 17 + 9
      17 = 1 x 9 + 8
       9 = 1x 8 +1
       8 = 8 x 1+ 0    Här är resten 0 och divisorn 1 vilket innebär att 1 är största gemensamma 
                       delare

Så går jag baklänges

        9 = 1 x 8 +1  ger  1 = 9 - 1 x8

eliminera 8  med hjälp av raden ovanför

        8 = 17 - 1 x 9     insättning ger   1 = 9 - 1 x (17 - 1 x9 ) = 2 x 9 -17

eliminera 9 med hjälp av raden ovanför

       9 = 77 - 4 x 17    insättning ger  1 = 2 x (77 - 4 x 17) - 17 = 2 x 77 - 9 x 17

eliminera 17 med hjälp av raden ovanför

      17 = 171 -2 x 77   insättning ger  1 = 2 x 77 - 9 ( 171 - 2 x 77) = 20 x 77 - 9 x 171

vilket ger 

     X0 = 20     som ger   X = 5 x 20 = 100
     Y0 = -9     som ger   Y = 5 x (-9) = - 45

Men det är inte den enda lösningen.

Om 

        a X + b Y = c

kan man skriva

       a(X + X1) + b (Y + Y1) = 1

       a X + b Y + a X1 + b Y1 = 1 + 0

Ekvationen gäller alltså även för alla värden på X1 och Y1 som
uppfyller kravet att 

       a  X1 + b Y1 = 0

Det ger

      X1 = n 171
      Y1 = - n 77

och den fullständiga lösningen blir

       X = 100 + n 171
       Y = - 45 - n 77

där n är ett heltal.


Till http://www.lexsup.se