• Nie Znaleziono Wyników

Elementy teorii liczb

N/A
N/A
Protected

Academic year: 2021

Share "Elementy teorii liczb"

Copied!
58
0
0

Pełen tekst

(1)

Elementy teorii liczb

Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków

UTP Bydgoszcz

09

(2)

Podzielność.

Na tym wykładzie małe litery oznaczają liczby całkowite.

Definicja. Liczba a dzieli liczbę b, jeśli istnieje taka liczba całkowita k, że b = ak. Piszemy wtedy a|b. Mówimy też,

że b jest podzielne przez a lub b jest wielokrotnością a.

Jeśli b ∈ N+, to liczbę a ∈ N+taką, że a|b nazywamy dzielnikiem liczby b.

Przykład. 4 dzieli 20 (20 jest podzielne przez 4, 20 jest wielokrotnością 4 lub 4 jest dzielnikiem 20), czyli 4|20, gdyż 20 = 4 · 5;

Podobnie, 13|26, gdyż 26 = 13 · 2;

(−7)|21, gdyż 21 = (−7) · (−3);

(−13)|(−26), gdyż −26 = (−13) · 2;

ale 4 - 21 Przykład.

0|0, gdyż 0 = 1 · 0. Zero nie jest dzielnikiem zera, gdyż 0 /∈ N+. Przykład. Dzielnikami liczby 60 są:

{b ∈ N+: b|60} = {1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60}

(3)

Podzielność

Własności. Dla dowolnych a, b, c, u, v ∈ Z mamy

1 a|a, 1|a, a|0,

2 0|a ⇔ a = 0,

3 a|b ⇔ (−a)|b ⇔ a|(−b),

4 jeśli a|b i b|c, to a|c,

5 jeśli a|b, to a|bc,

6 jeśli a|b i a|c, to a|(b + c),

7 jeśli a|b i a|c, to a|(bu + cv ) dla dowolnych u i v ,

8 jeśli a|b i b 6= 0, to 1 ¬ |a| ¬ b,

9 jeśli a|b i b|a, to a = ±b (czyli |a| = |b|).

(4)

Podzielność

Dowód.

1 a = a · 1, więc a|a; a = 1 · a, więc 1|a; 0 = a · 0, więc a|0.

2 Jeśli 0|a, to istnieje k, że a = k · 0, zatem a = 0;

jeśli a = 0, to a = 0 = 0 · 1, czyli 0|a.

3 Jeśli a|b, to b = ak, czyli b = (−a) · (−k), zatem (−a)|b, ponadto (−b) = a(−k), zatem a|(−b); pozostałe implikacje dowodzi się podobnie.

4 Jeśli a|b i b|c, to b = ak1 i c = bk2, więc c = a(k1k2), zatem a|c.

5 Jeśli a|b, to b = ak, czyli bc = a(kc), zatem a|bc.

6

7 Jeśli a|b i a|c, to b = ak1 i c = ak2, czyli

bu + cv = ak1u + ak2v = a(k1u + k2v ), zatem a|(bu + cv ).

(5)

Podzielność

Dowód własności 8 oraz 9.

Jeśli a|b i b 6= 0, to b = ak1 (dla k16= 0). Zatem a 6= 0, czyli 1 ¬ |a|.

Z własności 3 wiemy, że |a|||b|. Istnieje więc k2∈ N+, że |b| = |a|k2, czyli |a| ¬ |b|.

Jeśli a|b i b|a, to z poprzedniej własności mamy: |a| ¬ |b| oraz

|b| ¬ |a|, czyli |a| = |b|.

Wniosek.

Relacja podzielności zawężona do zbioru N+ jest relacją częściowego porządku (jest zwrotna, antysymetryczna i przechodnia).

(6)

Zadanie: udowodnij, że dla n ∈ N+, 6|(n3− n)

Sposób pierwszy: dowód indukcyjny.

Dla n = 1 oczywiście 6|0.

Założenie indukcyjne:

Liczba 6|(k3− k), czyli istnieje λ ∈ N+, że k3− k = 6λ.

Teza indukcyjna: 6|[(k + 1)3− (k + 1)].

Dowód.

(k + 1)3− (k + 1) = k3+ 3k2+ 3k + 1 − k − 1 =k3− k+ 3k2+ 3k

=+ 3k(k + 1).

Z liczb k, k + 1 jedna jest parzysta (podzielna przez 2), więc 3k(k + 1) jest podzielne przez 6, a więc 6λ + 3k(k + 1) jest podzielne przez 6.

Sposób drugi: uzasadnienie nieindukcyjne.

n3− n = n(n2− 1) = n(n − 1)(n + 1) = (n − 1)n(n + 1)

W iloczynie trzech kolejnych liczb naturalnych co najmniej jedna musi być parzysta (podzielna przez 2), a któraś podzielna przez 3.

(7)

Twierdzenie o dzieleniu z resztą.

Twierdzenie.

Dla dowolnych liczb a ∈ Z oraz b ∈ Z \ {0} istnieją jednoznacznie wyznaczone liczby q ∈ Z i r ∈ {0, . . . , b − 1} takie, że a = bq + r . Wniosek.

Dla dowolnych liczb a ∈ Z oraz b ∈ N+ istnieją jednoznacznie wyznaczone liczby q ∈ Z i r ∈ {0, . . . , b − 1} takie, że a = bq + r , gdzie q = bbac oraz r = a − b · bbac.

Oznaczenie.

Jeśli b ∈ N+ i a = bq + r , to liczbę r nazywamy resztą z dzielenia i oznaczamy a%b lub a mod b.

(8)

Twierdzenie o dzieleniu z resztą.

Przykład.

Dla a = 9 oraz b = 2 mamy q = b92c = 4 i r = 9%2 = 9 − 2 · b92c = 1.

Wtedy: 9 = 2 · 4 + 1.

Przykład.

