Notatki z Algorytmicznej Teorii Liczb

advertisement
Notatki z Algorytmicznej Teorii Liczb
Jakub Pawlewicz
7 stycznia 2010
1
Liczby pierwsze
Podstawowy fakt udowodniony dawno temu przez Euklidesa brzmi.
Twierdzenie 1.1. Liczb pierwszych jest nieskończenie wiele.
Poniżej przedstawiamy dowód edukacyjny, który różni się od oryginalnego
dowodu Euklidesa.
Dowód. Skorzystamy ze znanej równości:
∞
X
1
π2
=
.
n2
6
n=1
(1.1)
Prawa strona równości (1.1) jest liczbą niewymierną. Z drugiej strony mamy:
∞
X
1
=
2
n
n=1
1
1
1
−
p2
p pierwsza
Y
(1.2)
Zatem jeśli mamy skończenie wiele liczb pierwszych to prawa strona (1.2) jest
liczbą wymierną — sprzeczność.
Skąd się biorą takie równości jak (1.2)? Dla dowolnej funkcji f takiej, że
f (xy) = f (x)f (y), można ogólnie napisać
∞
X
Y
f (n) =
n=1
p pierwsza
1
.
1 − f (p)
Bierze się to stąd, że
Y
p pierwsza
1
=
1 − f (p)
=
Y
∞
X
i
f (p)
p pierwsza i=0
X
∞
Y
i
f (pk ) k =
0≤i1 ,i2 ,... k=1
limk→∞ ik =0
X
f
0≤i1 ,i2 ,...
limk→∞ ik =0
Z jednoznaczności rozkładu liczb naturalnych otrzymujemy, że
(∗) =
∞
X
n=1
1
f (n).
∞
Y
k=1
!
pikk
= (∗)
2
Ciała skończone
Ciała skończone mają zastosowanie w wielu dziedzinach takich jak kryptografia,
czy teoria kodów.
Jak tworzyć ciała skończone GF (pn )? Dla n = 1 bierzemy Zp .
Fakt 2.1. Zp jest ciałem.
Dowód. Łatwo jest wykazać, że Zp jest pierścieniem. Jedyną trudność sprawia
wykazanie istnienia elementu odwrotnego. Niech a 6= 0.
Ponieważ a jest względnie pierwsze z p, więc z algorytmu Euklidesa wynika,
że istnieją takie liczby x, y ∈ Z, że ax + py = 1, skąd ax ≡ 1 (mod p). Zatem x
jest odwrotnością a w Zp .
Możemy udowodnić istnienie odwrotności bez wykorzystywania algorytmu
Euklidesa. Rozważmy liczby
1a, 2a, . . . , (p − 1)a.
(2.1)
Jeśli ai ≡ aj (mod p), to p | a(i − j) ⇒ p | i − j ⇔ i ≡ j (mod p), zatem
wszystkie liczby (2.1) są różne modulo p i dają cały zbiór {1, . . . , p − 1}. Tak
więc będzie co najmniej jedna taka liczba x, że ax ≡ 1 (mod p).
W przypadku gdy n > 1 postępujemy następująco.
Bierzemy wielomian f nad Zp stopnia n, który jest nierozkładalny, wtedy
GF (pn ) = Zp [X]/≡f ,
Gdzie ≡f oznacza przystawanie dwóch wielomianów modulo f , tzn. g ≡f h ⇔
f | (g −h). Ciało takie zwykle reprezentujemy wszystkimi wielomianami stopnia
mniejszego od n.
Przykład 2.2. GF (4). Znajdźmy wielomian stopnia 2 nierozkładalny nad Z2 ,
wykluczając wszystkie rozkładalne wielomiany.
= x2 ,
x·x
x · (x + 1)
(x + 1)(x + 1)
= x2 + x,
= x2 + 2x + 1 = x2 + 1.
Zatem jedynym nierozkładalnym wielomianem stopnia 2 nad Z2 jest x2 +
x + 1. Elementami tego ciała są 0, 1, x, x + 1. Operacje mnożenia i dodawania
wykonujemy jak na zwykłych wielomianach z tym, że x2 utożsamiamy z −x−1 =
x + 1, np.
x(x + 1) = x2 + x = x + 1 + x = 1.
W ten sposób tworzymy tabelkę działań dla + i ·:
+
0
1
x
x+1
0
0
1
x
x+1
1
1
0
x+1
x
2
x
x
x+1
0
1
x+1
x+1
x
1
0
·
0
1
x
x+1
3
0
0
0
0
0
x
0
x
x+1
1
1
0
1
x
x+1
x+1
0
x+1
1
x
Rozszerzony algorytm Euklidesa, a algorytm
binarny
Liczymy NWD liczb 644 i 490:
644 = 1 · 490 + 154
490 = 3 · 154 + 28
154 = 5 · 28 + 14
28 = 2 · 14
oraz kombinację liniową:
14 = 154 − 5 · 28 = 154 − 5 · (490 − 3 · 154) = −5 · 490 + 16 · 154
= −5 · 490 + 16(644 − 1 · 490) = 16 · 644 − 21 · 490.
Teraz jeszcze raz liczymy NWD(644, 490) algorytmem binarnym. Wpierw wyciągamy 2 i zostaje nam policzyć NWD(322, 245).
245 − 161 = 84
322/2 = 161
2
161 − 21 = 140
84/2 = 21
2
35 − 21 = 14
140/2 = 35
14/2 = 7
21 − 7
= 14
14/2 = 7
7−7
=0
Pytanie: jak możemy teraz wyciągnąć kombinację liniową?
Żeby znaleźć odpowiedź zobaczmy jak wygląda rozszerzony algorytm Euklidesa. Dla liczb a ≥ b konstruujemy ciąg reszt r0 = a, r1 = b, r2 , . . . , rn =
NWD(a, b), rn+1 = 0. Dla każdej reszty ri znajdujemy ponadto liczby ti i si
takie, że
ti a + si b = ri .
(3.1)
Na końcu otrzymujemy tn a + sn b = NWD(a, b).
Tak naprawdę w rozszerzonym algorytmie Euklidesa operujemy na trójkach
liczb. Oznaczmy K(a, b) = {(r, t, s) ∈ Z3 | ta + sb = r}.
Fakt 3.1. Zachodzą następujące własności trójek K(a, b):
(i) (a, 1, 0) ∈ K(a, b),
(ii) (b, 0, 1) ∈ K(a, b),
(iii) (r, t, s), (r0 , t0 , s0 ) ∈ K(a, b) ⇒ (r + r0 , t + t0 , s + s0 ) ∈ K(a, b),
(iv) (r, t, s) ∈ K(a, b) ⇔ (kr, kt, ks) ∈ K(a, b), przy ⇐ jest k 6= 0,
3
644 = 1 · 490 + 154
490 = 3 · 154 + 28
154 = 5 · 28 + 14
28 = 2 · 14
i
0
1
2
3
4
5
qi
1
3
5
2
ri
644
490
154
28
14
0
ti
1
0
1−1·0=1
0 − 3 · 1 = −3
1 − 5 · (−3) = 16
si
0
1
0 − 1 · 1 = −1
1 − 3 · (−1) = 4
−1 − 5 · 4 = −21
Tablica 1: Przebieg rozszerzonego Euklidesa dla 644 i 490.
(v) (r, t, s) ∈ K(a, b) ⇒ (r, t ∓ b, s ± a) ∈ K(a, b).
Z ri−2 = qi−1 ri−1 + ri mamy ri = ri−2 − qi−1 ri−1 , więc z własności (iii) i
(iv) dostajemy, że jeśli (ri−2 , ti−2 , si−2 ), (ri−1 , ti−1 , si−1 ) ∈ K(a, b), to
(ri−2 − qi−1 ri−1 , ti−2 − qi−1 ti−1 , si−2 − qi−1 si−1 ) ∈ K(a, b).
Przyjmując ti = ti−2 −qi−1 ti−1 i si = si−2 −qi−1 si−1 mamy (ri , ti , si ) ∈ K(a, b).
Stosując te wzory w tablicy 1 zbudowaliśmy od przodu kombinację liniową
16 · 644 − 21 · 490 = 14.
Pokaże jak w podobny sposób uzyskiwać kombinację liniową w algorytmie binarnym.
Fakt 3.2. Niech (r, t, s) ∈ K(a, b) i 2 | r. Jeśli 2 6 | a, a 2 | s, to 2 | t.
Dowód. 2 | r − sb = at, ponieważ 2 6 | a, więc 2 | t.
Daje to następujący rozszerzony algorytm binarny. Wpierw dzielimy liczby
a i b tak długo aż jedna z nich będzie nieparzysta. Niech a = ea0 i b = eb0 ,
gdzie e jest potęgą dwójki. a0 lub b0 jest nieparzyste. Jeśli wyliczymy, że d0 =
NWD(a0 , b0 ) oraz znajdziemy kombinację t0 a0 +s0 b0 = d0 , to NWD(a, b) = d = ed0
oraz t0 a + s0 b = t0 ea0 + s0 eb0 = ed0 = d. Wystarczy zatem umieć liczyć NWD i
kombinację liniową w przypadku, gdy jedna z liczb a i b jest nieparzysta.
W dalszej części założymy zatem, że 2 6 | a. Trójki K(a, b) możemy odejmować. Chcielibyśmy trójkę (r, t, s) móc podzielić przez 2, jeśli 2 | r. Jeśli 2 | s, to z
faktu 3.2 także 2 | t i na podstawie własności (iv) mamy (r/2, t/2, s/2) ∈ K(a, b).
Jeśli 2 6 | s, to 2 | s ± a, bo 2 6 | a. Zatem, aby uczynić s parzystym, zaburzamy je
używając własności (v) i otrzymujemy trójkę (r, t ∓ a, s ± a), którą możemy już
podzielić przez 2. Pytanie jest, czy dodawać, czy odejmować, przy zaburzaniu?
Generalnie nie ma to znaczenia, ale możemy trzymać wartość bezwzględną s jak
najmniejszą, czyli dodawać a, gdy s ≥ 0 i odejmować a, gdy s < 0.
W tablicy 2 otrzymaliśmy kombinację liniową 25 · 245 − 19 · 322 = 7, skąd
25 · 490 − 19 · 644 = 14.
Jeśli chcemy tylko znaleźć takie t, że ts ≡ NWD(a, b) (mod b), to w przypadku rozszerzonego algorytmu Euklidesa nie musimy pamiętać w ogóle wartości
s. Taka optymalizacja nie jest możliwa w przypadku rozszerzonego algorytmu
binarnego.
4
r
245
322
322
322/2 = 161
245 − 161 = 84
84/2 = 42
42
42/2 = 21
161 − 21 = 140
140/2 = 70
70
70/2 = 35
35 − 21 = 14
14
14/2 = 7
21 − 7 = 14
14
14/2 = 7
7−7=0
t
1
0
0 + 322 = 322
322/2 = 161
1 − 161 = −160
−160/2 = −80
−80 + 322 = 242
242/2 = 121
161 − 121 = 40
40/2 = 20
20 − 322 = −302
−302/2 = −151
−151 − 121 = −272
−272 + 322 = 50
50/2 = 25
121 − 25 = 96
96 − 322 = −226
−226/2 = −113
s
0
1
1 − 245 = −244
−244/2 = −122
0 − (−122) = 122
122/2 = 61
61 − 245 = −184
−184/2 = −92
−122 − (−92) = −30
−30/2 = −15
−15 + 245 = 230
230/2 = 115
115 − (−92) = 207
207 − 245 = −38
−38/2 = −19
−92 − (−19) = −73
−73 + 245 = 172
172/2 = 86
Tablica 2: Przebieg rozszerzonego algorytmu binarnego dla 245 i 322.
4
Równania diofantyczne
Przykład 4.1.
12x + 8y = 6
Nie ma rozwiązań, bo NWD(12, 8) = 4 6 | 6.
Przykład 4.2.
12x + 21y = 27
(4.1)
Ma rozwiązania, bo NWD(12, 21) = 3 | 27. Liczymy NWD:
21 = 1 · 12 + 9
12 = 1 · 9 + 3
9=3·3
oraz kombinację liniową:
3 = 12 − 1 · 9 = 12 − (21 − 1 · 12) = 12 · 2 + 21 · (−1),
skąd mamy
12 · 2 + 21 · (−1) = 3,
przemnażające obie strony przez 9 otrzymujemy
12 · 18 + 21 · (−9) = 27.
Odejmując równania (4.1) i (4.2) stronami otrzymujemy
12(x − 18) + 21(y + 9) = 0.
5
(4.2)
Dzielimy przez NWD(12, 21) = 3 i mamy
4(x − 18) + 7(y + 9) = 0.
(4.3)
Wszystkie rozwiązania równania postaci a0 x0 = b0 y 0 , gdzie NWD(a0 , b0 ) = 1
są postaci x0 = b0 t, y 0 = a0 t dla dowolnego całkowitego t. Zatem wszystkie
rozwiązania (4.3) są postaci: x − 18 = 7t, y + 9 = −4t, skąd rozwiązanie ogólne
x = 18 + 7t, y = −9 − 4t.
Metoda znajdowania rozwiązań równań diofantycznych stosuje się także do
np. równań diofantycznych na wielomianach.
Ćwiczenie 4.3. Rozwiązać następujące równania diofantyczne:
27x − 13y = 17
21x + 35y = 63
118x − 96y = 38
5
5.1
Algorytm Euklidesa dla wielomianów
Dzielenie z resztą
Dla każdych dwóch wielomianów a, b ∈ K[X] istnieją wielomiany q, r ∈ K[X]
takie, że
a = qb + r,
deg r < deg b.
Dzielenie to wykonujemy podobnie jak dzielenie pisemne, z tym że podstawą
nie jest 10 tylko X.
Przykład 5.1. Dzielenie wielomianów x4 − x3 + x2 − x + 1 i x2 + x + 1 w Q[X].
4
x
x4
x2
x2
x2
3
−x
x3
−2x3
−2x3
−2x2
2x2
2x2
−2x
−x
2
1
−x
−2x
x
2x
−x
1
2
−1
: x2 + x + 1
skąd x4 − x3 + x2 − x + 1 = (x2 − 2x + 2)(x2 + x + 1) + (−x − 1).
5.2
NWD
Do liczenia NWD używamy algorytmu Euklidesa zupełnie analogicznie jak dla
liczba naturalnych, z tymże używamy dzielenia z resztą dla wielomianów.
Przykład 5.2. Policzmy NWD(a, b), gdzie a = x4 − 4x3 + 6x2 − 4x + 1 = r0 i
b = x3 − x2 + x − 1 = r1 . Mamy:
r2 = 2x2 − 2,
r0 = (x − 3) · r1 + r2 ,
1
1
x−
· r2 + r3 ,
r1 =
2
2
r3 = 2x − 2,
r2 = (x + 1) · r3 .
Zatem NWD(a, b) = 2x − 2, czyli NWD(a, b) = x − 1.
6
5.3
Kombinacja liniowa
Analogicznie jak dla liczb całkowitych możemy znajdować kombinację liniową
au + bv = NWD(a, b) przy czym a, b, u, v są wielomianami.
Przykład 5.3. Niech a i b jak w przykładzie 5.2. Mamy
1
1
1
1
NWD(a, b) = r3 = r1 −
x−
· r2 = r1 −
x−
· r0 − (x − 3) · r1
2
2
2
2
1
1
1
1
· (x − 3) · r1 −
· r0
x−
x−
= 1+
2
2
2
2
1 2
1
1
5
=
x − 2x +
·b−
x−
· a.
2
2
2
2
6
Układ równań liniowych
Przykład 6.1.


 x ≡ 2 (mod 6)
