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