Dla a = −9 oraz b = 2 mamy q = b−92 c = −5 i r = −9%2 = −9 − 2 · b−92 c = −9 − 2 · (−5) = 1.

Wtedy: −9 = 2 · (−5) + 1.

Przykład.

Dla a = −16 oraz b = 4 mamy q = b−164 c = −4 oraz r = −16%4 = −16 − 4 · b−164 c = −16 − 4 · (−4) = 0.

Wtedy: −16 = 4 · (−4) + 0.

(9)

NWD, gcd (the greatest common divisor)

w Anglii: hcf (the highest common factor)

W tej części a1, a2, . . . , an oznaczają liczby całkowite, nie wszystkie równe zero, a n ∈ N+.

Definicja. Liczbę naturalną d nazywamy największym wspólnym dzielnikiem liczb a1, a2, . . . , an jeśli:

d jest wspólnym dzielnikiem liczb a1, a2, . . . , an (tzn. d |ai dla wszystkich i ∈ {1, . . . , n}),

dla każdej liczby naturalnej c będącej wspólnym dzielnikiem liczb a1, a2, . . . , anzachodzi warunek c|d .

Zapisujemy:

d = NWD(a1, a2, . . . , an) lub d = gcd (a1, a2, . . . , an).

Wniosek.

Jeśli a, b ∈ Z \ {0}, to NWD(a, b) ∈ N+.

(10)

NWD

Przykład.

Dzielnikami liczby 60 są: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60.

Dzielnikami liczby 18 są: 1, 2, 3, 6, 9, 18.

Wspólnymi dzielnikami tych liczb są: 1, 2, 3,6.

Zatem NWD(18, 60) =6.

Definicja.

Liczby całkowite a1, a2, . . . , an nazywamy względnie pierwszymi, jeśli NWD(a1, a2, . . . , an) = 1.

Przykład.

Liczby 60 i 25 nie są względnie pierwsze,

a liczby 1073741824 = 230, 3486784401 = 320 oraz 244140625 = 512 są.

(11)

NWW, LCM (the least common multiple)

Definicja. Liczbę w nazywamy najmniejszą wspólną wielokrotnością różnych od zera liczb a1, a2, . . . , an jeśli:

w jest wspólną wielokrotnością liczb a1, a2, . . . , an

(tzn. ai|w dla wszystkich i ∈ {1, . . . , n}),

dla każdej liczby naturalnej c będącej wspólną wielokrotnością liczb a1, a2, . . . , an zachodzi warunek w |c.

Zapisujemy w = NWW [a1, a2, . . . , an].

Uwaga.

Jeśli przynajmniej jedna z liczb a1, a2, . . . , an jest równa zero, to NWW [a1, a2, . . . , an] = 0.

Przykład. NWW [16, 20, 5] = 80.

(12)

NWW

Twierdzenie.

Niech a1, a2, . . . , an∈ N+ oraz m, n ∈ N+. Następujące warunki są równoważne:

w = NWW [a1, a2, . . . , an],

w jest najmniejszą (w sensie relacji ”¬”) ze wspólnych naturalnych wielokrotności liczb a1, a2, . . . , an.

Twierdzenie. Niech a1, a2, . . . , an∈ N+ oraz d , n ∈ N+. Następujące warunki są równoważne:

d = NWD(a1, a2, . . . , an),

d jest największym (w sensie relacji ”¬”) z wspólnych dzielników liczb a1, a2, . . . , an.

(13)

NWW, NWD

Twierdzenie.

Liczby NWD(a1, a2, . . . , an) oraz NWW [a1, a2, . . . , an] istnieją dla dowolnych liczb a1, a2, . . . , an nie wszystkich równych zero.

Twierdzenie.

Dla dowolnych liczb całkowitych a, b takich, że a 6= 0 lub b 6= 0, zachodzi równość NWD(a, b) · NWW [a, b] = |ab|.

(14)

NWD(a, b) = NWD(b, a − b)

Obserwacja.

Oczywiście, gdy c jest wspólnym dzielnikiem liczb a i b, to c ¬ NWD(a, b).

Twierdzenie. Dla dowolnych a, b ∈ N takich, że b < a mamy NWD(a, b) = NWD(b, a − b).

Dowód. Niech L = NWD(a, b) oraz P = NWD(b, a − b).

Skoro L|a oraz L|b, więc L|(a − b). ZatemLjest wspólnym dzielnikiem (jeszcze nie wiemy,czy największym) liczb b oraz a − b, czyli L¬NWD(b, a − b) =P.

Z drugiej strony, P|b oraz P|(a − b). Zatem P|[b + (a − b)], czyli P|a. W konsekwencjiP jest wspólnym dzielnikiem b i a (nie wiemy, czy największym), czyli P¬L= NWD(a, b). Oznacza to, że

L = NWD(a, b)=NWD(b, a − b) = P.

(15)

NWD(a, b) = NWD(b, a%b).

Twierdzenie. Dla dowolnych a, b ∈ N takich, że b < a mamy

NWD(a, b)=NWD(b, a%b).

Dowód. Niech L = NWD(a, b) oraz P = NWD(b, a%b). Skoro a%b = a − b · ba

bc=a+b·



−ba bc



oraz L dzielizarówno ajak ib, więcLdzielia%b. Zatem Ljest wspólnym dzielnikiem (nie wiadomo jeszcze, czy największym) b ia%b.

Oznacza to, że L¬ NWD(b,a%b) =P.

Ponadto, a = b · babc + a%b oraz P dzieli zarównob jak ia%b.

Zatem P dzieli też a. Oznacza to, że P ¬L = NWD(a, b).

Ostatecznie: P =L.

(16)

Algorytm szukania NWD w wersji ”z odejmowaniem”

Niech a > b. Jak wiemy, NWD(a, b) = NWD(b, a − b).

Prostym algorytmem znajdowania NWD(a, b) jest metoda z odejmowaniem.