x ≡ 3 (mod 7)


x ≡ 7 (mod 11)
(6.1)
Rozwiązanie budujemy z trzech części:
x = A + B + C,
gdzie


A ≡ 2
A≡0


A≡0
(mod 6)
(mod 7)
(mod 11)


 B ≡ 0 (mod 6)
B ≡ 3 (mod 7)


B ≡ 0 (mod 11)


C ≡ 0
C≡0


C≡7
(mod 6)
(mod 7)
(mod 11)
Przyjmujemy
A = 7 · 11 · a · 2
B = 6 · 11 · b · 3
C = 6 · 7 · c · 7,
gdzie a, b, c dobieramy tak, aby
7 · 11 · a ≡ 1
(mod 6)
6 · 11 · b ≡ 1
(mod 7)
6·7·c≡1
(mod 11).
Liczymy
5·a≡1
(mod 6)
3·b≡1
(mod 7)
9·c≡1
(mod 11)
W pierwszym odwrotnością −1 jest −1, czyli a = 5. W drugim 3 · 2 ≡ −1 zatem
3 · (−2) ≡ 1, skąd b ≡ −2 = 5. W trzecim zastosujemy Euklidesa. 11 = 9 + 2,
9 = 2 · 4 + 1, 1 = 9 − 2 · 4 = 9 − (11 − 9) · 4 = 9 · 5 − 11 · 4, czyli c = 5. Ostatecznie
mamy rozwiązanie (6.1):
x = 7 · 11 · 5 · 2 + 6 · 11 · 5 · 3 + 6 · 7 · 5 · 7 = 3230 ≡ 458
7
(mod 462).
7
Kongruencje liniowe - ćwiczenia
Ćwiczenie 7.1. Udowodnić, że liczb pierwszych postaci 4m+3 jest nieskończenie
wiele.
Rozwiązanie. Załóżmy, że p1 , . . . , pk są wszystkimi liczbami pierwszymi postaci
4m + 3. Weźmy liczbę q = 4p1 · · · pk + 3. Nie jest ona podzielna przez żadną
z liczb p1 , . . . , pk , nie jest też podzielna przez 2, a zatem jest podzielna tylko
przez liczby pierwsze postaci 4m + 1, ale iloczyn takich liczb pierwszych też jest
tej postaci, a q nie jest — sprzeczność.
Ćwiczenie 7.2. Udowodnić, że liczb pierwszych postaci 6m+5 jest nieskończenie
wiele.
Ćwiczenie 7.3. Udowodnić, że istnieje nieskończenie wiele liczb złożonych postaci an xn + · · · + a1 x + a0 , gdzie n ≥ 1 i an 6= 0.
Rozwiązanie.
f (c) | f c + f (c)t dla dowolnego t.
Ćwiczenie 7.4 (Turnieje). Załóżmy, że liczba drużyn n jest parzysta. Turniejem
nazywamy takie rozgrywki, które
• składają się z n − 1 kolejek,
• w każdej kolejce każda drużyna rozgrywa dokładnie jeden mecz,
• każda para drużyn rozegra jeden mecz w turnieju.
W meczu grają dwie drużyny przy czym jedna gra u siebie, a druga gra na
wyjeździe. Skonstruuj taki turniej, aby liczba sytuacji, takich, że jakaś drużyna
w dwóch kolejkach pod rząd gra u siebie, albo w dwóch kolejkach pod rząd gra
na wyjeździe była minimalna.
ax ≡ b (mod n)
(7.1)
Ćwiczenie 7.5. Kiedy kongruencja (7.1) ma rozwiązanie? Ile ma rozwiązań?
Rozwiązanie. Rozwiązanie jest wtw., gdy istnieje y, że ny = ax − b, czyli wtedy,
gdy następujące rozwiązanie diofantyczne ma rozwiązanie:
ax − ny = b,
(7.2)
czyli wtedy, gdy d = NWD(a, n) | b.
Ile jest rozwiązań (7.1) jak d | b? Niech a = a0 d, n = n0 d, b = b0 d. Niech
x0 , y0 będzie rozwiązaniem
a0 x0 − n0 y0 = b0 ,
wtedy wszystkie rozwiązania (7.2) są postaci x = x0 + n0 t, y = y0 + a0 t.
Ile jest różnych liczb postaci x0 + n0 t modulo n? Ponieważ n = n0 d, więc
takich liczb jest d. Zatem (7.1) ma d rozwiązań.
8
8
Reszty kwadratowe
8.1
Reszty kwadratowe
Definicja 8.1. Liczbę a, N W D(a, p) = 1 nazywamy resztą kwadratową modulo
p, jeśli istnieje x, że
x2 ≡ a (mod p).
Ile jest reszt kwadratowych modulo p?
Fakt 8.2. Reszt kwadratowych modulo liczba pierwsza p jest
p−1
2 .
Dowód. Zbiór wszystkich reszt kwadratowych to:
n
p − 1 2 o
,
P = {12 , 22 , . . . , (p − 1)2 } = 12 , 22 , . . . ,
2
p−1
2
2
gdyż dla p−1
2 < i ≤ p − 1 jest i ≡ (p − i) (mod p) ip − i ≤ 2 . Pokażemy,
p−1
że wszystkie liczby w zbiorze P są różne. Niech i, j ∈ 1, . . . , 2
oraz i2 ≡ j 2
(mod p). Wtedy p | i2 − j 2 , czyli p | (i − j)(i + j). Ponieważ 0 < i + j ≤
p−1
p−1
= p − 1, więc p 6 | i + j, zatem p | i − j, czyli i ≡ j (mod p), skąd
2 + 2
i = j.
Wniosek 8.3. Niereszt kwadratowych modulo p jest
8.2
p−1
2 .
Symbol Legendre
Definicja 8.4. Dla nieparzystej liczby pierwszej p symbolem Legendre
nazywamy:


jeśli a jest resztą kwadratową modulo p
1
a
= −1 jeśli a jest nieresztą kwadratową modulo p

p

