Euklides algoritm (fortsättning) - UU Studentportalen

Uppsala Universitet
Matematiska institutionen
Isac Hedén
isac [email protected]
Algebra I, 5 hp
Vecka 18.
Euklides algoritm (fortsättning)
Vi börjar med en metod att ”nysta upp” Euklides algoritm, dvs. att göra den baklänges i en
viss mening. Det kommer att visa sig mycket användbart till exempel för att lösa Diofantiska
ekvationer (vecka 19), men spelar även en roll i beviset för aritmetikens fundamentalsats som vi
strax kommer till.
Låt a och b vara två heltal. Säg att vi är intresserade av att hitta heltal x och y sådana att
ax + by = SGD(a, b).
Det kan vara till hjälp att tänka på situationen som att vi är i ett land där de bara har två slags
mynt (och inga sedlar) – det ena slags myntet är värt a kr, och det andra slags myntet är värt
b kr. Hur ska vi bära oss åt för att betala SGD(a, b) kr? Säg att mynten är värda 4 respektive
5 kr – eftersom SGD(5, 4) = 1, är vi alltså intresserade av att betala 1 kr med dessa två typer
av mynt. Det kan göras genom att ge kassören en femma och få en ”fyra” i växel. Motsvarande
ekvation är 5x + 4y = 1, och lösningen ges av x = 1, y = −1.
Exempel 2.1. Om vi tar a = 47 och b = 14, så blir SGD(a, b) = 1, och uppgiften är alltså att
hitta heltal x och y sådana att
47x + 14y = 1.
Den allmänna metoden för detta är att utföra Euklides algoritm på a och b, sedan att
”nysta upp” algoritmen.
Vi börjar med att utföra Euklides algoritm på a och b, alltså att först dela a med b med
kvot och rest, sedan dela b med resten, sedan dela den första resten med den andra resten, sedan
den andra resten med den tredje resten, den tredje med den fjärde och så vidare tills en division
går jämnt upp:
47
14
5
4
(1)
=
3 · 14 + 5
(2)
=
2·5+4
(3)
=
1·4+1
(4)
4·1+0
=
Målet när vi ”nystar upp” algoritmen är att skriva talet SGD(a, b) (lika med 1 i det här fallet) som
en heltalskombination av 47 och 14. Det betyder att vi vill ha ett helt antal ”fyrtiosjuor” och ett
helt antal ”fjortonar” sådana att det blir 1 när vi lägger ihop dem. Begreppet heltalskombination
är ett nyckelbegrepp.
Vi börjar med den sista ekvationen där resten är nollskild, alltså ekvation (3). Den används
för att skriva 1 som en heltalskombination av 5 och 4, som i ekvation (a) nedan. Sedan går vi vidare uppåt till ekvation (2), och använder den för att eliminera 4, som blev resten där. Resultatet
är ekvation (b), där 4 är utbytt mot 14 − 2 · 5. Nu har vi skrivit 1 som en heltalskombination av
5 och 14, likheten (c) är bara en förenkling för att se hur många det är av varje (koefficienterna,
alltså så många som vi har av varje, är 3 och −1). Därefter använder vi ekvation (1) för att
eliminera 5, som blev resten vid division av 47 med 14. Resultatet är ekvation (d), där 5 byts ut
mot 47 − 3 · 14, enligt ekvation (1). Nu har vi skrivit 1 som en heltalskombination av 14 och 47,
precis som vi ville, och i ekvation (e) räknar vi bara hur många vi har av varje (koefficienterna
är 3 respektive −10).
Metoden var alltså att skriva 1 som en heltalskombination först av 4 och 5 (rad 1 nedan), sedan som en heltalskombination av 5 och 14 (rad 2 nedan), och till sist som en heltalskombination
av 14 och 47 (rad 3 nedan).
1
(a)
=
5−4
(b)
=
5 − (14 − 2 · 5) = 3 · 5 − 14
(d)
3(47 − 3 · 14) − 14 = 3 · 47 − 10 · 14.
=
(c)
(e)
En lösning är alltså (x, y) = (3, −10). Det innebär att man kan betala 1 kr genom att ge 3 st
”fyrtiosjuor” och få 10 stycken ”fjortonar” i växel.
Ett litet diagram kanske kan vara till nytta för att förstå i vilken ordning de olika stegen
i uppnystningen ska göras. De inblandade talen i Euklides algoritm är a = 47, b = 14, och de
successiva resterna 5, 4, 1, och 0:
47
47
47
14
14
14
5
5
5
4
4
4
1
1
1
0
0
0
Fyror och femmor används först,
sedan femmor och ”fjortonar”,
och till sist ”fjortonar” och ”fyrtiosjuor”, och vi är klara.
De två rutorna på varje rad startar till vänster om SGD(a, b), ettan alltså i det här fallet,
och förflyttar sig sedan hela tiden ett steg till vänster. När de är i den vänstra änden är saken
klar. Ju fler successiva rester man får i algoritmen, desto fler rader blir det.
Exempel 2.2. Vi utför Euklides algoritm på talen a = 74 och b = 11 och bestämmer sedan,
medelst uppnystning, heltal x och y sådana att 74x + 11y = SGD(74, 11):
74 = 6 · 11 + 8
11 = 1 · 8 + 3
8 = 2·3+2
3 = 1·2+1
2 = 2·1+0
Under uppnystningen eliminerar vi de successiva resterna 1, 2, 3, och 8 med hjälp av motsvarande
rad i ovanstående beräkningar. Observera hur radbytena i uppnystningen stämmer överens med
radbytena i uppställningen för Euklides algoritm: vi börjar på den näst nedersta raden (där
resten blev 1) och arbetar oss uppåt till den översta raden:
1 = 3−2
= 3 − (8 − 2 · 3) = 3 · 3 − 8
= 3 · (11 − 8) − 8 = 3 · 11 − 4 · 8
= 3 · 11 − 4 · (74 − 6 · 11) = 27 · 11 − 4 · 74.
På den andra raden ersatte vi 2 med 8 − 2 · 3, på den tredje raden ersatte vi 3 med 11 − 8 och på
den sista raden ersatte vi 8 med 74 − 6 · 11. Ekvationen 74x + 11y = 1 har alltså (bland annat)
lösningen (x, y) = (−4, 27).
Här följer ett exempel där SGD(a, b) ̸= 1.
Exempel 2.3. Låt a = 720 och b = 99:
720 = 7 · 99 + 27
99 = 3 · 27 + 18
27 = 1 · 18 + 9
18 = 2 · 9 + 0
Eftersom den sista nollskilda resten är 9, vet vi att SGD(720, 99) = 9, och då kan vi ”nysta upp”
Euklides algoritm för att hitta heltalslösningar till ekvationen 720x + 99y = 9:
9 = 27 − 18
= 27 − (99 − 3 · 27) = 4 · 27 − 99
= 4 · (720 − 7 · 99) − 99 = 4 · 720 − 29 · 99.
Ekvationen 720x + 99y = 9 har alltså (bland annat) lösningen (x, y) = (4, −29).
Vi inser med hjälp av dessa exempel att vi har följande allmängiltiga resultat, som i [Vre06,
sid 66].
Lemma 2.4. Om a och b är givna heltal, så finns det heltal x och y sådana att SGD(a, b) =
xa + yb.
Aritmetikens fundamentalsats
Målet med det här avsnittet är att bevisa följande sats om primtal, alltså tal som inte har några
icke-triviala delare.
Sats 2.5 (Aritmetikens fundamentalsats). Varje heltal som är större än eller lika med 2 kan
skrivas som en produkt av primtal, och så när som på omordning av faktorerna är en sådan
faktorisering entydig.
Satsen bevisas med hjälp av fyra stycken hjälpsatser.
HS 1: Om a ≥ 2 inte är ett primtal, så är den minsta positiva äkta1 delaren till a ett primtal.
HS 2: Varje heltal som är större än eller lika med 2 kan skrivas som en produkt av primtal (på
minst ett sätt).
HS 3: Låt a och b vara heltal, och p ett primtal. Om p|ab så följer det att p|a eller p|b.
HS 4: Antag att ett heltal a ≥ 2 har två primfaktoriseringar:
a = p 1 p 2 · · · p m = q1 q2 · · · qn ,
(alla pj och qk är primtal).
Då gäller det att m = n, och om man skriver de två följderna av primtal i storleksordning så
gällder det att p1 = q1 , p2 = q2 , . . . , pn = qn .
Bevis. (HS 1): Eftersom a inte är ett primtal, så har a äkta delare. Låt b vara den minsta positiva
bland dessa. Då gäller det att 1 < b < a. Om nu b inte vore ett primtal så skulle b ha en positiv
äkta delare c med 1 < c < b, men då skulle c även vara en äkta delare till a, och den skulle vara
mindre än b. Det är en motsägelse eftersom b var den minsta bland a:s äkta positiva delare.
1
En äkta delare är synonymt med en icke-trivial delare. En positiv äkta delare x till a är alltså en delare som
uppfyller 1 < x < a.
Bevis. (HS 2): Låt a vara ett positivt heltal, a ≥ 2. Om a inte redan självt är ett primtal, så
finns det enligt HS 1 ett primtal som delar a. Vi kallar detta primtal för p1 och kvoten för a1 så
att
a = p1 a 1 .
Om a1 är ett primtal så är vi klara, annars använder vi HS 1 igen och hittar ett primtal som
delar a1 . Vi kallar detta primtal för p2 och kvoten för a2 så att
a = p1 p2 a 2 .
Om a2 är ett primtal så är vi färdiga, annars hittar vi ett primtal p3 som delar a2 och kallar
kvoten för a3 . Vi fortsätter på samma sätt tills vi kommer fram till en kvot ai som själv är ett
primtal. Anledningen till att vi förr eller senare måste erhålla en kvot ai som själv är ett primtal,
är att vi annars skulle kunna producera en oändligt avtagande följd av heltal som alla ligger
mellan 1 och a, nämligen följden
a1 > a2 > a3 > a4 > . . .
Detta är förstås omöjligt oavsett vilket heltal a som vi började med.
Bevis. (HS 3): Vi visar att om p|ab men p ∤ a så följer det att p|b. Antag alltså att p inte delar
a. Eftersom p är ett primtal måste då SGD(a, p) = 1, och genom ”uppnystning av Euklides
algoritm utförd på a och p” kan vi hitta två heltal x och y sådana att
xa + yp = 1.
Multiplikation av denna likhet med b ger:
xab + ypb = b.
Nu ser vi att p uppenbarligen är en delare i vänstra ledet eftersom p delar båda termerna där
(här använder vi antagandet att p|ab). Alltså måste p även vara en delare i det högra ledet –
höger och vänster led är ju lika med varandra! Därmed är beviset färdigt.
Genom upprepad användning av HS 3 inser man att om ett primtal p delar en produkt av
k stycken tal, så måste p dela åtminstone en av de k faktorerna:
p|a1 a2 · · · ak ⇒ ∃i ∈ {1, 2, 3, . . . , k} : p|ai .
Vi kallar detta för HS 3b. Vi illustrerar med tre faktorer: Antag att p|abc. Eftersom abc = a(bc)
kan ses som en produkt av två faktorer, får vi enligt HS 3 att p|a eller p|bc. Om p ∤ a så gäller
p|bc vilket enligt HS 3 medför att p|b eller p|c. I vilket fall delar alltså p minst en av a, b och c.
Bevis. (HS 4): Vi vet redan från HS 2 att varje heltal a ≥ 2 kan skrivas som en produkt av
primtal, och nu återstår det att visa att denna faktorisering är entydigt bestämd av a – dvs. att
det inte finns flera olika sätt att primfaktorisera a.
Antag därför att vi har två stycken primfaktoriseringar av a (om de har olika många
faktorer, så kallar vi primtalen i den ”längsta” faktoriseringen för qi och primtalen i den ”kortare”
för pj , så att n ≥ m nedan):
a = p1 p2 · · · pm , och a = q1 q2 · · · qn .
Eftersom p1 är en faktor i a, är p1 en faktor i q1 q2 · · · qn , och det följer av HS 3b (vi kan använda
HS 3b eftersom p1 är ett primtal) att p1 |qi för något i ∈ {1, 2, . . . , n}. Ifall det skulle visa sig
att i ̸= 1, så gör vi en omnumrering av q1 , q2 , . . . , qn så att det som före omnumreringen hette
qi efter omnumreringen istället heter q1 . Det leder till att p1 |q1 och eftersom både p1 och q1 är
primtal så följer det att p1 = q1 . Om vi förkortar a med p1 (som också är lika med q1 ) får vi
följande:
p2 p3 · · · pm = q2 q3 · · · qn .
Nu upprepar vi precis samma procedur, och drar slutsatsen att (eventuellt efter ytterligare en
omnumrering av q2 , q3 , . . . , qn ) att p2 = q2 . Efter att ha utfört proceduren m gånger kan vi dra
slutsatsen att p1 = q1 , p2 = q2 , . . . , pm = qm , och det som återstår är endera ekvationen 1 = 1
(om n = m) eller ekvationen
1 = qm+1 qm+2 · · · qn
(om m < n). I det första fallet är vi klara, och det andra fallet kan inte inträffa eftersom en
produkt av (fler än noll) primtal inte kan vara lika med 1.
Ett annat sätt att formulera aritmetikens fundamentalsats kunde vara som följer: Låt
a ≥ 2 vara ett heltal. Då kan a skrivas som en produkt av primtal, och om vi har två sådana
faktoriseringar av a:
p1 p2 · · · pm = q1 q2 · · · qn ,
som uppfyller p1 ≤ p2 ≤ . . . ≤ pm och q1 ≤ q2 ≤ . . . ≤ qn , så gäller det att m = n och pi = qi
för i = 1, 2, 3, . . . , n.
Primtalsfaktorisering
Enligt aritmetikens fundamentalsats, kan varje heltal som är större än eller lika med två skrivas
som en produkt av primtal.2 För att utföra en sådan primfaktorisering av ett heltal räcker
det att testa delbarhet med primfaktorer. Med andra ord börjar man med att dividera talet
med 2 så många gånger som det går. Sedan med 3 så många gånger som det går, sedan med
5, 7, 11, 13, 17, . . . så många gånger som det går.
Vid primfaktorisering
av ett tal n räcker det att testa delbarhet med primfaktorer upp
√
till och med n. Detta är förstås mycket användbart, och används till exempel i deluppgift
exempel 2.6(c) nedan. För att sluta oss till att 211 är ett primtal behöver vi inte testa
√delbarhet
211 ≃ 15.
med alla primtal mellan 1 och 211. Det räcker att testa delbarhet med primtal upp till √
Anledningen är enkel: Om ett positivt heltal n har en äkta delare p som är större än√ n, så är
även√kvoten q = √
n/p en äkta delare, eftersom pq = n, och den måste vara mindre än n (för om
p > n och q ≥ n,
√ skulle deras produkt inte kunna bli n). Det vill√säga, för varje äkta delare
p som är större än n, finns det en äkta delare q som
√ är mindre än n. Slutsatsen blir, att om
det inte finns√några äkta delare som är mindre än n, så finns det inte heller några delare som
är större än n, eftersom de kommer parvis.
Exempel 2.6. Primfaktorisera a) 171 b) 203 c) 211.
Lösning:
(a) 171 = 32 · 19.
(b) 203 = 7 · 29.
(c) 211 är ett primtal och kan inte skrivas som produkt av några icke-triviala delare. Den
slutsatsen kan man dra efter √
att ha testat delbarhet med 2, 3, 5, 7, 11, och 13 (eftersom
nästa primtal är 17, och 17 > 211).
2
Tal som själva är primtal, räknas som en produkt av ett element. Talet 7 till exempel, har en primfaktorisering
som bara består av en enda faktor: talet 7 själv.
Aritmetikens fundamentalsats säger att dessa faktoriseringar är entydiga i den meningen att det
inte går att faktorisera de tre talen på något annat sätt i primfaktorer förutom ordningsbyte
av faktorerna (till exempel kunde vi ha skrivit 171 = 3 · 19 · 3, men det finns inget sätt att
faktorisera 171 i några andra primfaktorer än just dessa tre).
Beviset för aritmetikens fundamentalsats är, som ni säkert märkte, relativt invecklat.
Ni förväntas inte kunna reproducera det på egen hand, men det hör till den matematiska
allmänbildningen att någon gång i livet ha tagit sig igenom det och sett de olika stegen. De
fyra typer av bevis som följer nu (motsägelsebevis, indirekta bevis, direkta bevis och fallbevis),
illustrerar mycket användbara strategier att tillämpa när man vill bevisa något visst påstående.
Nu handlar det alltså inte längre om matematisk allmänbildning, utan om metoder som ni
kommer att kunna använda till att lösa problem och övningsuppgifter med.
Indirekta bevis3
Ett indirekt bevis är ett bevis där man istället för att bevisa en utsaga på formen p ⇒ q bevisar
den ekvivalenta utsagan ¬q ⇒ ¬p (att de två utsagorna är desamma, kan man inse genom att
göra en sanningsvärdestabell för var och en av dem). Som exempel på detta bevisar vi följande
sats.
Sats 2.7. Ett heltal n är jämnt om n2 är jämnt.
Bevis. Istället för att bevisa (n2 jämnt ⇒ n jämnt) bevisar vi det ekvivalenta påståendet
(n udda ⇒ n2 udda): Om n är udda så har vi n = 2k + 1 för något heltal k. Det medför
att
n2 = (2k + 1)2 = 4k 2 + 4k + 1 = 2(2k 2 + 2k) + 1
också är udda.
Motsägelsebevis
Ett så kallat motsägelsebevis bygger på att en sluten utsaga u endera är falsk eller sann. Om
vi kan visa att ”u är falsk” leder till en logisk omöjlighet, så att det alltså inte är fallet att ”u
är falsk”, så kan vi sluta oss till att u är en sann utsaga. Ett motsägelsebevis för u har följande
form: ”Antag ¬u. Då följer det att (. . .något logiskt resonemang. . .). Motsägelse!” Vi illustrerar
med ett exempel.
√
Sats 2.8. 2 är irrationellt.
√
Bevis.
Antag
att
2 är rationellt, då finns det tal p och q utan gemensamma faktorer sådana att
√
2 = p/q (eftersom man alltid kan förkorta bort gemensamma faktorer). Det följer att 2q 2 = p2 .
Det betyder att p2 är ett jämnt tal, och enligt sats 2.7 måste därför p själv vara jämnt: p = 2k
för något heltal k. Men då följer det att q 2 = 2k 2 så att q 2 är ett jämnt tal, och därför måste
även q vara jämnt. Motsägelse (eftersom p och q inte har några gemensamma faktorer)!
√
Det enda antagandet som vi gjorde under bevisets
√ gång var att 2 var rationellt – det
ledde
√ till en motsägelse. Alltså var det inte fallet att 2 är rationellt, och vi kan dra slutsatsen
att 2 istället är irrationellt (några andra alternativ finns ju inte).
3
Indirekta bevis är nära besläktade med motsägelsebevis, och en del författare använder termen
motsägelsebevis för båda två.
Direkta bevis
Direkta bevis är ”rakt på”. Man bevisar p genom att bevisa p. Vi tar följande exempel:
Sats 2.9. Om p är ett primtal och p ̸= 3 så gäller det att 3|(p2 − 1).
Bevis. Eftersom p2 − 1 = (p − 1)(p + 1), räcker det att bevisa att 3|(p − 1) eller 3|(p + 1). Vart
tredje tal är delbart med 3, så något av p − 1, p, p + 1 är delbart med 3. Men om p är ett primtal
och p ̸= 3 så kan p inte vara delbart med 3. Alltså måste p − 1 eller p + 1 vara det.
Fallbevis
Ibland kan man göra en falluppdelning för att bevisa ett påstående p. Ett sådant bevis, för en
utsaga u har strukturen (p ∨ q) ∧ (p ⇒ u) ∧ (q ⇒ u). Det vill säga: Om vi vet att p eller q är
sann, samt att båda två var för sig medför u, så kan vi sluta oss till u (även om vi inte vet vilken
av p och q som är sann). Som exempel på denna bevisteknik visar vi:
Sats 2.10. Det finns irrationella tal b och c sådana att bc är rationellt.
√ √2
Bevis. Betrakta√talet 2 .
√
√ 2
√
Fall 1: Om 2√ är rationellt, så är saken klar med b = c = 2, eftersom 2√är irrationellt.
√ 2
√
√ 2
Fall 2: Om 2 är irrationellt så är saken också klar, nämligen med b = 2 och c = 2:
( √ )√2
√ 2
√ √2·√2 √ 2
bc =
2
= 2 = 2.
= 2
I det här fallet var utsagan u: ”Det finns irrationella tal b och c sådana att bc är rationellt”,
medan p och q var följande utsagor:
√ √2
p : 2 är rationellt
√ √2
q : 2 är irrationellt.
Utsagan (p ∨ q) är uppenbart sann. Utsagan (p ⇒ u) visas i fall 1, och utsagan (q ⇒ u) i fall 2.
Det finns oändligt många primtal
Vi avslutar med ytterligare en (klassisk) sats som kan visas med ett motsägelsebevis:
Sats 2.11. Det finns oändligt många primtal.
Bevis. Antag att det bara finns ändligt många primtal: {p1 , p2 , . . . , pN }. Bilda talet
a = p1 p2 p3 · · · pN + 1.
Det är uppenbarligen inte ett primtal eftersom det inte finns med i listan. Alltså kan vi skriva
det som en produkt av primtal (enligt aritmetikens fundamentalsats) – men det är inte delbart
med något av p1 , p2 , . . . , pN eftersom resten hela tiden blir 1 när man dividerar med något av
dem. Alltså har vi hittat ett tal som varken är ett primtal eller kan skrivas som produkt av
primtal – motsägelse!
Referenser
[Vre06] A. Vretblad och K. Ekstig. Algebra och geometri. Gleerup, 2006.