Parę (a, b) (możemy przyjąć, że a ­ b) zastępujemy nową parą liczb:

mniejszą z nich (czyli b) oraz różnicą liczby większej i mniejszej (czyli a − b).

Powtarzamy tę procedurę, aż uzyskamy równe liczby, to będzie NWD(a, b).Oczywiście NWD(c, c) = c.

(17)

Przykład, NWD(486, 222), NWD(a, b) = NWD(b, a − b)

a = 486, b = 222, a − b = 264; NWD(486, 222) = NWD(264, 222) nowa para liczb to

a1 = 264, b1= 222, wtedy a1− b1 = 42; NWD(264, 222) = NWD(222, 42) a2 = 222, b2= 42, wtedy a2− b2 = 180; NWD(222, 42) = NWD(180, 42) a3 = 180, b3= 42, wtedy a3− b3 = 138; NWD(180, 42) = NWD(138, 42) a4 = 138, b4= 42, wtedy a4− b4 = 96; NWD(138, 42) = NWD(96, 42) a5 = 96, b5 = 42, wtedy a5− b5 = 54; NWD(96, 42) = NWD(54, 42) a6 = 54, b6 = 42, wtedy a6− b6 = 12; NWD(54, 42) = NWD(42, 12) a7 = 42, b7 = 12, wtedy a7− b7 = 30; NWD(42, 12) = NWD(30, 12) a8 = 30, b8 = 12, wtedy a8− b8 = 18; NWD(30, 12) = NWD(18, 12) a9 = 18, b9 = 12, wtedy a9− b9 = 6; NWD(18, 12) = NWD(12, 6) a10= 12, b10= 6, wtedy a10− b10= 6; NWD(12, 6) = NWD(6, 6) = 6 a11=6, b11=6;

NWD(486, 222) =NWD(6, 6)=6

(18)

ALGORYTM EUKLIDESA (I)

Efektywniejszym i najbardziej znanym algorytmem szukania największego wspólnego dzielnika dwóch liczb całkowitych jest algorytm Euklidesa bazujący na udowodnionej już własności:

jeśli a = bk + r , to NWD(a, b) = NWD(b, r ).

Możemy założyć, że a ­ b > 0, gdyż NWD(a, b) = NWD(|a|, |b|).

Dzielimy a przez b (dzielenie z resztą)

a = bq1+ r1, q1 ∈ Z, r1 ∈ {0, ..., b − 1}.

Jeśli r1= 0, to NWD(a, b) = b. Jeśli r1 6= 0, to z równości

NWD(a, b) = NWD(b, r1) zamieniamy liczby a, b na liczby b, r1 i dzielimy z resztą b przez r1

b = r1q2+ r2, q2∈ Z, r2 ∈ {0, ..., r1− 1}.

Postępujemy tak aż nie otrzymamy reszty równej 0 (nastąpi to po skończonej liczbie kroków, gdyż reszty maleją).

(19)

ALGORYTM EUKLIDESA, otrzymaliśmy:

a = bq1+ r1, r1 ∈ {0, ..., b − 1}, b = r1q2+ r2, r2 ∈ {0, ..., r1− 1}, r1 = r2q3+ r3, r3 ∈ {0, ..., r2− 1},

. . . . rn−3= rn−2qn−1+rn−1, rn∈ {0, ..., rn−2− 1},

rn−2=rn−1qn+rn, rn∈ {0, ..., rn−1− 1},

rn−1= rnqn+1 .

Ponadto

NWD(a, b)= NWD(b, r1) = NWD(r1, r2) = ...

= NWD(rn−2, rn−1) = NWD(rn−1, rn) =rn.

(20)

ALGORYTM EUKLIDESA (I)

Wniosek.

W algorytmie Euklidesa największym wspólnym dzielnikiem dwóch liczb jest ostatnia niezerowa reszta.

Algorytm rekurencyjny:

def Euclid(a,b):

if b==0:

return a

return Euclid(b, a%b)

(21)

ALGORYTM EUKLIDESA (I), NWD(a, b) = NWD(b, a%b)

Przykład. Znajdź NWD(486, 222).

486 =222· 2 +42 (czyli 486 dzielone przez 222 daje resztę 42);

222=42· 5 +12 (czyli 222 dzielone przez 42 daje resztę 12);

42=12· 3 +6 (czyli 42 dzielone przez 12 daje resztę 6);

12=6· 2 + 0 (tutaj 12 dzielone przez 6 daje resztę 0, czyli dzieli się bez reszty).

Ostatnia niezerowa reszta to

NWD(486, 222) =NWD(222, 42)=NWD(42, 12)=NWD(12, 6)=6.

(22)

NWD;

wykażemy, że d = ax0+ by0­NWD(a, b)

Twierdzenie.

Niech a, b, ∈ N oraz 0 ¬ b < a. Wtedy NWD(a, b) = d, gdzie d = min{(ax + by ) ∈ N+: x , y ∈ Z}.

Wniosek.

Istnieją takie liczby całkowite x0oraz y0, że d = ax0+ by0=NWD(a, b). Dowód (twierdzenia).

Jak wiemy (własność 7), jeśli c|a i c|b, to c|(ax + by ) dla dowolnych x i y .

Oznacza to, że NWD(a, b)|(ax + by ),

zatem NWD(a, b) ¬ ax + by orazNWD(a, b) ¬ d. Wystarczy więc wykazać nierówność d ¬ NWD(a, b).

(23)

NWD;

wykażemy, że d = ax0+ by0¬NWD(a, b)

Pokażemy, że d dzieli zarówno a jak i b.

Reszta r z dzielenia a przez d (tu: a = dk +r) jest mniejsza od d . r = a − dk = a − (ax0+ by0)k = (1 − x0k)a − (y0k)b.