0
jeśli p | a
Twierdzenie 8.5 (Kryterium Eulera).
p−1
a
≡a 2
p
a
p
(mod p).
p−1
Dowód. Jeśli p | a, to a ≡ 0 (mod p) i wtedy a 2 ≡ 0 (mod p). Zatem niech
NWD(a, p) = 1. Z małego twierdzenia Fermata mamy:
ap−1 ≡ 1
(mod p),
skąd
p | ap−1 − 1,
p| a
p−1
2
p−1
−1 a 2 +1 .
p−1
p−1
Zauważmy, że p nie może jednocześnie dzielić a 2 − 1 i a 2 + 1, gdyż w
przeciwnym razie p | 2. Zatem zachodzi dokładnie jedna z możliwości:
p|a
p−1
2
−1
albo
9
p|a
p−1
2
+ 1,
czyli
a
Jeśli
a
p
p−1
2
≡1
(mod p)
a
albo
p−1
2
≡ −1
(mod p).
= 1, to istnieje b, że a ≡ b2 (mod p), skąd
a
p−1
2
Równanie
x
≡ bp−1 ≡ 1
p−1
2
≡1
(mod p).
(mod p)
ma co najwyżej p−1
2 rozwiązań, a ponieważ spełniają je wszystkie reszty kwadrap−1
towe i jest ich 2 , więc tego równania nie może spełniać niereszta kwadratowa.
p−1
Zatem jeśli ap = −1, to a 2 ≡ −1 (mod p).
p−1
Możemy też udowodnić w inny sposób to, że jeśli ap = −1, to a 2 ≡ −1
(mod p). Zauważmy, że jeśli cd ≡ a (mod p), to c 6= d, bo a jest nieresztą
kwadratową. Zatem mamy
Y
p−1
a 2 =
cd = (p − 1)! ≡ −1 (mod p)
{c,d}∈{1,...,p−1}
cd≡a (mod p)
z twierdzenia Wilsona.
Twierdzenie 8.6 (Własności symbolu Legendre). Dla nieparzystych liczb pierwszych p i q oraz całkowitych a i b zachodzi:
a
b
=
dla a ≡ b (mod p),
(8.1)
p
p
ab
a
b
=
,
(8.2)
p
p
p
2
a
= 1,
(8.3)
p
(
p−1
1
p ≡ 1 (mod 4)
−1
= (−1) 2 =
(8.4)
p
−1 p ≡ 3 (mod 4)
(
p2 −1
1
p ≡ ±1 (mod 8)
2
8
=
(8.5)
= (−1)
p
−1 p ≡ ±3 (mod 8)
(
p−1 q−1
1
p ≡ 1 lub q ≡ 1 (mod 4)
p
q
·
= (−1) 2 2 =
(8.6)
q
p
−1 p ≡ q ≡ 3 (mod 4)
Własność (8.6) nazywana jest prawem wzajemności i może być zapisana jako:
( q
p
p p ≡ 1 lub q ≡ 1 (mod 4)
=
q
− pq
p ≡ q ≡ 3 (mod 4)
10
8.3
Symbol Jacobiego
Definicja 8.7. Dla nieparzystej liczby n > 2 o rozkładzie na czynniki n =
αk
1
pα
1 · · · pk symbolem Jacobiego nazywamy liczbę
αk
a a α1
a
=
···
.
n
p1
pk
Przy takiej definicji, jeśli n jest pierwsze, to na jest symbolem Legendre.
Twierdzenie 8.8 (Własności symbolu Jacobiego). Dla nieparzystych liczb pierwszych n i m oraz całkowitych a i b zachodzi:
a
∈ {0, 1, −1}
(8.7)
n
a
= 0 jeśli NWD(a, n) 6= 1
(8.8)
n
a
b
=
dla a ≡ b (mod n),
(8.9)
n
n
ab
b
a
=
,
(8.10)
n
n
n
2
a
= 1,
(8.11)
n
(
n−1
1
n ≡ 1 (mod 4)
−1
(8.12)
= (−1) 2 =
n
−1 n ≡ 3 (mod 4)
(
n2 −1
1
n ≡ ±1 (mod 8)
2
= (−1) 8 =
(8.13)
n
−1 n ≡ ±3 (mod 8)
n m
m
n
= (−1)
n−1 m−1
2 · 2
(
1
=
−1
n ≡ 1 lub m ≡ 1 (mod 4)
n ≡ m ≡ 3 (mod 4)
(8.14)
Jaki jest związek między symbolem
Jacobiego, a resztami kwadratowymi mo
dulo n? Tzn. co nam mówi na o rozwiązywalności równania x2 ≡ a (mod n)?
Jeśli a jest resztą kwadratową modulo
n, to jest też resztą kwadratową modulo dowolny dzielnik n, więc wtedy na = 1. Zatem jeśli na = −1, to a jest
nieresztą kwadratową modulo n.
Odwrotne implikacje nie są prawdziwe, bo istnieją a i n takie, że na = 1 i
a jest nieresztą kwadratową modulo n. Przykładem jest a = 2 i n = 15. Wtedy
2 (8.13)
= 1,
15
ale wszystkie reszty kwadratowe to:
i
i2
1
1
2
4
3
9
4
1
11
5
10
6
6
7
4
Przykład 8.9. Sprawdzić, czy równanie x2 ≡ 127 (mod 307) ma rozwiązanie.
307 jest pierwsza, więc liczymy symbol Legendre przy użyciu symbolu Jacobiego:
127 (8.9)
21
= −
= −
= −
= −
53
53
53 (8.9)
11 (8.14)
21 (8.9)
−1 (8.12)
(8.14)
= −
= −
= −
= −
= −(−1) = 1.
21
21
11
11
127
307
(8.14)
307
127
(8.9)
53
127
(8.14)
Zatem 127 jest resztą kwadratową i równanie ma rozwiązanie.
Przykład 8.10. Sprawdzić, czy równanie x2 ≡ 217 (mod 313) ma rozwiązanie.
313 jest pierwsza, więc podobnie jak poprzednio liczymy symbol Legendre przy
użyciu symbolu Jacobiego:
217
313
(8.14)
=
313
217
(8.9)
=
96
217
=
25 · 3
217
2
3
=
217
217
217 (8.9) 1
(8.13) i (8.14)
=
= 1.
=
1·
3
3
(8.10) i (8.11)
Zatem znowu dane równanie ma rozwiązanie.
Przykład 8.11. Sprawdzić, czy równanie x2 ≡ 127 (mod 313) ma rozwiązanie.
127
313
(8.14)
=
313
127
(8.9)
=
59
127
(8.14)
=
−
127
59
(8.9)
= −
9
59
(8.11)
=
−1
Tym razem dane równanie nie ma rozwiązania.
8.4
Dowód własności symbolu Legendre
Wszystkie własności oprócz (8.5) i (8.6) wynikają bezpośrednio z kryterium
Eulera. Do udowodnienia tych dwóch własności będzie potrzebny lemat Gaussa.
Twierdzenie 8.12 (Lemat Gaussa).
n
p − 1o
S = 1, 2, . . . ,
,
2
n
p−1 o
aS = {ai | i ∈ S} = 1a, 2a, . . . ,
a ,
2
U = aS \ S,
przy czym wszystkie operacje wykonujemy modulo p. Wtedy
a
= (−1)|U | .
p
Dowód. Niech liczby ri ∈ S i i ∈ {−1, 1} dla i ∈ S będą jednoznacznie wyznaczone przez:
ai ≡ i ri (mod p).
(8.15)
Załóżmy, że ri = rj dla pewnych i, j ∈ S, wtedy
aij rj ≡ aji ri
12
(mod p),
skąd
ij ≡ ji
(mod p),
zatem
i ≡ ±j
(mod p).
p−1
2
i ≡ −j (mod p) jest niemożliwe, bo 1 ≤ i + j ≤
Pozostaje zatem i = j. Pokazaliśmy zatem, że
+ p−1
2 = p − 1, więc p 6 | i + j.
{ri | i ∈ S} = S,
(8.16)
skąd
Y
(8.15)
Y
ai ≡
i∈S
(8.16)
i ri ≡
i∈S
Dzieląc obie strony przez
Y
i∈S
i
Y
i (mod p).
i∈S
Q
i otrzymujemy
Y
Y
a≡
i (mod p).
i∈S
i∈S
i∈S
Z kryterium Eulera mamy
Y
i∈S
a=a
p−1
2
a
≡
p
(mod p),
skąd ostatecznie
Y
a
=
i .
(8.17)
p
i∈S
Q
Teraz wystarczy zauważyć, że w iloczynie i∈S i liczba −1 występuje tyle razy
ile jest elementów U . Wynika to stąd, że jeśli ai ∈ S, to i = 1, a jeśli ai 6∈ S,
to i = −1.
Uwaga 8.13. Twierdzenie 8.12 możemy uogólnić, biorąc za S dowolny zbiór taki,
że dla każdego x 6≡ 0 (mod p) istnieje dokładnie jeden element y ∈ S, że x ≡ ±y
(mod p) co możemy zapisać jako x2 ≡ y 2 (mod p).
Zbadajmy parzystość liczby 2ai
p . Z (8.15) wiemy, że istnieje całkowita
liczba t taka, że
ai = tp + i ri ,
skąd
2ai = 2t · p + i · 2ri .
Zauważmy, że 1 ≤ 2ri ≤ p − 1, zatem
(
2t
2ai
=
p
2t − 1
jeśli i = 1
jeśli i = −1
skąd
(−1)b
2ai
p
c=.
i
Z równości (8.17) mamy zatem
P
2ai
a
= (−1) i∈S b p c
p
13
(8.18)
Załóżmy, że a jest nieparzyste, wtedy a + p będzie parzyste. Korzystając z tego
przekształcamy:
2a
p
=
2a + 2p
p
=
4·
a+p
2
!
p
= (−1)
P
i∈S
a+p
2
=
!
(8.18)
= (−1)
p
b ai
p c+
P
i∈S
i
P
= (−1)
P
i∈S
b (a+p)i
c
p
2
i∈S
p −1
b ai
p c+
8
Wstawiając do tego równania a = 1 otrzymujemy
p2 −1
2
= (−1) 8 ,
p
(8.19)
(8.20)
co dowodzi własności (8.13).
Przejdźmy do dowodu własności (8.14). Na podstawie równości (8.19) i
(8.20) łatwo otrzymujemy następujący lemat.
Lemat 8.14. Dla nieparzystego a zachodzi:
P
ai
a
= (−1) i∈S b p c
p
(8.21)
Dowód. Dzieląc równości (8.19) i (8.20) i korzystając z tego, że
2a
2
a
=
p
p
p
otrzymujemy żądaną równość.
Niech teraz p i q będą nieparzystymi liczbami pierwszymi. Niech R oznacza
zbiór punktów
n
n
p − 1o
q − 1o
R = (x, y) | x ∈ 1, . . . ,
, y ∈ 1, . . . ,
2
2
Podzielimy ten zbiór na dwa mniejsze prostą py = qx (rysunek 8.4). Definiujemy
zbiory R1 i R2 :
R1 = {(x, y) ∈ R | py < qx}
R2 = {(x, y) ∈ R | py > qx}
Zbiory R1 i R2 w sumie dają zbiór R, gdyż równanie py = qx nie ma rozwiązań
q−1
dla 1 ≤ x ≤ p−1
2 , 1 ≤ y ≤ 2 . Zatem
|R1 | + |R2 | = |R|.
(8.22)
Policzymy liczbę elementów zbioru R1 . Ustalmy i = 1, . . . , p−1
2 . Ile jest takich
y, że (i, y) ∈ R1 ? Z definicji R1 wynika, że musi być y < qi
,
p więc takich y jest
j k
qi
dokładnie p . Mamy zatem
p−1
|R1 | =
2 X
qi
i=1
14
p
(8.23)
y
=
py
qi
p
qx
R2
j
R1
pj
q
i
x
Rysunek 1: Zbiory R1 i R2
Analogicznie liczymy liczbę elementów zbioru R2j. Ustalamy
j = 1, . . . , q−1
2 . Z
k
qi
definicji R2 mamy x < pj
,
więc
jest
dokładnie
takich
x,
że
(x,
j)
∈
R2 ,
q
p
skąd
q−1
2 X
pj
|R2 | =
(8.24)
q
j=1
Z drugiej strony mamy oczywistą równość
|R| =
p−1 q−1
·
2
2
(8.25)
Wstawiając (8.23), (8.24) i (8.25) do równania (8.22) otrzymujemy
p−1
q−1
2 X
qi
2 X
pj
i=1
p
+
j=1
q
=
p−1 q−1
·
,
2
2
skąd
P p−1
2
(−1)
i=1
b qip c (−1)
P q−1
2
j=1
q−1
b pjq c = (−1) p−1
2 · 2
Korzystając dwukrotnie z lematu 8.14 ostatecznie otrzymujemy
p−1 q−1
p
q
= (−1) 2 · 2 ,
q
p
co kończy dowód własności (8.14)
8.5
Dowód własności symbolu Jacobiego
W celu udowodnienia własności symbolu Jacobiego zauważmy, że definicję 8.7
można napisać inaczej.
15
Mianowicie jeśli n jest nieparzysta z rozkładem na liczby pierwsze (niekoniecznie różne) n = p1 · · · pk , to
a a a =
···
n
p1
pk
Większość własności wynika wprost z definicji i własności symbolu Legendre.
Jedynie własności (8.12), (8.13) i (8.14) wymagają dowodu. Dowody tych własności sprowadzają się do następującego lematu.
Lemat 8.15. Niech n będzie nieparzysta z rozkładem na niekoniecznie różne
czynniki pierwsze n = p1 · · · pk . Wtedy zachodzi:
k
n − 1 X pi − 1
≡
2
2
i=1
(mod 2)
(8.26)
(mod 2)
(8.27)
k
n2 − 1 X p2i − 1
≡
8
8
i=1
Dowód. Indukcja po k.
1. Dla k = 1 mamy po prostu równości.
2. Niech m = npk+1 , gdzie m = p1 · · · pk . Mamy
1 + 2 n−1
1 + 2 pk+12 −1 − 1
m−1
npk+1 − 1
2
=
=
2
2
2
p
n−1
n−1 pk+1 −1
k+1 −1
2 2 +2 2
+4 2 ·
n − 1 pk+1 − 1
2
=
≡
+
2
2
2
k+1
X
(8.26)
pi − 1
(mod 2)
≡
2
i=1
oraz
2
p2 −1
1 + 8 n 8−1 1 + 8 k+18
−1
n2 p2k+1 − 1
m2 − 1
=
=
8
8
8
2
=
8 n 8−1 + 8
p2k+1 −1
8
2
+ 64 n 8−1 ·
8
p2k+1 −1
8
n2 − 1 p2k+1 − 1
+
8
8
k+1
2
X
(8.27)
pi − 1
≡
(mod 2)
8
i=1
≡
Niech teraz n i m będą nieparzyste o rozkładach na niekoniecznie różne
czynniki pierwsze n = p1 · · · pk i m = q1 · · · ql . Przekształcamy.
−1
n
=
k Y
−1
i=1
pi
=
k
Y
(−1)
pi −1
2
i=1
16
= (−1)
Pk
i=1
pi −1
2
(8.26)
= (−1)
n−1
2
,
co dowodzi własności (8.12).
Y
Y
k k
Pk
p2
2
2
i −1
=
=
(−1) 8 = (−1) i=1
n
pi
i=1
i=1
p2
i −1
8
(8.27)
= (−1)
n2 −1
8
,
co dowodzi własności (8.13).
m n n
m
=
k Y
l Y
pi
qj
i=1 j=1
pi
qj
k Y
l
Y
=
= (−1)
(−1)
pi −1 qj −1
2 · 2
i=1 j=1
Pk pi −1 Pl
i=1
2
j=1
qj −1
2
(8.26)
= (−1)
n−1 m−1
2 · 2
,
co dowodzi własności (8.14).
8.6
Ćwiczenia na reszty kwadratowe
Ćwiczenie 8.16. Rozwiązać równanie
x2 + 1 ≡ 0
(mod p).
(8.28)
Rozwiązanie. Sprawdzamy, czy (8.28) ma rozwiązanie, czyli, czy −1 jest resztą
kwadratową modulo p. Z własności (8.4) wiemy, że
(
1
p = 4m + 1
−1
=
p
−1 p = 4m + 3
Zatem (8.28) ma rozwiązanie tylko wtedy, gdy p = 4m + 1. Z twierdzenia
Wilsona mamy
(p − 1)! ≡ −1 (mod p),
ale
2
(p−1)! = 1·· · ··(2m)·(2m+1)·· · ··(4m) ≡ 1·· · ··(2m)·(−2m)·· · ··(−1) = (2m)!
Zatem rozwiązaniem (8.28) jest x = ±(2m)!.
Ćwiczenie 8.17. Wykazać, że liczb pierwszych postaci 4m + 1 jest nieskończenie
wiele.
Rozwiązanie. Niech p1 , . . . , pk będą wszystkimi liczbami pierwszymi postaci 4m+
1. Niech p będzie dzielnikiem pierwszym liczby (2p1 · · · pk )2 + 1. Oczywiście
p 6= p1 , . . . , pk . Zauważmy, że
(2p1 · · · pk )2 ≡ −1
(mod p),
czyli −1 jest resztą kwadratową modulo p, a zatem p ≡ 1 (mod 4). Zatem p
jest inną liczbą pierwszą postaci 4m + 1 — sprzeczność.
Ćwiczenie 8.18. Wykazać, że liczb pierwszych postaci 6m + 1 jest nieskończenie
wiele.
Wskazówka. x2 + 3 ≡ 0 (mod p) ma rozwiązanie wtw., gdy p = 6m + 1.
17
Ćwiczenie 8.19. Kiedy równanie
x2 + 2 ≡ 0
(mod p).
(8.29)
ma rozwiązanie?
Rozwiązanie. Liczymy
(
1
−2
−1
2
=
=
p
p
p
−1
p ≡ 1, 3
p ≡ 5, 7
(mod 8)
(mod 8)
Zatem (8.29) ma rozwiązanie gdy p ≡ 1, 3 (mod 8).
9
Pseudopierwszość i testy pierwszości
9.1
Pseudopierwszość Eulera
Definicja 9.1. Nieparzystą liczbę n nazywamy liczbą pseudopierwszą Eulera
przy podstawie a, NWD(a, n) = 1, jeśli
a
n−1
a 2 ≡
(mod n).
(9.1)
n
W skrócie będziemy pisać, że n jest pp. Eulera przy podstawie a.
Jeśli n jest liczbą pierwszą, to (9.1) jest spełnione z kryterium Eulera.
Fakt 9.2. Jeśli n jest liczbą złożoną, to wśród liczb z Z∗n jest co najmniej połowa
podstaw, przy których n nie jest pp. Eulera.
Dowód. Dowód przebiega w czterech krokach.
1. Jeśli n jest pp. Eulera przy podstawie a i nie jest pp. Eulera przy podstawie b, to n nie jest pp. Eulera przy podstawie ab:
a n−1
a b ab n−1
n−1 n−1
(ab) 2 = a 2 b 2 ≡
b 2 6≡
=
(mod n)
n
n
n
n
2. Jeśli istnieje podstawa b ∈ Z∗n przy której n nie jest pp. Eulera, to wtedy
podstaw z Z∗n , przy których n nie jest pp. Eulera jest co najmniej tyle ile
podstaw, przy których n jest pp. Eulera. Wystarczy zauważyć, że funkcja
f (a) = ab jest 1–1 w Z∗n , i dla podstawy przy której n jest pp. Eulera daje
podstawę, przy której n jest nie jest pp. Eulera.
W dalszej części udowodnimy, że takie b istnieje.
3. Istnieje liczba pierwsza p, że p2 | n. Wtedy n = p2 t dla pewnego t.
Przyjmujemy b = pt + 1. Mamy NWD(b, n) = 1, bo tn − (pt − 1)b =
tp2 t − (pt − 1)(pt + 1) = 1. Dalej
2 b
pt + 1
pt + 1
pt + 1
=
=
=1·1=1
n
p2 t
p
t
Zastanówmy się dla jakich i jest bi ≡ 1 (mod n), czyli kiedy n | bi − 1.
bi − 1 = (1 + pt)i − 1 = pt 1 + (1 + pt) + · · · + (1 + pt)i−1
18
Zatem p2 t | bi − 1 jeśli p | 1 + (1 + pt) + · · · + (1 + pt)i−1 , ale
1 + (1 + pt) + · · · + (1 + pt)i−1 ≡ 1 + 1 + · · · + 1 ≡ i (mod p)
|
{z
}
i
Mamy zatem, że n | bi − 1, jeśli p | i. Wiemy też, że p 6 |
b
n−1
2
6≡ 1
n−1
2 ,
zatem
(mod n)
4. n rozkłada się na iloczyn różnych liczb pierwszych. Niech n = p1 · · · pk · p.
Niech b0 będzie nieresztą kwadratową modulo p. Z chińskiego twierdzenia
o resztach b bierzemy tak, aby

b ≡ 1 (mod p1 )



 ···

b ≡ 1 (mod pk )



b ≡ b0 (mod p)
skąd
oraz
zatem
b
b
= ··· =
=1
p1
pk
0
b
b
=
= −1,
p
p
b
b
b
b
=
= −1
···
n
p1
pk
p
Z drugiej strony nie może być
b
n−1
2
≡ −1
(mod n),
gdyż w przeciwnym razie było by
b
n−1
2
≡ −1
(mod p1 · · · pk ),
a z definicji b wiemy, że
b
9.2
n−1
2
≡1
(mod p1 · · · pk ).
Test Solovaya–Strassena
Niech n będzie nieparzystą liczbą złożoną. Z faktu 9.2 wiemy, że jeśli wybierzemy losowo a i okaże się, że NWD(a, n) = 1, to wtedy z prawdopodobieństwem
co najmniej 21 , n nie jest pp. przy podstawie a, czyli nie jest pierwsza. Wylosowanie podstawy a takiej, że n jest pp. Eulera przy podstawie a może się zdarzyć
z prawdopodobieństwem co najwyżej 12 . Jeśli powtórzymy losowanie podstawy
k razy i za każdym razem otrzymamy, że n jest pp. Eulera, to prawdopodobieństwo tego zdarzenia wynosi co najwyżej 21k , co oznacza, że n jest pierwsza
z prawdopodobieństwem co najmniej 1 − 21k .
19
9.3
Silna pseudopierwszość
Pojęcie silnej pseudopierwszości wywodzi się z dwóch własności. Z małego twierdzenia Fermata ap−1 ≡ 1 (mod p) oraz z tego, że równanie x2 ≡ 1 (mod p) ma
dwa rozwiązania, mianowicie x = 1 i x = −1.
Niech n będzie nieparzysta oraz a takie, że NWD(a, n) = 1. Wtedy możemy
postępować tak jak na rysunku 2.
r ←n−1
jeśli ar 6≡ 1 (mod n) to NIE
dopóki 2 | r ∧ ar ≡ 1 (mod n) rób r ← r/2
Teraz jeśli jeszcze 2 | r (czyli ar 6≡ 1), to powinno być ar ≡ −1, a jeśli już 2 6 | r,
to powinno być ar ≡ ±1.
jeśli ar 6≡ ±1 (mod n) to TAK wpp NIE
Rysunek 2: Sprawdzanie, czy n jest silnie pp. przy podstawie a
Prowadzi to do następującej definicji.
Definicja 9.3. Niech n będzie liczbą nieparzystą i niech n − 1 = 2s t, gdzie 2 6 | t.
Liczbę n nazywamy silnie pseudopierwszą przy podstawie a, NWD(a, n) = 1,
jeżeli
at ≡ 1
i
(mod n) lub a2 t ≡ −1
(mod n) dla pewnego i = 0, 1, . . . , s − 1.
s
a2
a2
s−1
t
s−2
t
≡1
a2
≡ −1
a2
t
s−1
t
≡1
s−2
a2
≡ −1
t
≡1
a2t ≡ 1
at ≡ −1
at ≡ 1
Rysunek 3: Definicja silnej pseudopierwszości
i
Definicja jest zilustrowana na rysunku 3. Zauważmy, że jeśli a2 t ≡ ±1
j
(mod n), to dla wszystkich i < j ≤ s jest a2 t ≡ 1 (mod n). Sugeruje to
sprawdzanie silnej pp. “od dołu”. Odpowiedni algorytm przedstawiony jest na
rysunku 4.
Fakt 9.4. Jeśli n jest liczbą złożoną, to jest ponad
nie silnie pp.
3
4
podstaw, przy których n
W rzeczywistości jeśli n jest złożona, to tych podstaw jest dużo więcej.
Przykład 9.5. Jeśli n jest liczbą złożoną mniejszą od 1373563, to n nie jest silnie
pp. dla jednej z podstaw 2 lub 3. Korzystając z tego sprawdzimy, czy liczby
36493 i 25769 są pierwsze.
20
x ← at mod n
jeśli ar ≡ ±1 (mod n) to TAK
dla i = 1, . . . , s − 1 rób
{ x 6≡ ±1 }
i
x ← x2 mod n
{ x ≡ a2 t }
jeśli x ≡ 1 (mod n) to NIE
jeśli x ≡ −1 (mod n) to TAK
NIE
Rysunek 4: Sprawdzanie “od dołu”, czy n jest silnie pp. przy podstawie a
Mamy 36493 − 1 = 22 · 9123, liczymy 29123 ≡ 11667, dalej 22·9123 ≡ 116672 ≡
−1, zatem 36493 jest silnie pp. przy podstawie 2. Dalej 39123 ≡ 1, zatem 36493
jest silnie pp. przy podstawie 3, a więc jest pierwsza.
Mamy 25769 − 1 = 23 · 3221, liczymy 23221 ≡ 2665, dalej 22·3221 ≡ 26652 ≡
2
15750, dalej 22 ·3221 ≡ 157502 ≡ 10106, zatem 25769 nie jest silnie pp. przy
podstawie 2, więc jest złożona.
9.4
Zależności między pojęciami pseudopierwszości
Pierwsza oczywista zależność, to: jeśli n jest pp. Eulera przy podstawie a, to
jest pp. przy podstawie a. Przypomnijmy, że n jest pp. przy podstawie a, jeśli
an−1 ≡ 1 (mod n). Druga zależność znaczniej mniej oczywista, której nie będę
dowodził jest taka: jeśli n jest silnie pp. przy podstawie a, to n jest pp. Eulera
przy podstawie a. Udowodnimy za to inną zależność.
Fakt 9.6. Niech n ≡ 3 (mod 4), wtedy n jest silnie pp. przy podstawie a wtedy
i tylko wtedy, gdy n jest pp. Eulera przy podstawie a.
s
Dowód. Mamy s = 1, t = n−1
2 , 2 6 | t i n − 1 = 2 t.
⇐ Z założenia at ≡ na = ±1 (mod n), co z oznacza, że n jest silnie pp. przy
podstawie a.
⇒ Z założenia wiemy, że at ≡ ±1, a ponieważ n ≡ 3 (mod 4), więc −1
= −1,
n
zatem możemy napisać ±1
=
±1
lub
nawet
n
at
n
≡ at
(mod n)
(9.2)
Przekształcamy lewą stronę:
at
n
=
a
n−1
2
n
!
n−3
2
=
a·a
n
!
(8.10)
=
a
n
Wstawiając to do (9.2) i rozpisując t otrzymujemy
a
n−1
≡a 2
(mod n).
n
21
a
n−3
4
n
!2
=
a
n
10
Rzędy
Definicja 10.1. Rząd liczby a modulo n, a ∈ Z∗n (NWD(a, n) = 1) definiujemy
wzorem:
ordn a = min{m ≥ 1 | am ≡ 1 (mod n)}
Używając języka teorii grup ordn a możemy określić inaczej. Biorąc z podstawę grupę multiplikatywną modulo n (Z∗n ) możemy powiedzieć, że rząd a
wynosi tyle co moc grupy generowanej przez a:
ord a = |hai|
Oczywiście podstawą tak naprawdę nie musi być Z∗n , ale dowolna grupa. Czasami mogą być interesujące grupy multiplikatywne GF (pn ). Z twierdzenia Lagrange’a (o mocy podgrupy) otrzymujemy fakt.
Fakt 10.2. Dla a ∈ G mamy
ord a |G|
Wniosek 10.3. Dla a ∈ Z∗n mamy
ordn a | ϕ(n)
Ponadto możemy wskazać parę interesujących własności jeśli element grupy
podniesiony do pewnej potęgi, daje 1.
Fakt 10.4. Niech a ∈ G. Niech ai = aj = 1. Wtedy
aNWD(i,j) = 1
Dowód. Wiemy, że istnieją takie x i y całkowite, że ix + jy = NWD(i, j), skąd
x
y
aNWD(i,j) = aix+jy = (ai ) (aj ) = 1
Wniosek 10.5. Niech a ∈ G, wtedy
am = 1
⇔
ord a | m
Dowód. ⇐ Oczywiste.
⇒ Wiemy, że am = 1 i aord a = 1, więc z faktu 10.4 mamy ad = 1, gdzie
d = NWD(m, ord a). Oczywiście musi być d ≥ ord a, ale z definicji d
mamy d | ord a, więc d = ord a. Ponieważ d | m, więc ord a | m.
Wstawiając m = i − j we wniosku 10.5 otrzymujemy:
Wniosek 10.6. ai = aj
⇔
i ≡ j (mod ord a).
Ponadto mamy też wnioski:
Wniosek 10.7. Dla a ∈ G mamy a|G| = 1.
Wniosek 10.8 (Twierdzenia Eulera). aϕ(n) ≡ 1 (mod n).
22
Przykład 10.9. Jaki jest rząd 3 module 41? Liczymy: 31 = 3, 32 = 9, 33 =
27, 34 = 81 = 82 − 1 ≡ −1, 35 = −3, 36 = −9, 37 = −72, 38 = 1, zatem
ord41 3 = 8.
Ćwiczenie 10.10. Znaleźć ord127 5.
Rozwiązanie. Metoda wyliczania kolejnych potęg okaże się tu bardzo pracochłonna. Będziemy, więc korzystać z wniosku 10.5.
Po pierwsze ord 5 | 127 − 1 = 126 = 2 · 32 · 7, więc ord 5 jest postaci 2α 3β 7γ ,
gdzie α = 0, 1; β = 0, 1, 2; γ = 0, 1.
2
Policzmy np. 53 ·7 ≡ −1, skąd ord 5 6 | 32 · 7. Zatem α 6= 0, czyli α = 1, gdyż
w p.p. ord 5 | 32 · 7.
Teraz liczymy 52·3·7 ≡ 1, skąd ord 5 | 2 · 3 · 7, czyli β ≤ 1. No to liczymy
2·7
5 ≡ 19, skąd ord 5 6 | 2 · 7, czyli β = 1.
Teraz liczymy 52·3 ≡ 4, skąd ord 5 6 | 2 · 3, czyli γ = 1.
Ostatecznie otrzymujemy ord127 5 = 2 · 3 · 7 = 42.
Metodę z przykładu możemy sformalizować.
Fakt 10.11. Jeżeli m ≥ 1 będzie taka, że
1. am = 1, oraz
2. dla każdej liczby pierwszej p | m jest
m
a p 6= 1,
to ord a = m.
Dowód. Ponieważ am = 1, więc ord a | m
m. Jeżeli byłoby ord a < m, to istniała
p = 1, a to jest niemożliwe.
by liczba pierwsza, że ord a | m
,
skąd
a
p
Przy okazji możemy udowodnić prosty test na sprawdzanie, czy liczba jest
pierwsza.
Twierdzenie 10.12. Niech n > 1. Jeśli dla każdego dzielnika pierwszego q
liczby n − 1 istnieje a takie, że
an−1 ≡ 1
(n−1)/q
a
6≡ 1
(mod n),
(10.1)
(mod n),
(10.2)
to n jest pierwsza.
Dowód. Z faktu 10.11 wynika, że ord a = n − 1. Skąd ϕ(n) ≥ n − 1, czyli musi
być ϕ(n) = n − 1, zatem n jest pierwsza.
Wracając do faktu 10.11, jak z niego zrobić algorytm na wyliczanie rzędu
a? Zakładając, że moc grupy potrafimy rozłożyć na czynniki, mamy medotą na
liczenie ord a, przedstawioną w poniższym fakcie.
αk
1
Fakt 10.13. Niech a ∈ G i |G| = pα
1 · · · pk . Niech dla każdego i = 1, . . . , k,
βi ≥ 0 będzie najmniejszą liczbą taką, że
αi−1 βi αi+1
α
α1
···pi−1
·pi ·pi+1 ···pk k
ap1
wtedy
ord a = pβ1 1 · · · pβkk
23
= 1,
Ćwiczenie 10.14. Pokaż, że jeśli p | an − 1, p – pierwsza, to zachodzi jeden z
warunków
(i) p | ad − 1, dla pewnego d < n i d | n,
(ii) p ≡ 1 (mod n).
Ponadto, jeśli p > 2 i n nieparzyste, to warunek (ii) ma postać p ≡ 1 (mod 2n).
Rozwiązanie. Mamy an ≡ 1 (mod p) oraz ap−1 ≡ 1 (mod p). Z faktu 10.4
mamy ad ≡ 1 (mod p), dla d = NWD(n, p − 1). Jeżeli d < n, to zachodzi (i).
Jeżeli d = n, to n | p − 1, czyli (ii). Ponadto, jeżeli p > 2 i n nieparzyste, to
2n | p − 1.
Ćwiczenie 10.15. Niech a > 1 oraz p pierwsza nieparzysta. Pokaż, że dla każdego
nieparzystego dzielnika q liczby ap − 1 jest q | a − 1 albo q jest postaci 2pk + 1.
Ponadto, jeśli q 6 | a − 1, wylicz aq .
Rozwiązanie. Mamy ap ≡ 1 (mod q). ordq a = 1, p. Jeśli ordq a = 1, to q | a − 1.
Niech ordq a = p. Mamy aq−1 ≡ 1 (mod q), zatem p | q − 1. Zatem q = 2pk + 1
dla pewnego k. Liczymy
q−1
a
k
≡ a 2 = apk = (ap ) ≡ 1k = 1 (mod q).
q
Zauważmy, że z powyższego ćwiczenia mamy następujący wniosek o dzielnikach liczb Mersenne’a.
Wniosek 10.16. Dzielnik pierwszy q liczby Mp = 2p − 1 jest postaci 2pk + 1
oraz q ≡ 1, 7 (mod 8).
Ćwiczenie 10.17. Niech a > 1 oraz p pierwsza. Pokaż, że dla każdego nieparzystego dzielnika q liczby ap + 1 jest q | a + 1 albo q jest postaci 2pk + 1. Ponadto,
jeśli q 6 | a + 1, wylicz aq .
Rozwiązanie. Mamy ap ≡ −1 (mod q), czyli a2p ≡ 1 (mod q). ordq a = 1, 2, p, 2p.
Jeśli ordq a 6= 1, p, bo w p.p. ap ≡ 1 (mod q). Zatem ordq a = 2, 2p. Jeśli
ordq a = 2, to q | a2 − 1, ponadto q 6 | a − 1, więc q | a + 1. Niech ordq a = 2p.
Mamy aq−1 ≡ 1 (mod q), zatem 2p | q − 1. Zatem q = 2pk + 1 dla pewnego k.
Liczymy
q
q−1
a
k
≡ a 2 = apk = (ap ) ≡ (−1)k = (−1) 2p (mod q).
q
Pokazaliśmy postać dzielników liczb Mersenne’a, a teraz pokażemy postać
dzielników liczb Fermata.
n
Fakt 10.18. Dzielnik pierwszy q liczby Fermata Fn = 22 + 1 ma postać q =
2n+2 k + 1 dla n ≥ 2.
24
n
Dowód. Jeśli q | 22 + 1, to
n
22 ≡ −1
22
(mod q)
n+1
≡1
(mod q)
Zatem ordq 2 6 | 2n i ordq 2 | 2n+1 , zatem ordq 2 = 2n+1 . Ponadto oczywiście
2q−1 ≡ 1 (mod q), skąd 2n+1 | q − 1,więc wiemy, że q = 2n+1 l + 1 dla pewnego
l. Ponieważ q ≡ 1 (mod 8), więc 2q = 1, skąd
q−1
2
= 1 (mod q)
2 2 ≡
q
n+1 q−1
| 2 , więc dla pewnego k zachodzi q = 2n+2 k +
Zatem ordq 2 | q−1
2 , czyli 2
1.
Z ćwiczenia 10.15 możemy wywnioskować następujący fakt.
Fakt 10.19. Niech p > 2 pierwsza. Liczb pierwszych postaci 2pk + 1 jest
nieskończenie wiele.
Dowód. Załóżmy, że liczby p1 , . . . , pn są wszystkimi liczbami pierwszymi postaci
2pk + 1. Oznaczmy a = p1 · · · pn . Weźmy pod uwagę liczbę ap − 1. Niech
q | ap − 1, q – pierwsza. Z ćwiczenia 10.15 wiemy, że albo q | a − 1, albo q jest
postaci 2pk + 1. To drugie jest niemożliwe, gdyż pi 6 | ap − 1.
Zatem dla dowolnego dzielnika pierwszego q liczby ap − 1 zachodzi a ≡ 1
(mod q). ap − 1 możemy przedstawić jako iloczyn (a − 1)(1 + a + · · · + ap−1 ).
Zastanówmy się jakie są dzielniki pierwsze 1 + a + · · · + ap−1 . Jeśli q | 1 + a +
· · · + ap−1 , to oczywiście a ≡ 1 (mod q), bo q | ap − 1 zatem
1 + a + · · · + ap−1 ≡ 1 + 1 + · · · + 1 = p
|
{z
}
(mod q),
p
zatem q | p, czyli q = p. Zatem jedyny dzielnik pierwszy 1 + a + · · · + ap−1 to p,
więc 1 + a + · · · + ap−1 = ps dla pewnego s. Ponieważ 1 + a + · · · + ap−1 > p,
więc s ≥ 2.
Zatem 1 + a + · · · + ap−1 ≡ 0 (mod p2 ). Z drugiej strony a = 2pk + 1, gdyż
jest iloczynem liczb postaci 2pk + 1, skąd
ai ≡ 1 + 2pki
(mod p2 ),
czyli
p(p − 1)
1 + a + · · · + ap−1 ≡ p + 2pk 1 + · · · + (p − 1) = p + 2pk
≡p
2
(mod p2 ),
a to jest sprzeczność.
W dowodzie korzystaliśmy z tego, że istnieje co najmniej jedna liczba pierwsza postaci 2pk + 1. To jednak wynika z tego, że wszystkie dzielniki pierwsze
liczby 2p − 1 muszą być właśnie tej postaci..
Parę innych faktów na rzędy.
Fakt 10.20. Niech a ∈ G oraz s ≥ 1, wtedy
ord as =
ord a
.
NWD(ord a, s)
25
Dowód. Oznaczmy m = ord a, d = NWD(m, s), m = m0 d i s = s0 d. Wtedy
NWD(m0 , s0 ) = 1. Mamy
m0
(as )
0
0
s0
0
= ads m = ams = (am ) = 1,
skąd
ord as | m0 .
(10.3)
Z drugiej strony mamy
ord as
1 = (as )
s
= as ord a ,
skąd
ord a | s ord as ⇔ m | s ord as ⇔ m0 d | s0 d ord as ⇔ m0 | s0 ord as ,
ale NWD(m0 , s0 ) = 1, więc
m0 | ord as .
s
(10.4)
0
Z (10.3) i (10.4) ostatecznie mamy ord a = m , a to jest teza.
Wniosek 10.21. Niech a ∈ G. Jeżeli s | ord a, s ≥ 1, to
ord as =
ord a
.
s
Fakt 10.22. Niech G będzie grupą przemienną i a, b ∈ G. Jeżeli NWD(ord a, ord b) =
1, to ord ab = ord a ord b.
Dowód. Oznaczmy m = ord a i n = ord b. Zauważmy, że (ab)mn = 1, zatem
ord ab | mn. ord ab będzie postaci m0 n0 , gdzie m0 | m i n0 | n. Liczymy:
n
1 = (ab) n0
ord ab
0
0
= (ab)m n = am n (bn )
m0
0
= am n ,
skąd otrzymujemy, że ord a | m0 n, czyli m | m0 n, a ponieważ NWD(m, n) = 1,
więc m | m0 , czyli m0 = m. Analogicznie otrzymujemy, że n0 = n, zatem ostatecznie ord ab = mn.
Fakt 10.23. W grupie przemiennej G dla dowolnych a, b ∈ G istnieje c ∈ G,
że ord c = NWW(ord a, ord b).
Dowód. Oznaczmy m = ord a i n = ord b. Z wniosku 10.21 wynika, że umiemy
utworzyć elementy, których rząd jest dowolnym dzielnikiem m lub n. Zatem,
aby użyć faktu 10.22, należy znaleźć takie m0 | m i n0 | n, że NWD(m0 , n0 ) = 1 i
m0 n0 = NWW(m, n).
Niech p1 , . . . , pk będą wszystkimi liczbami pierwszymi występującymi w rozkładach m i n, wtedy niech
αk
1
m = pα
1 · · · pk ,
n = pβ1 1 · · · pβkk .
Liczby m0 i n0 budujemy następująco. Dla każdej liczby pierwszej pi porównui
jemy αi z βi . Jeżeli αi > βi , to do rozkładu m0 dodajemy pα
i , a jeżeli αi ≤ βi ,
26
to pβi i dodajemy do rozkładu n0 . Wtedy NWD(m0 , n0 ) = 1, gdyż w rozkładach
m0 i n0 są różne liczby pierwsze oraz
max(α1 ,β1 )
m0 n0 = p1
max(αk ,βk )
· · · pk
= NWW(m, n).
Mając m0 i n0 o rządanych własnościach bierzemy:
0
0
c = am/m bn/n .
0
0
Z wniosku 10.21 wynika, że ord am/m = m0 i ord bn/n = n0 , a z faktu 10.22
wynika, że ord c = m0 n0 = NWW(m, n).
Ćwiczenie 10.24. W dowodzie faktu 10.23 mieliśmy sytuacje, że NWW(m, n)
staraliśmy się rozbić na iloczyn liczb względnie pierwszych tak, aby jedna dzieliła
m, a druga n. W tym celu rozłożyliśmy na czynniki m i n. Jak zrobić to bez
znajdowania rozkładu m i n na czynniki?
Tzn. podać efektywny algorytm, który dla danych m i n znajdzie liczby m0
i n0 , takie, że
NWW(m, n) = m0 n0
11
m0 | m
n0 | n
NWD(m0 , n0 ) = 1.
Pierwiastki pierwotne
Definicja 11.1. Generatorem grupy nazywamy taki element a ∈ G, że ord a =
|G|. W grupach multiplikatywnych Z∗n , taki element nazywamy pierwiastkiem
pierwotnym modulo n.
Przykład 11.2. Znajdziemy pierwiastek pierwotny modulo 127. Wiemy, że
ord127 5 = 42 = 2 · 3 · 7.
Wystarczy znaleźć taką liczbę a, że 32 | ord127 a. Dlaczego? Oznaczmy
ord127 a = m = 32 k. Ponieważ m | 2·32 ·7, więc k | 2·7. Skąd k = NWD(k, 2·7) =
NWD(32 k, 2 · 7) = NWD(m, 2 · 7). Teraz na podstawie faktu 10.20 mamy
ord127 a2·7 =
m
32 k
ord127 a
=
=
= 32 .
NWD(ord127 a, 2 · 7)
NWD(m, 2 · 7)
k
W ten sposób otrzymamy liczbę b = a2·7 , dla której ord127 b = 32 . Z wniosku 10.21 wiemy, że ord127 53 = 2 · 7, zatem z faktu 10.22 mamy ord127 53 b =
ord 53 ord b = 2 · 7 · 32 = 126, czyli 53 b będzie pierwiastkiem pierwotnym modulo
127.
Zatem trzeba znaleźć a, że 32 | ord127 a, czyli innymi słowy takie a, że a2·3·7 6≡
1. Dla a = 2 mamy 27 ≡ 1, źle. Dla a = 3 mamy 32·3·7 ≡ 107 6≡ 1, dobrze.
Zatem pierwiastkiem pierwotnym modulo 127 jest 53 · 32·7 ≡ 83.
αk
1
Fakt 11.3. Niech |G| = pα
1 · · · pk oraz niech a1 , . . . , ak będą elementami G
(niekoniecznie różnymi) takimi, że
|G|
pi
ai
6= 1
dla i = 1, . . . , k,
(11.1)
wtedy element
|G|
α
p1 1
a1
|G|
α
p k
k
· · · ak
jest generatorem grupy G.
27
(11.2)
Dowód. Warunek (11.1) mówi, że ord ai 6 | |G|
pi , ale ponieważ zachodzi również
ord ai | |G|, więc musi być
i
pα
i | ord ai .
Z faktu 10.20 wynika, że
|G|
α
p i
ord ai i
i
= pα
i .
Z kolei z faktu 10.22 wynika, że rząd iloczynu (11.2) jest iloczynem rzędów, czyli
αk
1
wynosi on pα
1 · · · pk = |G|, więc jest generatorem.
Twierdzenie 11.4. Grupa multiplikatywna dowolnego ciała skończonego jest
cykliczna, tzn. istnieje generator.
Dowód. Rozważmy ciało GF (q). Załóżmy, że nie istnieje generator GF (q)∗ .
Niech a będzie elementem o maksymalnym rzędzie.
Pokażemy, że dla dowolnego b ∈ GF (q)∗ jest ord b | m. Niech ord b = n.
Z faktu 10.23 wiemy, że istnieje c, że ord c = NWW(m, n). Ponieważ m jest
maksymalnym rzędem, więc NWW(m, n) ≤ m, skąd NWW(m, n) = m, a zatem
n | m.
Ponieważ dla każdego b ∈ GF (q)∗ jest ord b | m, więc wszystkie elementy
GF (q)∗ spełniają równanie xm − 1 = 0. Ponieważ w GF (q)∗ jest q − 1 różnych
elementów, to z lematu 11.5 wynika, że deg(xm − 1) ≥ q − 1, czyli m ≥ q − 1.
Z drugiej strony rząd elementu nie jest większy niż moc grupy, więc ord a =
q − 1.
Lemat 11.5. Stopień niezerowego wielomianu nad ciałem, który ma n różnych
pierwiastków, wynosi co najmniej n.
Dowód. Indukcja po n.
1. Dla n = 0 każdy niezerowy wielomian ma stopień co najmniej 0.
Pk
2. Załóżmy, że P (x) = i=0 ai xi ma pierwiastki x1 , . . . , xn . Wtedy
P (x) = P (x) − P (xn ) =
k
X
ai (xi − xin )
i=1
= (x − xn )
k
X
ai (xi−1 + xi−2 xn + · · · + xi−1
n ),
i=1
zatem istnieje wielomian Q(x) taki, że P (x) = (x − xn )Q(x). Zauważmy,
że x1 , . . . , xn−1 są pierwiastkami Q(x). Otóż dla i = 1, . . . , n−1 wiemy, że
P (xi ) = 0, zatem (xi − xn )Q(xi ) = 0, ponieważ xi − xn 6= 0, więc dzieląc
obie strony przez xi − xn (korzystamy, że wielomian jest nad ciałem)
otrzymujemy, że Q(xi ) = 0. Z założenia indukcyjnego deg Q(x) ≥ n − 1,
skąd deg P (x) = deg(x − xn )Q(x) ≥ n.
Ćwiczenie 11.6. Znaleźć pierwiastek pierwotny modulo liczba pierwsza postaci
2N + 1.
28
Rozwiązanie. Oznaczmy p = 2N + 1. Szukamy g takiego, że ord2N +1 g = 2N .
czyli musi być
N
g2 ≡ 1
N −1
(mod p) i g 2
6≡ 1
(mod p),
skąd wynika, że musi być
g
2N −1
≡ −1
(mod p) ⇔
g
2N + 1
= −1.
Dla N ≥ 2 z prawa wzajemności dostajemy
N
g
2 +1
=
.
2N + 1
g
Zatem wystarczy na przykład znaleźć g, że 2N ≡ −2 (mod g) i g ≡ 3 (mod 4).
Na przykład weźmy g ≡ 3.
Wtedy 2N ≡ 1, 2 (mod 3), ale nie może być 2N ≡ 2 (mod 3), bo wtedy
N
2 + 1 nie była by pierwsza, a zatem 2N ≡ 1 (mod 3), czyli 2N + 1 ≡ −1
(mod 3), więc
3
= −1.
2N + 1
Co można powiedzieć o N , jeżeli wiemy, że 2N + 1 jest pierwsza? Skorzystajmy z wzroru:
ak + bk = (a + b)(ak−1 b0 − ak−1 b + ak−2 b2 − . . . + a0 bk−1 ),
który zachodzi dla k nieparzystego. Wynika z niego, że jeśli N da się przedstawić
w postaci kt, gdzie k jest nieparzyte, to wtedy 2N + 1 ma dzielnik 2t + 1, bo
k
2N + 1 = 2kt + 1 = (2t ) + 1k = (2t + 1)(. . .).
Zatem, aby 2N + 1 pierwsza, to N nie może mieć nieparzystych dzielników, a
zatem musi być postaci N = 2n .
Z powyższego ćwiczenia otrzymujemy następujący wniosek.
n
Wniosek 11.7 (Test Pepina). Liczba Fermata Fn = 22 + 1 dla n > 1 jest
pierwsza wtedy i tylko wtedy, gdy
3
Fn −1
2
(2n −1)
= 32
≡ −1
(mod Fn ).
(11.3)
Dokładniej z ćwiczenia 11.6 wynika implikacja w jedną stronę. Mianowicie,
jeśli Fn jest pierwsza, to musi zachodzić (11.3). Implikacja w drugą stronę
wynika z twierdzenia 10.12.
Ćwiczenie 11.8. Pierwiastkiem
( pierwotnym modulo liczba pierwsza postaci 2p+
2
p ≡ 1 (mod 4)
1, gdzie p jest pierwsza, jest
.
−2 p ≡ 3 (mod 4)
29
Rozwiązanie. Kiedy ord2p+1 g = 2p? Wtedy, gdy g 2 6≡ 1 (mod 2p + 1) i g p 6≡ 1
(mod 2p + 1). Druga kongruencja oznacza, że
g
g p ≡ −1 (mod 2p + 1) ⇔
= −1
2p + 1
Wystarczy sprawdzić, że ta równość zachodzi w obu przypadkach.
Ćwiczenie 11.9. Znaleźć wszystkie liczby pierwsze postaci 2n p + 1 dla n ≥ 1 i
n−1
p>
32
2n
, modulo które 3 nie jest pierwiastkiem pierwotnym.
Rozwiązanie. Będziemy badać kiedy 3 jest p.p. modulo 2n p + 1. Trzeba sprawdzić, że
n
32 6≡ 1
(mod 2n p + 1)
n
Jeśli było by 32 ≡ 1, to 32
n−1
n−1
i 32
p
6≡ 1
(mod 2n p + 1).
≡ ±1, a to jest niemożliwe, gdyż
n−1
1<3
2n−1
32
=
2n
· 2n < 2n p.
n−1
Druga kongruencja do sprawdzenia, to 32 p ≡ −1 (mod 2n p + 1), czyli trzeba
3
pokazać, że 2n p+1
= −1. Mamy z prawa wzajemności
3
2n p + 1
=
2n p + 1
3
≡ 2n p + 1
(mod 3).
W przypadku, gdy p = 3 otrzymamy, że n < 3. Dla n = 2 otrzymamy, że
3 wyjątkowo nie jest pierwiastkiem pierwotnym modulo 13 = 22 · 3 + 1, bo
33 ≡ 1 (mod 13). Dla p 6= 3 mamy, że 2n p ≡ 1, 2 (mod 3), ale nie może być
2n p ≡ 2 (mod 3), bo nie była by wtedy pierwsza, zatem 2n p ≡ 1 (mod 3), czyli
2n p + 1 ≡ −1 (mod 3).
Zajmijmy się pierwiastkiami pierwotnymi modulo pα .
Przykład 11.10. Znajdźmy pierwiastek pierwotny modulo 25. Niech tym szukanym pp. będzie g. Zauważmy, że g będzie także pp. modulo 5, gdyż w
przeciwnym razie, jeśli g nie byłoby pp. modulo 5, to g nie jest wstanie wygenrować wszystkich wartości modulo 5, a zatem nie jest też w stanie wygenerować
wszystkich wartości modulo 25. Wnioskujemy stąd, że g = ±2 + 5t dla pewnego
t, gdyż ±2 są wszystkimi pp. modulo 5.
Poszukajmy g wśród liczb postaci 2 + 5t. Aby g było pierwiastkiem pierwotnym, to wystarczy, aby zachodziło:
g 20/2 6≡ 1
g 20/5 6≡ 1
(mod 25)
(mod 25).
Pierwsza nierówność da się wywnioskować z tego, że g jest pp. modulo 5. Otóż,
gdyby g 10 ≡ 1 (mod 25), to g 10 ≡ 1 (mod 5), skąd g 2 ≡ 1 (mod 5), a to jest
niemożliwe, bo g jest pp. modulo 5. Drugą nierówność trzeba spełnić.
(2 + 5t)4 ≡ 24 + 4 · 23 · 5t ≡ 16 + 10t (mod 25),
więc, aby g 4 6≡ 1 (mod 25), wystarczy, że weźmiemy t takie, że 16 + 10t 6≡ 1
(mod 25), czyli np. t = 0. Zatem pp. modulo 25 jest 2.
30
Powstaje pytanie, czy zawsze wystarczy brać t = 0. Niestety nie. Nawet
jeśli założym, że dla dla danego p znajdziemy najmniejszy możliwy generator g
modulo p, to może się zdarzyć tak, że g p−1 ≡ 1 (mod p2 ). Najmniejszym takim
p jest p = 40487. Wtedy najmniejszy generator, to g = 5 oraz mamy
(g + pt)p−1 ≡ 1 + 24292pt
(mod p2 ).
Fakt 11.11. Jeżeli g jest p.p. modulo p > 2, to istnieje t, że h = g + tp jest
p.p. modulo p2 . Ponadto to h jest także p.p. modulo pα dla dowolnego α ≥ 1.
Lemat 11.12. Jeżeli a ≡ b (mod pα−1 ), to ap ≡ bp (mod pα ), dla α ≥ 2.
Dowód. Z założenia istnieje t, że a = b + tpα−1 . Mamy
ap = b + tpα−1
p
= bp +
p X
p
i
i=1
bp−i ti pi(α−1) .
Wystarczy pokazać, że
pα |
p p−i i i(α−1)
b tp
i
dla i = 1, . . . , p.
Rozpatrzmy dwa przypadki.
1. 1 ≤ i < p. Wtedy p |
1) ≥ α.
p
i
, zatem p1+i(α−1) |
p
i
bp−i ti pi(α−1) , ale 1 + i(α −
2. i = p. Wtedy i(α − 1) ≥ 2(α − 1) ≥ α.
Lemat 11.13.
(1 + tp)p
α−2
≡ 1 + tpα−1
(mod pα )
dla α ≥ 2, p > 2.
Dowód. Indukcja po α. Dla α = 2 mamy oczywistą równość. Dla α = 3 mamy
(1 + tp)p ≡ 1 + ptp + p
p−1 2 2
t p ≡ 1 + tp2
2
(mod pα ).
Niech α ≥ 4. Z założenia indukcyjnego mamy
(1 + tp)p
α−3
≡ 1 + tpα−2
(mod pα−1 ),
zatem z lematu 11.12 mamy
(1 + tp)p
α−2
≡ 1 + tpα−2
p
(mod pα ).
Teraz liczymy
1 + tpα−2
p
≡ 1 + ptpα−2 + p2(α−2) C
(mod pα ).
Wystarczy sprawdzić, że 2(α − 2) ≥ α dla α ≥ 4, a otrzymamy żądaną równość.
Teraz możemy przejść do dowodu faktu 11.11.
31
Dowód faktu 11.11. Będziemy wyznaczać t. Zauważmy, że jeśli hn ≡ 1 (mod pα ),
to wtedy hn ≡ 1 (mod p), czyli g n ≡ 1 (mod p), a to oznacza, że p − 1 | n. Wynika zatem, że p − 1 | ordpα h, więc aby pokazać, że h jest p.p. modulo pα
wystarczy stwierdzić, że pα−1 | ordpα h, czyli, że pα−2 6 | ordpα h, a co za tym
idzie wystarczy stwierdzić, że
h(p−1)p
α−2
6≡ 1
(mod pα ).
(11.4)
Znajdźmy wpierw takie t, że h = g + tp będzie spełniało (11.4) dla α = 2. Z
tego, że g p−1 ≡ 1 (mod p) wiemy, że istnieje s takie, że g p−1 = 1 + sp. Liczymy
h(p−1)p
α−2
= (g + tp)(p−1) ≡ g p−1 + (p − 1)g p−2 tp ≡ 1 + sp + (p − 1)g p−2 tp =
1 + s + (p − 1)g p−2 t p (mod p2 ).
Zatem, aby zachodziło (11.4), musi być
s + (p − 1)g p−2 t 6≡ 0
(mod p).
Przekształcamy
s − g p−2 t 6≡ 0
g
p−2
(mod p)
t 6≡ s (mod p)
t 6≡ gs (mod p)
(11.5)
Wystarczy teraz znaleźć takie t, aby było spełnione (11.5). Kongruencja (11.5)
ma aż p − 1 rozwiązań modulo p. Zatem pokazaliśmy, że istnieje takie t, że
h = 1 + tp jest p.p. modulo p2 . Mamy też takie u 6≡ 0 (mod p), że
hp−1 ≡ 1 + up (mod p2 ).
(11.6)
Z lematu 11.13 otrzymujemy
h(p−1)p
α−2
(11.6)
≡ (1 + up)p
α−2
≡ 1 + upα−1 6≡ 1
(mod pα ),
co oznacza, że zachodzi (11.4), czyli, że h jest pierwiastkiem pierwotnym modulo
pα .
Wniosek 11.14. Jeżeli g jest p.p. modulo pα , to nieparzysta z liczb g, g + pα
jest p.p. modulo 2pα .
Dowód. Zauważmy, że jeżeli an ≡ 1 (mod 2pα ), to an ≡ 1 (mod pα ). Innymi
słowy jeżeli an 6≡ 1 (mod pα ), to an 6≡ 1 (mod 2pα ), a ponieważ |Z∗pα | = |Z∗2pα |,
więc wystarczy znaleźć takie a, że a ≡ g (mod pα ) i a ∈ Z∗2pα . Takie a, to
nieparzysta z liczb g, g + pα .
12
Indeksy
Definicja 12.1. W grupie cyklicznej G przy zadanym generatorze g indeksem
elementu a ∈ G nazywamy taki wykładnik e ∈ Z|G| , że g e = a i oznaczamy go
przez indg a lub po prostu ind a, gdy wiemy o jaki generator chodzi.
32
Fakt 12.2.
ind ab = ind a + ind b
Fakt 12.3. Niech G będzie grupą cykliczną o mocy n i niech a ∈ G. Zachodzi:
ord a =
n
NWD(ind a, n)
Dowód. Niech g będzie generatorem G i niech e = ind a, czyli a = g e . Szukamy
najmniejszego m ≥ 1 takiego, że aem = 1, czyli takiego, że em ≡ 0 (mod n) ⇔
n | em.
Niech d = NWD(e, n). Oznaczając e = de0 i n = dn0 otrzymujemy n0 | e0 m.
Ponieważ NWD(e0 , n0 ) = 1, więc musi być n0 | m. Najmniejsze takie m, że n0 | m
to po prostu n0 . Zatem:
ord a = m = n0 =
n
n
=
.
d
NWD(e, n)
Fakt 12.4. Rozpatrzmy następujące równanie w grupie cyklicznej G o mocy n:
xe = a,
(12.1)
gdzie a ∈ G. Oznaczmy d = NWD(e, n).
(i) (12.1) ma rozwiązanie wtedy i tylko wtedy, gdy d | ind a. Ponadto jeśli
(12.1) ma rozwiązanie, to ma ich dokładnie d.
(ii) Ilość reszt stopnia e w grupie G wynosi
Dowód.
n
d.
(i) Równanie (12.1) równoznaczne jest kongruencji:
e ind x ≡ ind a
(mod n).
Niewiadomą jest teraz ind x ∈ Zn . Na podstawie ćwiczenia 7.5 wiemy, że ta
kongruencja ma rozwiązanie wtedy i tylko wtedy, gdy d = NWD(e, n) | ind a.
Ponadto jeśli rozwiązanie istnieje to jest ich d.
(ii) Widzimy, że a jest resztą stopnia e wtw., gdy d | ind a. Zatem ilość reszt
stopnia e jest równa ilości liczb z Zn podzielnych przez d, a takich liczb
jest nd , gdyż d | n.
Wniosek 12.5. Niech a ∈ G, G – grupa cykliczna, wtedy a jest resztą stopnia
e wtedy i tylko wtedy, gdy
n
a d = 1,
gdzie n = |G| i d = NWD(n, e).
Dowód. Z faktu 12.4 wynika, że a jest resztą stopnia e ⇔ d | ind a ⇔ n | nd ind a ⇔
n
d ind a ≡ 0 (mod n), a to jest równoznaczne z tym, że
n
a d = 1.
33
Wniosek 12.6 (Uogólnione kryterium Eulera). W grupie cyklicznej Z∗n , a ∈ Z∗n
jest resztą stopnia e wtedy i tylko wtedy, gdy
ϕ(n)
a NWD(ϕ(n),e) ≡ 1
(mod n)
Przykład 12.7. Rozwiązujemy
x8 ≡ 23
(mod 41).
Za generator modulo 41 bierzemy 6. NWD(8, 40) = 8, ind6 23 = 36, 8 6 | 36,
zatem nie ma rozwiązań. Reszt rzędu 8 modulo 41 jest 40
8 = 5.
Rozwiązujemy teraz
x12 ≡ 37 (mod 41).
NWD(12, 40) = 4, ind6 37 = 32, 4 | 32, zatem są 4 rozwiązania. Należy rozwiązać
kongruencję
12 ind6 x ≡ 32 (mod 40).
Sprowadzamy ją do 3 ind x ≡ 8 (mod 10), skąd ind x ≡ 6 (mod 10), czyli
ind x ≡ 6, 16, 26, 36 (mod 40). Wyliczając odpowiednie potęgowania otrzymujemy rozwiązania x ≡ 39, 12, 2, 23 (mod 41). Reszt rzędu 12 modulo 41 jest
40
4 = 10.
13
Liczenie pierwiastków
W tej sekcji zajmiemy się rozwiązywaniem równania
xe = a
(13.1)
w grupie cyklicznej G o mocy n. Oznaczmy d = NWD(e, n).
Z faktu 12.4 wiemy, że (13.1) ma rozwiązanie wtw., gdy d | n. Załóżmy więc,
że d | n. Wtedy wiemy, ze (13.1) ma d rozwiązań.
13.1
Pierwiastki z jedności (a = 1)
W przypadku, gdy xe = 1, to trzeba znaleźć wszystkie takie x, że ord x | e.
Tak naprawdę wystarczy znaleźć takie g, że ord g = e, bo wtedy g i są różnymi
elementami dla i = 0, . . . , e − 1 i ord g i | e. W ten sposób możemy znaleźć
wszystkie pierwiastki z jedności.
13.2
Przypadek d = 1
W tym przypadku wiemy, że istnieje takie α, że αe ≡ 1 (mod n). Wtedy
jedynym rozwiązaniem jest
x = aα ,
gdyż
xe = aαe = a1 = a.
34
13.3
Przypadek d = e = p, gdzie p jest pierwsza
Niech n = ps t, gdzie NWD(p, t) = 1 i s ≥ 1. Załóżmy, że równanie (13.1) ma
rozwiązanie, więc z wniosku 12.5 wynika, że jest:
ap
s−1
t
= 1.
(13.2)
Ponadto wiemy, że jest p rozwiązań. Wystarczy, ze znajdziemy jedno, gdyż
pozostałe można otrzymać przez pomnożenie przez pierwiastki stopnia p z jedności.
Zobaczmy co by było, gdyby at = 1. Wtedy dla dowolnego α byłoby a1+αt =
a. Zatem wystarczyło by dobrać tak α, aby p | 1+αt. To jest oczywiście możliwe,
gdyż NWD(p, t) = 1. Dla α, β takich, że βp = 1 + αt rozwiązaniem jest aβ .
Niestety nie musi zachodzić wcale at = 1. Zauważmy jednak, że równanie (13.1)
możemy zaburzyć mnożąc obie strony przez bp :
(xb)p = abp ,
więc wystarczyło by rozwiązać równanie (x0 )p = a0 , gdzie a0 = abp i następnie
wziąć x = x0 b−1 . Zatem należy tak dobrać b, aby (a0 )t = 1.
Będziemy konstruować tak ciąg a1 , . . . , as , że dla i = 1, . . . , s zachodzi:
api
s−i
t
=1
(13.3)
Z równania (13.2) widzimy, że a1 = a. Ponadto chcemy, żeby ai było postaci
abp . Zatem chcemy skonstruować także ciąg b1 , . . . , bs taki, że
ai = abpi .
(13.4)
Dla i = 1 możemy przyjąć bi = 1. Teraz spróbujmy skonstruować bi , a co za
tym idzie ai dla i ≥ 2, przy założeniu, że mamy już ai−1 i bi−1 spełniające
własności (13.3) i (13.4). Wiemy, że
ps−(i−1) t
(abpi−1 )
skąd
ps−i t
(abpi−1 )
a zatem liczba
p
= 1,
= 1,
ps−i t
ε = (abpi−1 )
jest pierwiastkiem z jedności stopnia p. Gdyby teraz udało nam się przedstawić
ε w postaci:
s−i+1
t
ε = cp
,
to wystarczyło by przyjąć bi = bi−1 c−1 , gdyż wtedy
ps−i t
(abpi )
ps−i t
= (abpi−1 c−p )
ps−i t −ps−i+1 t
= (abpi−1 )
c
= (abpi−1 )
ps−i t −1
ε
=1
Jak znaleźć takie c? Wystarczy znaleźć takie h, aby ps | ord h, bo wtedy
ord hp
s−1
t
=
ord h
= p,
NWD(ps−1 t, ord h)
35
s−1
czyli hjp
t
dla j = 0, . . . , p − 1 są wszystkimi pierwiastkami z jedności. Zatem
s−1
ε = hjp
t
dla pewnego j = 0, . . . , s − 1.
Wystarczy znaleźć to j i możemy wtedy przyjąć
i−2
c = hjp
.
W celu znalezienia takiego h, aby ps | ord h, wystarczy wybrać je tak, aby
hp
s−1
t
6= 1.
Podsumowując powyższe rozumowanie otrzymujemy algorytm na szukanie
pierwiastka stopnia p przedstawiony na rysunku 5.
s−1
znajdź h takie, że hp t 6= 1
s−1
ω ← hp t
b1 ← 1
dla i = 2, . . . , s rób
ps−i t
ε ← (abi−1 p )
znajdź j = 0, . . . , p − 1 takie, że ε = ω j
i−2
bi ← bi−1 h−jp
as ← abps
znajdź β takie, że βp ≡ 1 (mod t)
x0 ← aβs b−1
s
i–te rozwiązanie, dla i = 0, . . . , p − 1, to x0 ω i
Rysunek 5: Algorytm Tonneliego na wyliczanie
√
p
a
Przykład 13.1.
x5 ≡ 207
(mod 625 = 54 )
mamy a = 207, e = 5, ϕ(n) = 500 = 53 · 4, s = 3, t = 4
bierzemy h = 2, bo 2100 ≡ 376 (mod 625)
ω ← 376
b1 ← 1
i=2:
ε ← (207 · 15 )20 ≡ 251
szukamy j takie, że 376j ≡ 251:
3762 ≡ 126, 3763 ≡ 501, 3764 ≡ 251, zatem j = 4
b2 ← 1 · 2−4 ≡ 586
i=3:
ε ← (207 · 5865 )4 ≡ 1
szukamy j takie, że 376j ≡ 1, czyli j = 0
b3 ← 586 · 2−0·5 ≡ 586
a5 ← 207 · 5865 ≡ 182
rozwiązujemy 5β ≡ 1 (mod 4), czyli β = 1
x0 ← 1821 · 586−1 ≡ 412
x1 = 412·376 ≡ 537, x2 = 537·376 ≡ 37, x3 = 37·376 ≡ 162, x4 = 162·376 ≡ 287
36
14
Funkcje multiplikatywne
Definicja 14.1. Funkcję f z liczb całkowitych dodatnich nazywamy multiplikatywną, jeśli dla NWD(m, n) = 1 zachodzi
f (mn) = f (m)f (n).
(14.1)
Parę prostych faktów.
Fakt 14.2. f (1) = 1 o ile istnieje a takie, że f (a) 6= 0.
Dowód. Jeżeli f (a) 6= 0, to f (a · 1) = f (a)f (1), skąd f (1) = 1.
Fakt 14.3. Iloczyn funkcji multiplikatywnych jest funkcją multiplikatywną.
Bardziej skomplikowaną konstrukcja jest za pomocą sumy. Mamy następujące
twierdzenie.
Twierdzenie 14.4. Załóżmy, że zachodzi tożsamość dwóch funkcji f i g:
X
g(n) =
f (d),
(14.2)
d|n
wtedy f jest multiplikatywna wtedy i tylko wtedy, gdy g jest multiplikatywna.
Dowód.
⇒. Zakładamy, że f jest multiplikatywna. Dla NWD(m, n) = 1 mamy:
X
X
X
g(mn) =
f (d) =
f (d1 d2 ) =
f (d1 )f (d2 )
d | mn
d1 | m
d2 | n
X
=
d1 | m
d2 | n
f (d1 )
d1 | m
X
f (d2 ) = g(m)g(n).
d2 | n
⇐. Zakładamy, że g jest multiplikatywna. Pokażemy, że f (mn) = f (m)f (n)
dla NWD(m, n) = 1 indukcją po iloczynie mn.
1. mn = 1, wtedy m = n = 1 i f (1 · 1) = f (1) ∗ f (1), bo albo f (1) = 0,
albo f (1) = 1.
2. mn > 1. Zakładamy, że dla d1 d2 < mn zachodzi f (d1 d2 ) = f (d1 )f (d2 ).
Z jednej strony mamy
X
X
g(mn) =
f (d) =
f (d1 d2 ),
d | mn
d1 | m
d2 | n
a z drugiej
g(m)g(n) =
X
f (d1 )
d1 | m
X
d2 | n
37
f (d2 ) =
X
d1 | m
d2 | n
f (d1 )f (d2 ).
Ponieważ g(mn) = g(m)g(n) mamy więc równość
X
X
f (d1 d2 ) =
f (d1 )f (d2 ).
d1 | m
d2 | n
(14.3)
d1 | m
d2 | n
Z założenia indukcyjnego wiemy, że f (d1 d2 ) = f (d1 )f (d2 ) dla d1 d2 <
mn zatem, aby równość (14.3) była spełniona musi być także f (d1 d2 ) =
f (d1 )f (d2 ) dla d1 d2 = mn, czyli dla d1 = m i d2 = n, co kończy dowód indukcyjny.
Wniosek 14.5. Następujące funkcje są multiplikatywne:
• liczba dzielników n
τ (n) =
X
1,
d|n
• suma dzielników n
σ(n) =
X
d.
d|n
14.1
Funkcja Möbiusa
Funkcję Möbiusa oznaczamy przez µ. Jest kilka równoważnych definicji.
Twierdzenie 14.6. Następujące definicje są równoważne:
(i) Wzór przy znanym rozkładzie.
(
0
µ(n) =
(−1)k
jeżeli p2 | n
jeżeli n = p1 · · · pk
(14.4)
(ii) Równanie rekurencyjne.
(
0
µ(d) = [n = 1] =
1
d|n
X
(iii) Definicja multiplikatywna.


1
α
µ(p ) = −1


0
dla n > 1
dla n = 1
dla α = 0
dla α = 1
dla α ≥ 2
µ(mn) = µ(m)µ(n)
dla NWD(m, n) = 1
(14.5)
(14.6)
(14.7)
Dowód. W (iii) funkcja µ jest zdefiniowana jednoznacznie. Równość (14.7) oznacza, że funkcja µ jest multiplikatywna, w związku z tym, aby określić wartości
funkcji dla dowolnej liczby naturalnej, wystarczy podać jej wartość dla pα , gdzie
p jest liczbą pierwszą. Równość (14.7) to określa.
Pokażemy, że każda z definicji (i) i (ii) spełniają własności definicji (iii), czyli
są określone w ten sam sposób dla dowolnej liczby naturalnej.
38
• Załóżmy, że funkcja µ dana jest równością (i). Wtedy (14.6) jest w oczywisty sposób spełnione. Pozostaje pokazać multiplikatywność.
Jeżeli p2 | m lub p2 | n, to p2 | mn. Zatem wtedy µ(mn) = µ(m)µ(n) = 0.
Załóżmy, że m i n są iloczynem różnych liczb pierwszych: m = p1 · . . . · pk
i n = q1 ·. . .·ql . Wtedy µ(mn) = (−1)k+l , a µ(m) = (−1)k i µ(n) = (−1)l ,
zatem µ(mn) = µ(m)µ(n).
• Załóżmy, że µ spełnia własność (ii). Wtedy multiplikatywność wynika z
twierdzenia 14.4. Pozostaje pokazać równość (14.6).
– α = 0, wtedy µ(p0 ) = 1.
– α = 1, z µ(p0 ) + µ(p1 ) = 0 mamy µ(p1 ) = −1.
– α ≥ 2, wtedy korzystamy z dwóch równości:
0 = µ(p0 ) + . . . + µ(pα−1 ),
0 = µ(p0 ) + . . . + µ(pα−1 ) + µ(pα ),
skąd µ(pα ) = 0.
14.2
Wzór na odwracanie
Załóżmy, że
g(n) =
X
f (d),
(14.8)
d|n
gdzie f i g są dowolnymi funkcjami określonymi dla liczb naturalnych. Chcemy
teraz przedstawić f za pomocą g, tzn. chcemy taką równość, że z jednej strony
występuje f (n), a z drugiej strony odwołujemy się tylko do g(·). Równość (14.8)
możemy przepisać jako:
X
f (n) = g(n) −
f (d)
d|n
d<n
Jest to rekurencja na f (n) z odwołaniem do g(·) i f (x) dla x < n. Rozwijając
tą rekurencję jesteśmy w stanie zlikwidować wszystkie odwołania f (·). Zamiast
tego pojawią się odwołania do g(x), gdzie x będzie dzielnikiem n, skąd wnioskujemy, że formuła będzie miała postać:
X
f (n) =
c(d, n)g(d),
(14.9)
d|n
gdzie c(d, n) jest pewną funkcją zależną od d i n oznaczającą krotność g(d).
Wstawiając tą równość do (14.8) otrzymamy:
XX
X
g(n) =
c(d0 , d)g(d0 ) =
c(d0 , d)g(d0 ).
d | n d0 | d
d|n
d0 | d
39
Sumujemy po dwóch zmiennych d i d0 będącymi dzielnikami n, zatem będą one
postaci ne i en0 , gdzie e i e0 są również dzielnikami n. Wtedy własność d0 | d
przeniesie się jako e | e0 :
X n n n X X n n n g(n) =
c 0,
g 0 =
c 0,
g 0
e e
e
e e
e
0
0
0
e |n
e |n
e | e0
e|e
Przyrównując współczynniki przy g(n/e0 ) po obu stronach otrzymamy równość:
X n n
c 0,
= [e0 = 1].
(14.10)
e
e
0
e|e
Równość (14.10) przypomina własność (ii) funkcji Möbiusa. Istotnie, wystarczy
przyjąć
n n
c 0,
= µ(e0 ).
(14.11)
e e
Wstawiając to po przekształceniu do (14.9) otrzymamy
(14.9)
f (n) =
X
c(d, n)g(d) =
d|n
n
X n n (14.11) X
c ,n g
=
µ(d)g
,
d
d
d
d|n
d|n
zatem otrzymujemy równość
f (n) =
X
µ(d)g
d|n
n
d
.
(14.12)
Twierdzenie 14.7. Równości (14.8) i (14.12) są równoważne.
14.3
Funkcja ϕ
Aby zdefiniować funkcję dla liczb naturalnych, wystarczy pokazać, że jest ona
multiplikatywna i podać jej wartości dla pα . W ten sposób zdefiniowaliśmy
funkcję Möbiusa µ w definicji (iii). Podobnie możemy postąpić z funkcją ϕ(n)
– liczbą liczb całkowitych dodatnich nie większych od n względnie pierwszych z
n.
Niech m i n będą względnie pierwsze. Zastanówmy się kiedy 1 ≤ x ≤
mn jest względnie pierwsze z mn. Otóż NWD(x, mn) = 1 ⇔ NWD(x, m) =
1 i NWD(x, n) = 1, czyli x musi spełniać układ kongruencji:
(
x ≡ a (mod m),
(14.13)
x ≡ b (mod n),
gdzie a jest względnie pierwsze z m, a b jest względnie pierwsze z n. Różnych
liczb a modulo m o tej własności jest ϕ(m), a różnych liczb b module n jest ϕ(n).
Dla każdej pary liczb a i b z chińskiego twierdzenia o resztach wiemy, że istnieje
dokładnie jedno x z dokładnością modulo mn spełniające (14.13), skąd wynika,
że całkowita liczba szukanych wartości x wynosi ϕ(m)ϕ(n). Zatem funkcja ϕ
jest multiplikatywna.
40
Zatem wystarczy podać wartość ϕ(pα ), ale to wynosi dokładnie pα − pα−1 .
Niech n = pα . Spróbujmy wyrazić ϕ(n) tak, aby zależało tylko od n, ale w ten
sposób, żeby wzór reprezentował funkcję multiplikatywną. Mamy:
1
ϕ(n) = n 1 −
.
(14.14)
p
Wzór (14.14) zawiera jeszcze liczbę pierwszą p. Zauważmy, że 1, jak i p są
dzielnikami n. Pozostałymi dzielnikami n są p2 , . . . , pα , ale one nie występują
we wzorze. Sugeruje to użycie definicji (iii) funkcji µ:
ϕ(n) = n
X1
d|n
d
µ(d).
(14.15)
Multiplikatywność tego wzoru wynika z multiplikatywności funkcji µ i d 7→ d1
oraz z twierdzenia 14.4. Zatem (14.15) reprezentuje wzór na ϕ(n), nie tylko dla
n = pα , ale dla dowolnego naturalnego n. Przepiszmy go do postaci
X
n
ϕ(n) =
µ(d) .
d
d|n
Stosując wzór na odwracanie (twierdzenie 14.7), dla f = ϕ oraz dla g : n 7→ n
otrzymamy:
X
n=
ϕ(d).
d|n
15
Ciągi Farey’a
Jak szybko wypisać wszystkie ułamki z przedziału [0, 1] o mianownikach co najwyżej 8 posortowane rosnąco? Następująca technika działa zaskakująco dobrze.
Zaczynamy od listy składającej się z dwóch ułamków: 01 , 11 . Następnie, między
każde kolejne dwa ułamki wstawiamy ułamek o liczniku będącym sumą liczników i mianowniku będącego sumą mianowników. Powtarzamy to tak długo aż
nie będziemy mogli wstawić już żadnego ułamka o odpowiednio małym mianow1
niku. Między 01 i 11 wstawiamy 0+1
1+1 = 2 :
0 1 1
, , .
1 2 1
Między
0
1
i
1
2
wstawiamy
0+1
1+2
= 13 , a między
1
2
i
1
3
wstawiamy
1+1
1+2
= 32 :
0 1 1 2 1
, , , , .
1 3 2 3 1
0+1
2
Między 01 i 13 wstawiamy 1+3
= 14 , między 13 i 12 wstawiamy 1+1
3+2 = 5 , między
2
1+2
3
2
1
2+1
3
i 3 wstawiamy 2+3 = 5 oraz między 3 i 1 wstawiamy 3+1 = 4 :
1
2
0 1 1 2 1 3 2 3 1
, , , , , , , , .
1 4 3 5 2 5 3 4 1
1
1
1
1+1
2
Dalej między 01 i 14 wstawiamy 0+1
1+4 = 5 , między 4 i 3 wstawiamy 4+3 = 7 ,
1+2
3
między 13 i 25 wstawiamy 3+5
= 38 , między 25 i 21 wstawiamy 2+1
5+2 = 7 , między
41
4
3
2
3+2
i 53 wstawiamy 1+3
2+5 = 7 , między 5 i 3 wstawiamy 5+3 =
5
3
1
3+1
4
wstawiamy 2+3
3+4 = 7 oraz między 4 i 1 wstawiamy 4+1 = 5 :
1
2
5
8,
między
2
3
i
3
4
0 1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1
, , , , , , , , , , , , , , , , .
1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1
Między 01 i 15 wstawimy jeszcze ułamki 18 , 17 , 16 oraz pomiędzy 54 i 11 wstawimy
jeszcze 65 , 67 , 87 . Pomiędzy pozostałe ułamki już nic nie wstawimy, bo suma
mianowników jest większa od 8. Ostatecznie otrzymujemy listę:
0 1 1 1 1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 5 6 7 1
, , , , , , , , , , , , , , , , , , , , , , .
1 8 7 6 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 6 7 8 1
Są to wszystkie szukane ułamki. Dlaczego to działa?
Lemat 15.1. Dla każdych dwóch sąsiednich ułamków na liście
a
m
i
b
n
zachodzi
bm − an = 1.
(15.1)
Dowód. Indukcja. Dla ułamków 10 i 11 mamy 1 · 1 − 0 · 1 = 1. Załóżmy, że między
a
a+b
ułamki m
< nb takie, że bm − an = 1 wstawiamy ułamek m+n
. Liczymy:
(a + b)m − a(m + n) = am + bm − am − an = bm − an = 1,
b(m + n) − (a + b)n = bm + bn − an − bn = bm − an = 1.
Wniosek 15.2. Każdy ułamek na liście jest nieskracalny.
Wniosek 15.3. Dla dwóch kolejnych ułamków z listy
a
m
<
b
n
zachodzi:
b
a
1
−
=
.
n m
mn
Lemat 15.4. Dla dwóch dowolnych ułamków
u
x
(15.2)
<
v
y
zachodzi vx − uy ≥ 1 i
u
1
v
− ≥
.
y x
xy
Dowód.
0<
v
u
vx − uy
− =
,
y x
xy
więc vx − uy > 0, czyli vx − uy ≥ 1, co kończy dowód.
a
< nb będą kolejnymi ułamkami z listy, wtedy jeśli
Fakt 15.5. Niech m
b
n , to k ≥ m + n i ponadto jeśli k = m + n, to c = a + b.
Dowód. Z lematu 15.4 mamy nierówności:
c
a
1
−
≥
,
k m
km
b
c
1
− ≥
.
n k
kn
42
a
m
<
c
k
<
Sumując stronami otrzymujemy:
1
mn
(15.2)
=
b
a
1
1
−
≥
+
.
n m
km kn
Mnożąc obie strony przez kmn otrzymujemy k ≥ n + m. Załóżmy teraz, że
c
a
< m+n
i z lematu 15.4 mamy
k = m + n. Z m
cm − a(m + n) ≥ 1,
(15.1)
cm ≥ am + 1 + an = am + bm,
c ≥ a + b.
Z
c
m+n
<
b
n
i z lematu 15.4 mamy
b(m + n) − cn ≥ 1,
(15.1)
cn ≤ −1 + bm + bn = an + bn,
c ≤ a + b.
Ostatecznie otrzymujemy c = a + b.
Wiemy już, że ułamki na liście są nieskracalne. Pozostaje pokazać, że każdy
ułamek o mianowniku nie przekraczającym pewnego ustalonego N zostanie wygenerowany. Załóżmy, że nie, tzn. niech ułamek 0 < kc < 1 będzie takim
ułamkiem, którego nie udało się wygenerować oraz niech k ≤ N . Dla ostatecza
< nb takie, że m + n > N , między
nej listy będą istniały dwa kolejne ułamki m
c
które wpada ułamek k , wtedy z faktu 15.5 wynika, że k ≥ m + n > N , a to jest
sprzeczność.
16
Przybliżanie liczb rzeczywistych ułamkami o
niskich mianownikach
a
Szukamy dobrego przybliżenia liczby rzeczywistej x ≥ 0 za pomocą ułamka m
a
tak, aby |x − m | było jak najmniejsze wśród wszystkich ułamków o mianowniku
m ≤ N dla pewnego ustalonego N . Najprościej jest utworzyć ciąg Farey’a
wszystkich ułamków z przedziału [bxc, bxc + 1] i zobaczyć, którym ułamkiem
jest x, bądź między które dwa ułamki wpada i wybrać bliższy z nich. Zamiast
generować całą listę ułamków możemy znaleźć tylko te dwa, które otaczają x.
a
Trzymamy tylko dwa ułamki, które otaczają x: m
< x < nb . Startujemy od
bxc+1
bxc
ułamków 1 i 1 . Następnie, dopóki x nie jest równy jednemu z ułamków
a
b
a+b
m , n tak długo jak m + n ≤ N bierzemy ułamek m+n i sprawdzamy, czy jest
mniejszy, czy też większy od x zastępując nim odpowiednio mniejszy lub większy
a
z dwóch ułamków m
i nb .
√
o mianowniku
co najwyżej 10. Mamy
Przykład
16.1. Przybliżamy 2 ułamkiem
√
√
√
1
2
1+2
3
1
3
1+3
4
<
2
<
.
Bierzemy
=
>
2,
więc
<
2
<
.
1
1
1+1
2
1√
2 Bierzemy
1+2 = 3 <
√
√
√
7
2, więc 43 < 2 < 32 . Bierzemy 4+3
2, więc 75 < 2 < 32 . Bierzemy
3+2 = 5 <
√
√
10
7
10
7+3
2, więc 5 < 2 < 7 . Teraz 5 + 7 > 10, więc szukany ułamek to
5+2 = 7 >
43
7
5
lub
10
7 .
Mamy
√
7
≈ 0.01421,
5
√
10
2−
≈ 0.01436,
7
2−
zatem lepszy jest 57 .
Powyższy sposób możemy jeszcze przyspieszyć. Niech
a
b
<x< .
m
n
Załóżmy, że najbliższe nowe t ułamków będzie nie większe od x, a t + 1 już
większy od x. Wtedy sytuacja wygląda tak:
a
a+b
a + 2b
a + tb
a + (t + 1)b
b
<
<
< ... <
≤x<
< .
m
m+n
m + 2n
m + tn
m + (t + 1)n
n
Zamiast monotonie do lewego ułamka dodawać ułamek nb , najlepiej od razu by
a+tb
, nb . Znajdźmy to t. t jest największa liczbą
znaleźć t i przejść do pary m+tn
całkowitą taką, że zachodzi
a + tb
≤ x,
przekształcamy
m + tn
a + tb ≤ mx + tnx,
(b − nx)t ≤ mx − a.
Ponieważ x <
b
n,
więc b − nx > 0, czyli mamy
t≤
mx − a
,
b − nx
skąd wzór na t:
t=
mx − a
.
b − nx
(16.1)
Podobnie rozumujemy, gdy najbliższe t będzie nie mniejsze od x, a t + 1 już
większy od x w takiej sytuacji:
a
(t + 1)a + b
ta + b
2a + b
a+b
b
<
<x≤
< ... <
<
< .
m
(t + 1)m + n
tm + n
2m + n
m+n
n
a
Zamiast monotonie do prawego ułamka dodawać ułamek m
, przejdziemy od
a
ta+b
razu do pary m , tm+n . Szukamy największego całkowitego t takiego, że
ta + b
,
tm + n
tmx + nx ≤ ta + b,
x≤
przekształcamy
(mx − a)t ≤ b − nx.
Ponieważ
a
m
< x, więc mx − a > 0, czyli mamy
t≤
b − nx
,
mx − a
44
skąd wzór na t:
b − nx
t=
.
mx − a
(16.2)
Usystematyzujmy teraz nasze szukanie ułamków. Zacznijmy szukać przybliżenia x od ułamków 10 i 10 . 10 symbolicznie oznacza nieskończoność. Możemy
sobie pozwolić na zaczynanie budowania ułamków Farey’a od tych ułamków, bo
spełniony jest dla nich lemat 15.1. Oznaczmy
P0
1
= .
Q0
0
P−1
0
=
Q−1
1
Będziemy budować kolejne ułamki
Pk
Qk
Pk−1
Pk
≤x≤
Qk−1
Qk
Pk−1
Pk
≤x≤
Qk
Qk−1
w ten sposób, że:
dla k parzystego,
dla k nieparzystego.
Wyznaczymy wzory na Pk i Qk . Dla k − 1 parzystego będziemy prawy ułamek
Pk−1
Pk−2
Qk−1 dodawać do lewego Qk−2 ile się da i wynikowy ułamek oznaczymy sobie
przez
Pk
Qk .
Z równania (16.1) wynika, że jeśli weźmiemy
qk =
Qk−2 x − Pk−2
,
Pk−1 − Qk−1 x
to będzie
Pk
Pk−2 + qk Pk−1
=
.
Qk
Qk−2 + qk Qk−1
Dla k − 1 nieparzystego będziemy lewy ułamek
Pk−1
Qk−1
Pk
Qk .
dodawać do prawego
Pk−2
Qk−2
ile się da i wynikowy ułamek oznaczymy przez
Z równania (16.2) wynika,
że jeśli weźmiemy
Qk−2 x − Pk−2
qk =
,
Pk−1 − Qk−1 x
to będzie
Pk
qk Pk−1 + Pk−2
=
.
Qk
qk Qk−1 + Qk−2
W obu przypadkach otrzymaliśmy ten sam wzór. Ostatecznie mamy wzory:
P−1 = 0
Q−1 = 1
P0 = 1
Q1 = 0
Pk = qk Pk−1 + Pk−2
Qk = qk Qk−1 + Qk−2
gdzie qk = bxk c dla k ≥ 1 przy oznaczeniu
xk =
Qk−2 x − Pk−2
.
Pk−1 − Qk−1 x
(16.3)
Używając powyższych wzorów będziemy budować kolejne ułamki tak długo jak
Qk ≤ N . Niech k ≥ 1 będzie największe takie, że Qk ≤ N . Wtedy x znajduje
45
Pk−1
Pk−1
Pk
Pk
iQ
. Dodając qk+1 razy ułamek Q
do ułamka Q
się między ułamkami Q
k−1
k
k
k−1
otrzymamy mianownik większy od N . Należy zatem tych dodań wykonać mniej,
powiedzmy t razy, przy czym t jest największą liczbą całkowitą, że tQk +Qk−1 ≤
k−1
N , skąd t ≤ N −Q
. Zatem tych dodawań możemy wykonać maksymalnie:
Qk
N − Qk−1
.
Qk
Podsumowując otrzymujemy następujące twierdzenie.
a
Twierdzenie 16.2. Najlepszym przybliżeniem w postaci ułamka m
liczby x ≥
a
0, w tym sensie, że |x − m | jest możliwie najmniejsze, takim, że m ≤ N będzie
jeden z ułamków:
Pk
tPk + Pk−1
Qk
tQk + Qk−1
gdzie k ≥ 1 jest największą taką liczbą, że Qk ≤ N oraz
N − Qk−1
t=
.
Qk
Pozostaje nam uprościć jeszcze wzór (16.3) na xk .
Fakt 16.3. Zachodzi x1 = x i dla k ≥ 2
xk =
1
xk−1 − qk−1
Dowód. Liczymy
x1 =
1·x−0
Q−1 x − P−1
=
=x
P0 − Q0 x
1−0·x
oraz
1
=
xk−1 − qk−1
1
Qk−3 x−Pk−3
Pk−2 −Qk−2 x
− qk−1
=
1
Qk−3 x−Pk−3 −qk−1 Pk−2 +qk−1 Qk−2 x
Pk−2 −Qk−2 x
=
Pk−2 − Qk−2 x
Pk−2 − Qk−2 x
=
= xk
(qk−1 Qk−2 + Qk−3 )x − (qk−1 Pk−2 + Pk−3 )
Qk−1 x − Pk−1
Z tego faktu mamy następujące wnioski pokazujące, że w istocie rzeczy pracujemy na ułamkach łańcuchowych.
Wniosek 16.4. Dla k ≥ 1 zachodzą wzory
1
x = q1 +
(16.4)
1
q2 +
..
.
qk−1 +
Pk
= q1 +
Qk
1
xk
1
q2 +
(16.5)
1
..
.
qk−1 +
46
1
qk
Dowód. Równość (16.4) wynika z faktu 16.3. Dowodzimy ją indukcją po k.
1. Dla k = 1 mamy x = x1 .
2. Niech k ≥ 2. Z założenia indukcyjnego mamy:
1
x = q1 +
,
..
.
qk−2 +
(16.6)
1
xk−1
a z faktu 16.3 wiemy, że:
xk =
1
,
xk−1 − qk−1
skąd po przekształceniu mamy
xk−1 = qk−1 +
1
,
xk
wstawiając to do (16.6) otrzymujemy tezę.
Dowód równości (16.5) jest nieco trudniejszy. Znowu użyjemy indukcji po k.
1. Dla k = 1 mamy
q1
P1
q1 P0 + P−1
q1 · 1 + 0
=
= q1 .
=
=
Q1
q1 Q0 + Q−1
q1 · 0 + 1
1
2. Załóżmy, że k ≥ 2. Z założenia indukcyjnego mamy, że
Pk−1
= q1 +
Qk−1
1
.
..
.
qk−2 +
(16.7)
1
qk−1
Z drugiej strony wiemy, że
qk−1 Pk−2 + Pk−3
Pk−1
=
.
Qk−1
qk−1 Qk−2 + Qk−3
(16.8)
Zauważmy, że liczby Pk−2 i Qk−2 dadzą się wyrazić jako funkcja wymierna
od liczb q1 , q2 , . . . , qk−2 . Wynika to z założenia indukcjynego na przedstaPk−2
wienie Q
za pomocą ułamka łańcuchowego. Analogicznie liczby Pk−3
k−2
i Qk−3 dadzą się wyrazić za pomocą liczb q1 , . . . , qk−2 , a zatem po prawej
stronie wyrażenia (16.8) jest funkcja wymierna od liczb q1 , . . . , qk−1 , przy
czym liczba qk−1 pojawia się tylko dwa razy, raz w liczniku i raz w mianowniku. W pozostałej części tj. w Pk−2 , Pk−3 , Qk−2 , Qk−3 liczba qk−1
nie pojawia się. Teraz, ponieważ prawe strony równości (16.7) i (16.8) są
47
sobie równe oraz są to funkcje od q1 , . . . , qk−1 , więc jeśli w obu tych wyrażeniach podmienimy qk−1 na qk−1 + q1k , to równość zostanie zachowana:
1
q1 +
q2 +
=
1
qk−1 +
qk−1 +
1
qk Pk−2
1
qk Qk−2
+ Pk−3
+ Qk−3
..
.
1
qk
1
qk Pk−2 + qk−1 Pk−2 + Pk−3
qk−1 +
=
1
qk Qk−2 + qk−1 Qk−2 + Qk−3
1
Pk−2
q Pk−2 + Pk−1
= 1k
=
Qk−2
qk Qk−2 + Qk−1
+ qk Pk−1
Pk
=
,
+ qk Qk−1
Qk
a to jest teza.
Liczby
Pk
Qk
nazywa się reduktami ułamka łańcuchowego.
√
Przykład 16.5. Znajdziemy najlepsze przybliżenie
3 ułamkiem o mianowniku
√
nieprzekraczającym 10. Mamy x = x1 = 3, q1 = 1, P1 = 1 · P0 + P−1 =
1 · 1 + 0 = 1, Q1 = 1 · Q0 + Q−1 = 1 · 0 + 1 = 1. Dalej
√
1
3+1
1
x2 =
=
,
=√
x1 − q1
2
3−1
skąd q2 = bx2 c = 1, P2 = 1·P1 +P0 = 1·1+1 = 2, Q2 = 1·Q1 +Q0 = 1·1+0 = 1.
Dalej
√
1
2
1
1
= √
=√
x3 =
= 3 + 1,
= √
3+1
3−1
x2 − q 2
3−1
−1
2
2
skąd q3 = 2, P3 = 2 · 2 + 1 = 5, Q3 = 2 · 1 + 1 = 3. Dalej otrzymamy x4 = x2 ,
zatem q4 = 1, P4 = 1 · 5 + 2 = 7, Q4 = 1 · 3 + 1 = 4. Następnie x5 = x3 i q5 = 2,
ale wtedy Q5 = 2 · 4 + 3 = 11 > 10. Zatem k = 4 jest maksymalne takie, że
7
k−1
Qk ≤ 10. Liczymy t = b N −Q
c = b 10−3
Qk
4 c = b 4 c = 1. Najlepsze przybliżenie
√
7
1·7+5
12
3 jest wśród ułamków 4 i 1·4+3 = 7 . Sprawdzamy:
7 √
− 3 ≈ 0.01795,
4
√
12
3−
≈ 0.01777,
7
zatem szukanym ułamkiem jest
wego.
12
7
i wcale nie jest to redukt ułamka łańcucho-
48
Download