rjest więc kombinacją liniową liczb a i b. Oczywiście 0 ¬r < d (r to reszta z dzielenia przez d ). Ponieważ d było najmniejszą kombinacją liniową w zbiorze N+, więc r /∈ N+, czylir = 0. Oznacza to, że d dzieli a.

Tak samo wykazuje się, że d dzieli b, o ile b > 0.

Gdy b = 0, to także d |b (gdyż d |0).

Wiemy, że NWD(a, b) dzieli zarówno a jak i b.

Także d dzieli zarówno a jak i b.

Skoro NWD(a, b) jest NAJWIĘKSZYM wspólnym dzielnikiem, d ¬ NWD(a, b). Zatem d = NWD(a, b).

(24)

Liczby względnie pierwsze

NWD(a, b) = min{(ax + by ) ∈ N+: x , y ∈ Z}.

Wniosek.

Liczby a i b są względnie pierwsze wtedy i tylko wtedy, gdy istnieją liczby całkowite x i y spełniające równanie ax + by = 1.

Przedstawimy wersję algorytmu Euklidesa zwracającą także liczby x0, y0, dla których NWD(a, b) = ax0+ by0.

(25)

ROZSZERZONY ALGORYTM EUKLIDESA

Zauważmy, że NWD(a, b) =rn= rn−2rn−1qn. Z kolei rn−1= rn−3− rn−2qn−1.

Wyznaczając i podstawiając, kolejno, rn−2, rn−3, ... uzyskamy szukaną kombinację liniową liczb a i b.

Bardziej formalnie:

ax0+ by0= NWD(a, b) = NWD(b, a%b) = bx0+ (a%b)y0

= bx0+

a − b · babc

y0= ay0+ b

x0− y0· bbac . Stąd

x0=y0, y0=

x0− y0· ba bc

. Zamiast babc stosuje się też oznaczenie: a//b.

(26)

ROZSZERZONY ALGORYTM EUKLIDESA

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Początek mamy jak w wersji (I):

486=222· 2 +42;

222=42· 5 +12;

42=12· 3 +6;

12=6· 2 + 0;

Ostatnia niezerowa reszta będąca NWD(486, 222) =6.

Wyrazimy teraz NWD(486, 222) jako kombinację liczb „na wejściu”:

6=

4212· 3 =42− (222−42· 5) · 3 = −222· 3 +42· 16

= −222· 3 + (486−222· 2) · 16 = 16 ·486− 35 ·222

(27)

ROZSZERZONY ALGORYTM EUKLIDESA

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Początek mamy jak w wersji (I):

486=222· 2 +42;

222=42· 5 +12;

42=12· 3 +6;TEN WZÓR 12=6· 2 + 0;

Ostatnia niezerowa reszta będąca NWD(486, 222) =6.

Wyrazimy teraz NWD(486, 222) jako kombinację liczb „na wejściu”:

6=4212· 3 =

42− (222−42· 5) · 3 = −222· 3 +42· 16

= −222· 3 + (486−222· 2) · 16 = 16 ·486− 35 ·222

(28)

ROZSZERZONY ALGORYTM EUKLIDESA

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Początek mamy jak w wersji (I):

486=222· 2 +42;

222=42· 5 +12;TEN WZÓR 42=12· 3 +6;

12=6· 2 + 0;

Ostatnia niezerowa reszta będąca NWD(486, 222) =6.

Wyrazimy teraz NWD(486, 222) jako kombinację liczb „na wejściu”:

6=4212· 3 =42− (222−42· 5) · 3 = −222· 3 +42· 16

=

222· 3 + (486−222· 2) · 16 = 16 ·486− 35 ·222

(29)

ROZSZERZONY ALGORYTM EUKLIDESA

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Początek mamy jak w wersji (I):

486=222· 2 +42;TEN WZÓR 222=42· 5 +12;

42=12· 3 +6;

12=6· 2 + 0;

Ostatnia niezerowa reszta będąca NWD(486, 222) =6.

Wyrazimy teraz NWD(486, 222) jako kombinację liczb „na wejściu”:

6=4212· 3 =42− (222−42· 5) · 3 = −222· 3 +42· 16

= −222· 3 + (486−222· 2) · 16 =

16 ·486− 35 ·222

(30)

ROZSZERZONY ALGORYTM EUKLIDESA

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Początek mamy jak w wersji (I):

486=222· 2 +42;

222=42· 5 +12;

42=12· 3 +6;

12=6· 2 + 0;

Ostatnia niezerowa reszta będąca NWD(486, 222) =6.

Wyrazimy teraz NWD(486, 222) jako kombinację liczb „na wejściu”:

6=4212· 3 =42− (222−42· 5) · 3 = −222· 3 +42· 16

= −222· 3 + (486−222· 2) · 16 = 16 ·486− 35 ·222

(31)

ROZSZERZONY ALGORYTM EUKLIDESA

Algorytm

def ExEuclid(a,b):

if b==0:

return a,1,0 else:

(g1,x1,y1)=ExEuclid(b,a%b) (g,x,y)=(g1,y1,x1-y1*(a//b)) return g,x,y

(32)

Tabela przebiegu obliczeń.

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Kolumna x = y0 (piąta) oznacza, że za x bierzemy y z pozycji: jedna w prawo, jedna w dół. W kolumnie y (szósta) zapis x0 oznacza x z pozycji:

jedna w lewo, jedna w dół. Niebieska kolumna pokazuje odpowiednie kombinacje liniowe zachowujące ten sam NWD.

a b a//b a%b x = y0 x0− y0(a//b) =y xa+yb=NWD(a,b) 486 222 2 42 −3 − 16 · 2 = −35 16 · 486 − 35 · 222 = 6

222 42 5 12

42 12 3 6

12 6 2 0

6 0 1 0 tu 6 · 1 + 0 · 0 = 6

(33)

Tabela przebiegu obliczeń.

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Kolumna x = y0 (piąta) oznacza, że za x bierzemy y z pozycji: jedna w prawo, jedna w dół. W kolumnie y (szósta) zapis x0 oznacza x z pozycji:

jedna w lewo, jedna w dół. Niebieska kolumna pokazuje odpowiednie kombinacje liniowe zachowujące ten sam NWD.

a b a//b a%b x = y0 x0− y0(a//b) =y xa+yb=NWD(a,b) 486 222 2 42 −3 − 16 · 2 = −35 16 · 486 − 35 · 222 = 6

222 42 5 12

42 12 3 6

12 6 2 0 0 10·2= 1 0 · 12 + 1 · 6 = 6

6 0 1 0 tu 6 · 1 + 0 · 0 = 6

(34)

Tabela przebiegu obliczeń.

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Kolumna x = y0 (piąta) oznacza, że za x bierzemy y z pozycji: jedna w prawo, jedna w dół. W kolumnie y (szósta) zapis x0 oznacza x z pozycji:

jedna w lewo, jedna w dół. Niebieska kolumna pokazuje odpowiednie kombinacje liniowe zachowujące ten sam NWD.

a b a//b a%b x = y0 x0− y0(a//b) =y xa+yb=NWD(a,b) 486 222 2 42 −3 − 16 · 2 = −35 16 · 486 − 35 · 222 = 6

222 42 5 12

42 12 3 6 1 0 −1·3= − 3 1 · 42 − 3 · 12 = 6

12 6 2 0 0 1 − 0 · 2 =1 0 · 12 + 1 · 6 = 6

6 0 1 0 tu 6 · 1 + 0 · 0 = 6

(35)

Tabela przebiegu obliczeń.

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Kolumna x = y0 (piąta) oznacza, że za x bierzemy y z pozycji: jedna w prawo, jedna w dół. W kolumnie y (szósta) zapis x0 oznacza x z pozycji:

jedna w lewo, jedna w dół. Niebieska kolumna pokazuje odpowiednie kombinacje liniowe zachowujące ten sam NWD.

a b a//b a%b x = y0 x0− y0(a//b) =y xa+yb=NWD(a,b) 486 222 2 42 −3 − 16 · 2 = −35 16 · 486 − 35 · 222 = 6 222 42 5 12 − 3 1 − (-3) ·5= 16 −3 · 222 + 16 · 42 = 6

42 12 3 6 1 0 − 1 · 3 = − 3 1 · 42 − 3 · 12 = 6

12 6 2 0 0 1 − 0 · 2 = 1 0 · 12 + 1 · 6 = 6

6 0 1 0 tu 6 · 1 + 0 · 0 = 6

(36)

Tabela przebiegu obliczeń.

Przykład. Znajdź NWD(486, 222) oraz liczby x i y takie, że NWD(486, 222) = 486x + 222y .

Kolumna x = y0 (piąta) oznacza, że za x bierzemy y z pozycji: jedna w prawo, jedna w dół. W kolumnie y (szósta) zapis x0 oznacza x z pozycji:

jedna w lewo, jedna w dół. Niebieska kolumna pokazuje odpowiednie kombinacje liniowe zachowujące ten sam NWD.

a b a//b a%b x= y0 x0− y0(a//b) =y xa+yb=NWD(a,b) 486 222 2 42 16 −3 −16·2= −35 16 · 486 − 35 · 222 = 6 222 42 5 12 − 3 1 − (-3) · 5 =16 −3 · 222 + 16 · 42 = 6

42 12 3 6 1 0 − 1 · 3 = − 3 1 · 42 − 3 · 12 = 6

12 6 2 0 0 1 − 0 · 2 = 1 0 · 12 + 1 · 6 = 6

6 0 1 0 tu 6 · 1 + 0 · 0 = 6

(37)

Algorytm binarny obliczania NWD (algorytm Steina)

Wśród innych algorytmów obliczania NWD

w algorytmie binarnym jedynie dzielimy przez 2 i odejmujemy.

Przyjmujemy: NWD(a, 0) = a.

Zauważmy, że dla a, b ∈ N+ oraz a ­ b:

1 dla a, b parzystych NWD(a, b) = 2NWD(a/2, b/2),

2 dla a parzystego, b nieparzystego NWD(a, b) = NWD(a/2, b),

3 dla a nieparzystego, b parzystego NWD(a, b) = NWD(a, b/2),

4 dla a, b nieparzystych NWD(a, b) = NWD((a − b)/2, b),

5 dla a = b mamy NWD(a, b) = a.

Kroki 1-4 wykonujemy, aż a = b (lub a = 0). Jeśli trzeba, zamieniamy liczby miejscami (by pierwsza nie była mniejsza od drugiej). Dzięki punktom 1, 2, 3 usuwamy zbędne dwójki z rozkładu. W punkcie 4 różnica dwóch liczb nieparzystych jest liczbą parzystą, też usuwamy zbędną dwójkę.

(38)

Algorytm Steina obliczania NWD

Przykład. Znajdziemy NWD(486, 222).

Pod znakiem równości podany jest numer właściwego kroku.

NWD(486, 222) =

1 2 · NWD(243, 111)

=4 2 · NWD((243 − 111)/2, 111)

= 2 · NWD(66, 111) = 2 · NWD(111, 66)

=3 2 · NWD(111, 33) =

4 2 · NWD((111 − 33)/2, 33) =

= 2 · NWD(39, 33) =

4 2 · NWD((39 − 33)/2, 33)

= 2 · NWD(3, 33) = 2 · NWD(33, 3) =

4 2 · NWD((33 − 3)/2, 3)

= 2 · NWD(15, 3) =

4 2 · NWD((15 − 3)/2, 3) = 2 · NWD(6, 3)

=2 2 · NWD(3, 3) =

5 2 · 3 = 6

(39)

Liczby pierwsze

Definicja.

Liczbę naturalną n > 1 nazywamy liczbą pierwszą, jeśli jej jedynymi naturalnymi dzielnikami są 1 i n.

Liczbę naturalną n > 1, która nie jest liczbą pierwszą nazywamy liczbą złożoną.

Przykład.

Liczbami pierwszymi są: 2, 3, 5, 7, 11, 13, 17, 19, 23, 97, 8573, 10163.

Twierdzenie.

Każda liczba naturalna n > 1 jest albo liczbą pierwszą albo iloczynem liczb pierwszych.

Twierdzenie (Euklides).

Liczb pierwszych jest nieskończenie wiele.

(40)

Dodatek.

Definicja.

Liczby bliźniacze, to takie dwie liczby pierwsze, że wartość bezwzględna z ich różnicy wynosi 2.

Przykład.

Parami liczb bliźniaczych są:

(2, 3), (5, 7), (11, 13), (17, 19), (29, 31).

PYTANIE.

Czy par liczb bliźniaczych jest nieskończenie wiele?

(41)

Liczby pierwsze, sito Erastotenesa

Fakt.

Każda liczba złożona ma dzielnik pierwszy nie większy od n.

Uzasadnienie:

Jeżeli n = dk oraz 1 < d ¬ k < n, to d2 ¬ dk = n, a stąd d ¬√

n.

Sito Erastotenesa to metoda znajdowania liczb pierwszych mniejszych od danej liczby naturalnej n wykorzystująca ten fakt.

Spośród liczb od 2 do n wykreślamy wszystkie wielokrotności 2. Pierwsza liczba nieskreślona, czyli 3, jest liczbą pierwszą.

Z pozostałych liczb wykreślamy wielokrotności 3. Pierwsza liczba nieskreślona, czyli 5, jest liczbą pierwszą.

Postępujemy tak długo, aż nie rozważymy wszystkich liczb aż do

n (np. dla n=100 musimy wykreślić wielokrotności 2, 3, 5 i 7 – to wszystkie liczby pierwsze mniejsze od 10). Tak otrzymane nieskreślone liczby są wszystkimi liczbami pierwszymi mniejszymi od n.

(42)

Sito Erastotenesa

Przykład.

Korzystając z sita Erastotenesa znajdź wszystkie liczby pierwsze mniejsze od 20.

Wykreślamy, kolejno, wielokrotności 2 oraz 3 (3 to największa liczba nie większa od

20).

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

3 5 7 9 11 13 15 17 19

5 7 11 13 17 19

Szukane liczby pierwsze to: 2, 3, 5, 7, 11, 13, 17, 19.

(43)

Liczba naturalna jako iloczyn liczb pierwszych

Twierdzenie (zasadnicze twierdzenie arytmetyki).

Każdą liczbę naturalną n > 1 można jednoznacznie zapisać w postaci iloczynu liczb pierwszych (z dokładnością do kolejności czynników).

Zapis n w postaci iloczynu n = p1p2· . . . · pk liczb pierwszych jest jednoznaczny przy założeniu, że wypisujemy liczby pierwsze w porządku niemalejącym p1 ¬ p2 ¬ . . . ¬ pk. Grupując jednakowe czynniki pierwsze otrzymamy

Wniosek.

Każdą liczbę naturalną n > 1 można zapisać jednoznacznie w postaci n =Qki =1piαi, gdzie p1< p2 < . . . < pk są liczbami pierwszymi, k jest liczbą różnych liczb pierwszych w rozkładzie n, a αi ∈ N+.

(44)

Rozkład na iloczyn liczb pierwszych

Elementarną metodą rozkładu danej liczby naturalnej na liczby pierwsze jest dzielenie tej liczby przez kolejne liczby pierwsze, zaczynając od 2. Jeśli dzielenie jest bez reszty, to dana liczba pierwsza wystąpi w rozbiciu. Dla uzyskanego ilorazu powtarzamy procedurę, aż otrzymamy iloraz równy 1.

Przykład. Rozłóż na iloczyn liczb pierwszych liczbę 1980.

1980 :2= 990

990 :2= 495, 495 nie dzieli się przez 2 495 :3= 165,

165 :3= 55, 55 nie dzieli się przez 3 55 :5= 11, 11 nie dzieli się przez 5

11 nie dzieli się przez 7 11 :11= 1.

1980 =2 · 2 · 3 · 3 · 5 · 11.

Niestety (albo stety) algorytmy rozkładu na czynniki pierwsze mają wysoką złożoność obliczeniową.

(45)

Jak sprawdzić, czy dana liczba jest pierwsza?

Test naiwny.

Daną liczbę n dzielimy przez kolejne liczby (pierwsze) od 2 do n.

Z pozostałych testów omówimy dość prosty test Fermata.

Jest to jeden z testów probabilistycznych

(inne to test Solovaya-Strassena, czy test Millera-Rabina).

Jeśli jakaś liczba przejdzie test Fermata, to na pewno jest liczbą złożoną.

Niestety, jeśli nie przejdzie testu, to wcale nie musi być liczbą pierwszą.

(46)

a ≡

m

b, Małe Twierdzenie Fermata

Definicja.

Niech a, b ∈ Z, m ∈ N+. Mówimy, że a przystaje do b modulo m, jeśli m|(a − b).

Oznaczamy: a ≡ b (mod m) lub a ≡mb.

Przykład.

8 ≡ 5 (mod 3), 11 ≡ 5 (mod 3).

Twierdzenie (Małe Twierdzenie Fermata).

Niech n będzie liczbą pierwszą i niech a ∈ {0, 1, 2, . . . , n − 1}.

Wtedy anna.

Uwaga. Gdy a 6= 0, to dzieląc anna przez a otrzymamyan−1n1.

Jeśli an−1n1, to a może być liczbą pierwszą, ale może też być liczbą złożoną.

42 lata przed Fermatem twierdzenie to sformułował Jan Brożek

(47)

MTF: dla dowolnej liczby pierwszej n i dowolnego a ∈ {0, 1, 2, . . . , n − 1} mamy a

n

n

a.

Dowód indukcyjny względem a. W kroku indukcyjnym podstawimy a = k.

0nn0, a także 1nn1 Założmy, żekn nk.

Wykażemy, że (k + 1)nn(k + 1).

Jak wiemy, (k + 1)n=Pni =0 niki· 1n−i =Pni =0 niki. Rozważmy i większe od 0, ale mniejsze od n.

Liczba ni= i !(n−i )!n! jest całkowita.

Liczba n jest pierwsza, a wszystkie czynniki obu silni mianownika są mniejsze od n, a więc muszą być względnie pierwsze z n. Zatem w rozkładzie nina czynniki znajduje się liczba n, co oznacza, że

n i

n0 dla 0 < i < n. Stąd (k + 1)n=Pi ∈{0,1,...,n}

n i

ki nPi ∈{0,n} niki = n0k0+ nnkn

= 1 +knnk+ 1 =k + 1.

(48)

Test Fermata

Test Fermata.

Aby sprawdzić, czy n jest liczbą pierwszą:

wylosuj liczbę a < n;

oblicz (na przykład algortmem Euklidesa) d = NWD(a, n);

jeżeli d > 1, to n nie jest pierwsza (ponadto d jest dzielnikiem n);

jeżeli d = 1, to oblicz an−1 (mod n):

jeżeli an−16≡n1, to stwierdź, że n jest liczbą złożoną,

jeżeli an−1n1, to stwierdź, że n jest (prawdopodobnie) liczbą pierwszą.

Uwaga 1. Jeśli wylosowana liczba a spełnia an−16≡n1,

to n na pewno nie jest liczbą pierwszą. Niestety, jeśli wylosujemy pechowo, to może się zdarzyć, że an−1n1, a n jest liczbą złożoną.

Uwaga 2.

Oczywiście możemy losować więcej liczb niż tylko jedno a (jeśli an−1n1).

(49)

Test Fermata

Przykład 1. Sprawdzimy, czy n = 15 jest liczbą pierwszą.

Wylosowaliśmy a = 3.

NWD(3, 15) = 3, więc 15 nie jest liczbą pierwszą.

Przykład 2. Sprawdzimy, czy n = 15 jest liczbą pierwszą.

Wylosowaliśmy a = 2. NWD(2, 15) = 1.

Obliczamy an−1= 214= 16384.

Zauważamy, że 214− 1 = 16383 = 1092 · 15 + 3, czyli 2146≡151. Zatem 15 jest liczbą złożoną.

Przykład 3. Sprawdzimy, czy n = 15 jest liczbą pierwszą.

Wylosowaliśmy a = 4. NWD(4, 15) = 1.

Obliczamy an−1= 414= 268435456.

Zauważamy, że 414− 1 = 17895697 · 15, czyli 414151.

Zatem 15 jest (prawdopodobnie) liczbą pierwszą.

(50)

Test Fermata

Definicja.

Liczba n jest liczbą Carmichaela jeśli jest liczbą złożoną oraz dla dowolnej liczby a ∈ {1, . . . , n − 1} względnie pierwszej z n zachodzi an−1 n1.

Takich liczb jest nieskończenie wiele, ale występują rzadko.

Przykład.

561, 1105, 1729, 2465, 2821, 6601, 8911, 10585, 15841, 29341.

Uwaga.

Test Fermata na pewno nie rozstrzygnie o pierwszości liczb Carmichaela.

(51)

Test AKS,

https://www.cse.iitk.ac.in/users/manindra/algebra/primality v6.pdf

Pierwszym (rok 2002, publikacja w 2004) jednoznacznym testem o wielomianowym czasie działania jest test pierwszości AKS (Manindra Agrawal, Neeraj Kayal, Nitin Saxena).

Oznaczenie. Zapis

(x + a)n≡ (xn+ a) ( mod n, xr − 1)

oznacza, że reszta z dzielenia wielomianu (x + a)n− xn− a przez xr − 1 jest wielomianem, którego wszystkie współczynniki są podzielne przez n.

Przykład. (x + 2)3≡ (x3+ 2) ( mod3, x2− 1), gdyż

(x + 2)3− x3− 2 = x3+ 6x2+ 12x + 8 − x3− 2 = 6x2+ 12x + 6 (6x2+ 12x + 6) : (x2− 1) = 6 +12x +12x2−1 ;

resztą z dzielenia jest 12x +12, a liczba12 jest podzielna przez3.

(52)

Test AKS, oznaczenia

Oznaczmy przez Φ(r ) liczbę wszystkich liczb mniejszych od r względnie pierwszych z r .

Przykład.

Φ(5) = k{1, 2, 3, 4}k = 4, Φ(6) = k{1, 5}k = 2.

Niech n i r będą względnie pierwsze.

Oznaczmy przez or(n) najmniejszą liczbę k > 0 taką, że nk r 1.

Przykłady.

o3(7) =1, gdyż 71 3 1 (7 − 1 dzieli się przez 3 bez reszty) o4(7) =2, gdyż 71 6≡4 1, ale 72 41.

o29(31) =28, gdyż

3128− 1 = 29 · 19757383485087761935287842115079090949760, czyli 3128291, a 31m6≡291 dla 1 ¬ m ¬ 27.

(53)

Test AKS

Algorytm AKS:

1 sprawdzamy, czy istnieją liczby naturalne a ­ 2 oraz b ­ 2 takie, że n = ab; jeśli tak, to n jest liczbą złożoną;

2 znajdujemy najmniejszą liczbę r względnie pierwszą z n taką, że or(n) > log22n;

3 jeśli istnieje takie a ¬ r , że 1 < NWD(a, n) < n , to n jest liczbą złożoną;

4 jeśli n ¬ r , to n jest liczbą pierwszą;

5 jeśli istnieje a spełniające warunek 1 ¬ a ¬ bpΦ(r ) log2nc takie, że (x + a)n6≡ (xn+ a) ( mod n, xr − 1),

to n jest liczbą złożoną;

6 jeśli dla każdego a od 1 do bpΦ(r ) log2nc,

(x + a)n≡ (xn+ a) ( mod n, xr − 1) to n jest liczbą pierwszą.

(54)

Test AKS, przykład, n = 3

Przykład.

Sprawdzimy, czy n = 3 jest liczbą pierwszą.

Etap 1.

Jak wiemy, alogan= n, wystarczy zatem sprawdzać dla b ¬ logan ¬ log2n.

Warunek n = ab jest równoważny warunkowi a = n1/b.

Wystarczy zatem jak sprawdzimy, czy liczba a = n1/b jest liczbą całkowitą dla b = 2, 3, . . . , log2n.

W naszym przykładzie log23 < 2 (nie mamy co podstawiać).

Nie możemy więc stwierdzić, że 3 jest liczbą złożoną.

(55)

Test AKS, przykład, n = 3

Etap 2. Znajdujemy najmniejszą liczbę r taką, że or(3) > log223 ≈ 2.51.

Szukamy więc najmniejszego r (względnie pierwszego z 3) takiego, że or(3) ­ 3.

o2(3) = 1, gdyż 31 2 1 (tu: 31− 1 = 2), o2(3) < 3 o4(3) = 2, gdyż 31 6≡4 1, 32= 9 ≡4 1, o4(3) < 3 o5(3) = 4, gdyż 31 6≡5 1, 326≡5 1, 336≡5 1, 34 51

(tu: 34− 1 = 81 − 1 = 80 = 5 · 20), o5(3) = 4 ­ 3 Szukaną liczbą jest r = 5.

Etap 3. Obliczamy (tutaj r = 5):

NWD(2, 3) = 1, NWD(3, 3) = 3, NWD(4, 3) = 1, NWD(5, 3) = 1.

Żadna z tych wartości nie jest jednocześnie większa od 1 i mniejsza od 3.

Nie możemy więc stwierdzić, że n jest liczbą złożoną.

Etap 4. n = 3 ¬ r = 5.

Możemy więc stwierdzić, że n = 3 jest liczbą pierwszą.

(56)

Test AKS, kolejny przykład, n = 31

Przykład.

Sprawdzimy, czy n = 31 jest liczbą pierwszą.

Etap 1.

Jak wiemy, alogan= n, wystarczy zatem sprawdzać dla b ¬ logan ¬ log2n.

Warunek n = ab jest równoważny warunkowi a = n1/b.

Wystarczy zatem jak sprawdzimy, czy liczba a = n1/b jest liczbą całkowitą dla b = 2, 3, . . . , log2n.

W naszym przykładzie log231 < 5 (podstawiamy więc b = 2, 3, 4), a liczby 311/2, 311/3, 311/4 nie są całkowite.

Nie możemy więc stwierdzić, że n jest liczbą złożoną.

(57)

Test AKS, n = 31

Etap 2.

Znajdujemy najmniejszą liczbę r taką, że or(n) > log22n = log2231 ≈ 24.544.

Tą liczbą jest r = 29.

Etap 3.

Obliczamy (tutaj r = 29):

NWD(2, 31) = 1, NWD(3, 31) = 1, NWD(4, 31) = 1, . . . , NWD(29, 31) = 1.

Żadna z tych wartości nie jest jednocześnie większa od 1 i mniejsza od 31.

Nie możemy więc stwierdzić, że n jest liczbą złożoną.

Etap 4.

n = 31 > r = 29

Nie możemy więc stwierdzić, że n jest liczbą pierwszą.

(58)

Test AKS, przykład, n = 31

Etap 5/6.

W naszym przykładzie

bpΦ(r ) · log2nc = bpΦ(29) · log231c = b√

28 · log231c

= b26.215 . . .c = 26.

Dla a od 1 do 26 sprawdzamy, czy

(x + a)31≡ (x31+ a) ( mod 31, x29− 1).

Okazuje się że tak, zatem n = 31 jest liczbą pierwszą.

Cytaty

Powiązane dokumenty

Jan Paweł II, utwierdzając braci w wierze w prawdę, utwierdza ich w miłości Prawda bowiem jest dobra, a dobru należy się miłość.. W miłości prawdy tkwi

Jest rzeczą naturalną, że rządzący państwem troszczą się o to, aby środki masowego przekazu przyczyniały się do podwyższenia, a nie do umniejszenia życia

6. Przy okrągłym stole usiadło osiem dziewcząt i ośmiu chłopców. Jaka jest szansa, że osoby tej samej płci nie siedzą obok siebie? Jakie jest prawdopodobieństwo, że trzy

Nauczyciel przypomina, czym jest środek stylistyczny i tłumaczy, co to jest porównanie, zapisuje przykłady na tablicy, np.. oczy jak gwiazdy, buzia jak pączek, nogi jak patyki i prosi

Dla dodatniej liczby naturalnej n znaleźć wzór na największą potęgę liczby pierwszej p dzielącą n!4. Rozłożyć na czynniki pierwsze

Wypisać wszystkie elementy ciała Z 3 (α) oraz obliczyć sumy i iloczyny wybranych elementów tego ciała.. (16) Zbudować ciało 4-elementowe oraz ciało 9-elementowe jako

Ile różnych deserów może z tego sporządzić eks- pedientka, jeśli w pucharku mieści się nie więcej niż 5 kulek lodów, a pusty pucharek nie jest deserem?.

Wskazani uczniowi, gdy wykonają zadania, muszą niezwłocznie przesłać wyniki przez komunikator na e-dzienniku, lub mailem na adres: matematyka2LOpm@gmail.com skan rozwiązania,