Rozdział 7 Elementy teorii liczb

advertisement
Rozdział 7
Elementy teorii liczb
7.1
Podstawowe własności liczb
Zakres teorii liczb to zbiór liczb całkowitych. Tak więc nie będziemy wychodzić poza ten zbiór, a jeśli się pojawi pojęcie ,,liczba”, oznaczać to będzie
,,liczba całkowita”. Czasami ograniczymy nasz zakres jeszcze bardziej, tj. do
zbioru liczb naturalnych. Od czasu do czasu jednak trzeba będzie wyjść poza
liczby całkowite. Wówczas do słowa ,,liczba” dodawać będziemy odpowiednie
przymiotniki, np. ,,liczba wymierna” lub ,,liczba rzeczywista”.
Zauważmy, że jedynym z czterech podstawowych działań arytmetycznych,
którego nie można określić w zbiorze liczb całkowitych jest dzielenie. Fakt
ten leży u podstaw teorii liczb i dlatego zaczynamy nasze rozważania od
pewnych pojęć związanych z podzielnością.
Przypuśćmy, że mamy dane dwie liczby całkowite a i b. Mówimy, że a
dzieli b lub b jest wielokrotnością a (i piszemy a| b) jeśli istnieje taka liczba c,
że ac = b. Jeżeli nie ma takiej liczby całkowitej c, to mówimy, że a nie dzieli
b lub b nie jest wielokrotnością a (co zapisujemy a - b). Jeśli a dzieli b, to
mówimy też, że a jest dzielnikiem b lub że b jest podzielna przez a.
Przykłady. Ponieważ 24 = 2 · 12 = 3 · 8 = 4 · 6, więc 2|24, 8|24 oraz 4|24.
Także −2|24 i −12|24 ponieważ (−2)(−12) = 24.
Jeśli a|b, to −a|b. Istotnie, jeśli istnieje c takie, że ac = b, to mamy też
(−a)(−c) = b, czyli −a|b.
Żadna liczba różna od zera nie jest podzielna przez 0. Istotnie, gdyby
zero było dzielnikiem liczby a, to istniałaby liczba c taka, że 0 · c = a. Ale to
oznaczałoby, że a = 0. Z kolei wyrażenie 0|0 ma sens ponieważ dla dowolnej
1
liczby całkowitej a mamy a · 0 = 0. Z ostatniej równości wynika też, że liczba
0 jest dzielnikiem każdej liczby całkowitej.
Pewne liczby mają dużo dzielników, jak na przykład 12, czy 24, a inne
mniej. Na przykład liczba 29 ma tylko dwa dzielniki dodatnie: 1 i 29 oraz
dwa ujemne: -1 i -29.
Pokażemy teraz cztery podstawowe własności podzielności liczb.
7.1 Lemat. Dla dowolnych liczb a, b, c, x, y ∈ Z zachodzą następujące
własności:
(a) Jeśli a| b oraz x| y, to ax| by;
(b) Jeśli a| b oraz b| c, to a| c;
(c) Jeśli a| b oraz b 6= 0, to | a| ≤ | b|;
(d) Jeśli a| b oraz a| c, to a| bx + cy.
Nie każda liczba jest dzielnikiem a 6= 0. Jeżeli jednak mamy b 6= 0,
to zawsze możemy dokonać dzielenia z resztą. W dalszej części wykładu
będziemy często korzystać z następującego
7.2 Twierdzenie (o podzielności). Przypuśćmy, że a, b ∈ Z przy czym b 6= 0.
Istnieją wówczas jednoznacznie określone liczby q ∈ Z oraz 0 ≤ r < | b|, takie
że
a = bq + r
(7.1)
Liczby q oraz r, które pojawiły się w treści poprzedniego twierdzenia nazywamy, odpowiednio, dzielnikiem częściowym i resztą z dzielenia a przez b.
Dowód. Rozważmy zbiór
S = {a − mb : m ∈ Z} .
Zauważmy najpierw, że w zbiorze S jest przynajmniej jedna liczba nieujemna.
Istotnie, jeśli a > b, to a−1·b > 0 i jest to liczba ze zbioru S. W przeciwnym
wypadku przynajmniej jedna z liczb a−(−| a|−1)b, a−(| a|+1)b jest większa
od zera (w zależności, czy b ≥ 0, czy b < 0), a obie te liczby są elementami S.
Skoro w S są liczby nieujemne, to weźmy najmniejszą z nich i nazwijmy
ją r. Skoro r ∈ S, to istnieje q ∈ Z, taka że r = a − qb. Wiadomo, że
r ≥ 0. Przypuśćmy, że r > | b|. Wówczas r1 = r − | b| jest liczbą dodatnią
2
oraz r1 = a − (q + 1)b lub r1 = a − (q − 1)b jest dodatnim elementem zbioru
S mniejszym od r. Stąd sprzeczność z wyborem r. Także r 6= | b|, bo w
przeciwnym wypadku b byłoby dzielnikiem a, czyli 0 < r byłoby elementem
zbioru S, a to dałoby nam ponownie sprzeczność z wyborem r. Wykazaliśmy
więc istnienie liczb q i r, które spełniają 7.1.
Pozostaje jeszcze udowodnić jednoznaczność liczb q i r. Przypuśćmy, że
istnieją q1 oraz r1 , takie że a = q1 b + r1 przy czym 0 ≤ r1 < | b|. Zatem
(q − q1 )b = r1 − r.
(7.2)
Ale |r1 − r| < | b|, ponieważ 0 ≤ r < | b| oraz 0 ≤ r1 < | b|. Z drugiej strony
7.2 oraz lemat 7.1(c) implikują | b| ≤ | r1 − r| lub | r1 − r| = 0. Zatem musi
zachodzić druga równość, czyli r1 = r. Ale to oznacza, że (q − q1 )b = 0,
a ponieważ b 6= 0, więc q − q1 = 0.
Przedział, gdzie umieszczamy resztę, tj. [0, |b| − 1] można zmienić. Jedynym kryterium jest, by zawierał on |b| kolejnych liczb. Dość często wybiera
się liczby z przedziału [−|b|/2; (|b| + 1)/2].
7.2
Liczby w różnych systemach pozycyjnych
Istotnym zastosowaniem twierdzenia o podzielności (7.2) jest reprezentacja
liczb całkowitych w systemach pozycyjnych. Przypomnijmy, że stosowany
powszechnie system zapisu liczb nazywamy systemem pozycyjnym, ponieważ
znaczenie cyfry zależy od pozycji, na której się owa cyfra znajduje. Poza
tym nasz system liczenia nazywamy dziesiętnym, ponieważ mamy dokładnie
10 cyfr. Liczba cyfr w systemie pozycyjnym zależy od podstawy. Dokładnie, dowolną liczbę całkowitą nieujemną n zapisujemy przy podstawie b ≥ 2
w postaci
(dk−1 dk−2 . . . d1 d0 )b ,
(7.3)
gdzie dk−1 , dk−2 , . . . , d1 , d0 są liczbami całkowitymi nieujemnymi oraz niewiększymi od b − 1 nazywanymi cyframi. Zapis ten oznacza, że
n = dk−1 bk−1 + · · · + d1 b + d0 .
(7.4)
Jeżeli n jest liczbą ujemną to wyrażenie po prawej stronie równości (7.4)
zaczęlibyśmy od znaku −. Jeżeli dk−1 nie jest zerem, to mówimy, że n jest
liczbą k-cyfrową w systemie pozycyjnym o podstawie b. Jeżeli b = 10 to
3
nawiasy w (7.3) opuszczamy, gdyż wtedy mamy do czynienia ze zwykłym
dziesiętnym systemem pozycyjnym. Podobnie opuścimy nawiasy gdy wybór
podstawy jasno wynika z kontekstu. Zapis (7.4) nazywamy rozwinięciem
liczby n przy podstawie b.
Jeżeli b > 10, to pisownia niektórych cyfr jest uciążliwa (wymaga dodatkowych nawiasów) lub niejasna ((101)b można rozumieć na dwa sposoby).
Dlatego dla oznaczenia cyfr 10, 11, 12, . . . używamy liter: A, B, C, . . . Oczywiście można używać liter lub innych znaków dla oznaczenia wszystkich cyfr.
Wyjątek stanowi podstawa 26, która jest używana w kryptografii. Wówczas
cyframi są po prostu litery alfabetu łacińskiego.
Często zdarza się, że trzeba przejść od jednej podstawy systemu pozycyjnego do drugiej. Zwykle jest to przejście do podstawy 10 lub od podstawy 10. Przechodzenie do podstawy 10 polega na obliczeniu wyrażenia po
prawej stronie (7.4). Gorzej jest przejść od podstawy 10 do innej podstawy.
Najbardziej naturalnym sposobem jest sekwencyjne dzielenie z resztą, które
zademonstrujemy na przykładzie.
7.3 Przykład. Zapiszemy liczbę 346 w systemie trójkowym, czyli przy podstawie 3. Dzielimy 346 na 3 otrzymując 115, reszta 1. Zatem 346 = 115·3+1.
Teraz dzielimy 115 na 3 otrzymując 38, reszta 1. Stąd 346 = 38 · 32 + 1 · 3 + 1.
Kontynuując ten proces otrzymamy
346 = 35 + 34 + 2 · 32 + 31 + 1,
czyli 346 = (110211)3 .
Jeżeli przechodzimy od podstawy b1 6= 10 do podstawy b2 6= 10, to można
tu przechodzić pośrednio przez podstawę 10. Czasem jednak bardziej efektywne jest zapisanie b1 i cyfr w systemie o podstawie b2 oraz odpowiednie
pogrupowanie. Jeżeli dodatkowo b1 jest potęgą b2 , to sposób ten jest bardzo
szybki.
Przykłady
7.4. Zapiszemy (548)16 w systemie dwójkowym. Ponieważ 16 = 24 , 5 =
1 · 22 + 1, 4 = 1 · 22 oraz 8 = 1 · 23 , mamy
(548)16 = 5 · 162 + 4 · 16 + 8 = 1 · 210 + 1 · 28 + 1 · 26 + 1 · 23 = (10101001000)2 .
7.5. Zapiszemy n = (212021)3 w systemie o podstawie 9. Grupujemy cyfry
po 2 (bo 9 = 32 ) zaczynając od prawej strony: 21, 20, 21. (Jeśli ,,nie starcza”
cyfr na ostatnią grupę, dodajemy z przodu odpowiednią liczbę zer. Ponieważ
(21)3 = 2 · 3 + 1 = 7, a (20)3 = 2 · 3 = 6, więc n = (767)9 .
4
Działania arytmetyczne na liczbach w systemie o podstawie b wykonujemy
bez angażowania w to podstawy 10. Dodawanie, odejmowanie i mnożenie
pisemne przeprowadzamy tak jak dotychczas, przy czym przy ,,pożyczaniu”
bierzemy nie 10 lecz b.
Także ułamki można rozwijać przy dowolnej podstawie. Mają one (skończoną lub nieskończoną postać (dk−1 dk−2 . . . d1 d0 .d−1 d−2 . . . )b . Warto tu zauważyć, że przy zmianie podstawy, mogą też zmienić się ułamki okresowe.
Na przykład 0.33333 · · · = (0.1)3 , a 0.5 = (0.11111 . . . )3 .
7.3
Liczby pierwsze
Dodatnią liczbę całkowitą p nazywamy pierwszą, jeżeli posiada ona dokładnie
dwa dzielniki naturalne: p oraz 1. Liczby, które nie są pierwsze, nazywamy
złożonymi.
Od tej chwili, literę p (także ze znaczkami) rezerwujemy do oznaczenia
liczb pierwszych.
Liczby pierwsze stanowią najmniejsze ,,cegiełki”, z których zbudowane są
liczby naturalne. Większość pytań związanych z podzielnością liczb sprowadza się do znalezienia dzielników pierwszych. Każdą liczbę naturalną n
można rozłożyć na czynniki pierwsze, czyli zapisać w postaci iloczynu liczb
pierwszych. Jeśli n jest liczbą pierwszą, to iloczyn ten ma tylko jeden czynnik.
7.6 Twierdzenie. Każda liczba naturalna większa od 1 jest iloczynem liczb
pierwszych.
Dowód (nie wprost). Przypuśćmy, że istnieją liczby naturalne, które nie są
iloczynami liczb pierwszych. Niech n będzie najmniejszą z tych liczb. Nie
może to być liczba pierwsza (zob. uwaga przed twierdzeniem), więc musi
to być liczba złożona. Istnieją więc liczby naturalne a oraz b, dla których
zachodzi n = ab i które są ostro mniejsze od n. Ponieważ n jest najmniejszą
liczbą nie dającą się rozłożyć na czynniki pierwsze, więc a oraz b są iloczynami
liczb pierwszych. Zatem n też musi być iloczynem liczb pierwszych i mamy
sprzeczność.
7.7 Wniosek. Każda liczba całkowita różna od zera, 1 i −1 jest iloczynem
−1 oraz liczb pierwszych.
¤
Okazuje się, że wspomniany rozkład liczby naturalnej na czynniki pierwsze jest jednoznaczny o czym mówi podstawowe twierdzenie arytmetyki,
które dokładnie sformułujemy w dalszej części wykładu.
5
Jak stwierdzić, czy liczba n jest pierwsza? Nie jest to łatwe zadanie,
zwłaszcza gdy mamy do czynienia z dużymi liczbami. Metodą, która tu się
nasuwa jest dzielenie n przez kolejne liczby pierwsze w poszukiwaniu zerowej
reszty. W tym ,,przesiać” liczby w poszukiwaniu kolejnych liczb pierwszych.
Robimy to w następujący sposób:
Krok I. Tworzymy listę pierwszych M liczb naturalnych począwszy od 2.
Krok II. Pozostawiamy pierwszą niewykreśloną liczbę k na liście i wykreślamy z listy wszystkie wielokrotności k.
Krok III. Powtarzamy Krok II aż wszystkie liczby większe od k będą
wykreślone.
Opisany wyżej algorytm nosi nazwę Sita Eratostenesa. W wyniku działania tego algorytmu otrzymujemy listę kolejnych liczb pierwszych mniejszych
od M . Wróćmy teraz do naszego pytania–zadania oraz do metody rozwiązania go. Jak duże musi być M ? Na pewno wystarczy M = n. Wówczas po
zastosowaniu Sita Eratostenesa stwierdzimy, czy n jest liczbą pierwszą, czy
złożoną, a dzielenie przez wyszukane liczby pierwsze mniejsze od n nie będzie
konieczne. Można jednak szybciej
stwierdzić, czy n jest pierwsza biorąc za M
√
część całkowitą (podłogę) n.
7.8 Twierdzenie. Liczba n jest pierwsza√wtedy i tylko wtedy, gdy nie jest
podzielna przez żadną liczbę pierwszą p ≤ n.
Dowód ⇒. oczywiste.
⇐. Jeśli n = ab, gdzie a oraz b są liczbami dodatnimi mniejszymi
od n i
√
większymi od
z nich √
musi √
być mniejsza lub równa n. Istotnie,
√
√ 1, to jedna
gdyby a > n, b > n, to ab > n · n = n, skąd sprzeczność.
¥√ Dla¦ przykładu sprawdźmy, czy 127 jest liczbą pierwszą. Ponieważ mamy
127 = 11, więc stosując Sito Eratostenesa wypisujemy liczby pierwsze
mniejsze lub równe 11 (2, 3, 5, 7, 11) i dzielimy 127 przez każdą z nich.
127 = 2 · 63 + 1
127 = 3 · 42 + 1
127 = 5 · 25 + 2
127 = 11 · 11 + 5.
6
x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
π(x)
0
1
2
2
3
3
4
4
4
4
5
5
6
6
x
15
16
17
18
19
20
21
22
23
24
25
26
27
28
π(x)
6
6
7
7
8
8
8
8
9
9
9
9
9
9
Rysunek 7.1: Tabela wartości funkcji π
Ponieważ za każdym razem otrzymujemy niezerową resztę więc 127 jest liczbą
pierwszą.
Wydaje się, że inaczej być nie może: liczb pierwszych jest nieskończenie
wiele. Formalny dowód tego faktu poznamy za chwilę.
7.9 Twierdzenie (Euklidesa). Istnieje nieskończenie wiele liczb pierwszych.
Dowód (nie wprost). Przypuśćmy, że na poniższej liście znajdują się wszystkie liczby pierwsze
p 1 , p2 , . . . , p n
(7.5)
i rozważmy liczbę N = p1 p2 . . . pn + 1. Zauważmy, że N nie jest podzielne
przez żadną z liczb z listy 7.5. Ponieważ jednak na tej liście znajdują się
wszystkie liczby pierwsze, więc N nie jest iloczynem liczb pierwszych co jest
sprzeczne z twierdzeniem 7.6.
Problem rozmieszczenia liczb pierwszych nie został jeszcze do końca zbadany. Nie wiadomo na przykład, czy par liczb pierwszych bliźniaczych (tj.
takich, które różnią się od siebie o 2) jest nieskończenie wiele. Wiadomo, że
istnieją przerwy dowolnej długości w rozmieszczeniu liczb pierwszych. Istotnie, mając daną liczbę naturalną k zauważamy, że kolejne liczby
(k + 1)! + 2, (k + 1)! + 3, . . . (k + 1)! + (k + 1)
są złożone.
Zdefiniujemy funkcję π : N → N nadając jej w punkcie x wartość, która
jest równa ilość liczb pierwszych mniejszych lub równych x. Łatwo zauważyć,
że jest to funkcja niemalejąca. Kilka pierwszych jej wartości zawartych jest
w tabeli 7.3.
Tak więc od czasów starożytnych wiadomo, że nie ma największej liczby
pierwszej. zrozumiałe jest zatem współzawodnictwo o to kto znalazł największą znaną liczbę pierwszą. We wrześniu 1985 roku rekord należał do
7
D. Slowinskiego, a jego liczba to 2216091 − 1. Ma ona 65050 cyfr. Ostatni
rekord to 232582657 − 1 ustanowiony 4 września 2006 przez zespół C. Cooper’a
oraz S. Boone’a. Liczba ta ma prawie 10 milionów cyfr (troszkę ponad
9,200,000). Na odkrywcę liczby pierwszej, która ma ponad 10 milionów cyfr
czeka nagroda 100,000 dolarów.
Aby przechytrzyć innych we współzawodnictwie znajdywania największej liczby pierwszej niektórzy podejmowali próby stworzenia formuły, która
,,produkowałaby” nowe liczby pierwsze ze znanych już liczb pierwszych. I tak,
n
w 1640 roku Fermat zauważył, że liczby postaci 22 + 1 są pierwsze dla
n = 1, 2, 3, 4 i wyraził przypuszczenie że jest tak też i dla n > 4. Obecnie
liczby te nazywają się liczbami Fermata i oznaczamy je przez Fn . Już Euler
pokazał, że F5 = 4294967297 = 641 · 6700417. Obecnie wiadomo, że dla
5 ≤ n ≤ 20 liczby Fermata Fn są złożone. Jak jest dalej – nie wiadomo.
Liczby postaci 2p − 1, gdzie p jest liczbą pierwszą nazywają się liczbami
Mersenne’a i oznaczamy je przez Mp . W 1644 roku Mersenne pisał, że dla
p = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127 i 257 liczby Mp są pierwsze, a dla pozostałych p < 257 złożone. Okazało się, że nie jest to w pełni prawdziwe,
ponieważ M67 oraz M257 są złożone, natomiast M61 , M89 i M107 są pierwsze. Dzisiaj znamy już 34 liczby pierwsze Mersenne’a. Została postawiona
hipoteza, że liczb tych jest nieskończenie wiele. Siedemnastego stycznia 1968
roku liczba 211213 − 1 ukazała się na stemplu pocztowym w mieście Urbana
(USA). Dziesięć lat później kolejna liczba pierwsza 221701 − 1 została odkryta
przez dwoje uczniów z jednego z kalifornijskich liceów. Odpowiedni program
potrzebował 440 godzin na realizację. Największa znana liczba pierwsza jest
czterdziestą czwartą z kolei liczbą pierwszą Mersenne’a.
7.4
Podstawowe twierdzenie arytmetyki
Jak już pokazaliśmy (por. twierdzenie 7.6), każda liczba naturalna może być
przedstawiona w postaci iloczynu liczb pierwszych. Na przykład,
21 = 3 · 7
60 = 22 · 3 · 5
144 = 24 · 32
Wydaje się, że powyższe rozkłady są jednoznaczne, tj. są to jedyne sposoby
zapisu liczb 21, 60 i 144 w postaci iloczynu liczb pierwszych (zmianie może
8
ulec tylko porządek tych liczb pierwszych). Jeżeli ktoś ma wątpliwości co
do tego, to zostaną one szybko rozwiane po przeanalizowaniu dzielników
powyższych liczb. Czy jest tak dla każdej liczby naturalnej? Odpowiedź
na to pytanie stanowi podstawę arytmetyki i teorii liczb.
7.10 Twierdzenie (Podstawowe twierdzenie arytmetyki). Każda liczba naturalna większa od 1 może być zapisana jednoznacznie w postaci iloczynu liczb
pierwszych.
Grupując liczby pierwsze z rozkładu n w potęgi otrzymujemy następujący
7.11 Wniosek. Każda liczba całkowita różna od zera daje się zapisać w
postaci potęg −1 i różnych liczb pierwszych.
¤
Zasadnicze twierdzenie arytmetyki ma wiele konsekwencji, które dostrzeżemy w dalszej części wykładu. Obecnie zajmiemy się podzielnością liczb.
7.12 Lemat. Przypuśćmy, że a = (−1)α0 pα1 1 pα2 2 . . . pαr r . Liczba całkowita b 6=
0 dzieli liczbę a wtedy i tylko wtedy, gdy b = ±pβ1 1 pβ2 2 . . . pβr r , gdzie 0 ≤ βi ≤ αi
oraz 1 ≤ i ≤ r.
Powyższy lemat daje nam możliwość dość szybkiego wypisania wszystkich
dzielników liczby, której rozkład znamy. Na przykład, skoro 144 = 24 · 32 ,
więc (dodatnimi) dzielnikami 144 są
20 · 30 , 21 · 30 , 22 · 30 , 23 · 30 , 24 · 30 ,
20 · 31 , 21 · 31 , 22 · 31 , 23 · 31 , 24 · 31 ,
20 · 32 , 21 · 32 , 22 · 32 , 23 · 32 , 24 · 32 .
7.13 Twierdzenie. Niech a, b ∈ Z. Wówczas jeżeli p | ab, to p | a lub p | b.
Dowód. Z podstawowego twierdzenia arytmetyki wynika, że liczba p występuje w rozkładzie ab, zatem musi ona wystąpić w rozkładzie liczby a lub
w rozkładzie liczby b.
9
7.5
Największy wspólny dzielnik
Największym wspólnym dzielnikiem (NWD) liczb a oraz b, które nie są jednocześnie równe 0 nazywamy liczbę d spełniającą poniższe warunki:
NWD1 d | a oraz d | b;
NWD2 jeżeli c | a oraz c | b, to c ≤ d.
Największy wspólny dzielnik liczb a oraz b zapisujemy NWD(a, b). Zauważmy, że ponieważ każda liczba całkowita różna od 0 dzieli 0, więc wartość
NWD(0, 0) nie jest zdefiniowana. Natomiast, jeśli a 6= 0, to NWD(a, 0) = | a|.
Zauważmy, że NWD(6, 35) = 1. Liczby 6 oraz 35 są względnie pierwsze.
Dokładnie, dwie liczby całkowite nazywamy względnie pierwszymi lub kopierwszymi, jeżeli ich największy wspólny dzielnik jest równy 1. Zauważmy
jeszcze, że ponieważ jeśli d | a, to −d | a, więc największy wspólny dzielnik zawsze jest liczbą dodatnią.
7.14 Lemat. Przypuśćmy, że a, b ∈ Z nie są jednocześnie równe 0. Zachodzą
następujące własności.
(a)
NWD
(a, b) = NWD(b, a);
(b)
NWD
(a, b) = NWD(−a, b);
(c)
NWD
(a, b) = NWD(a − b, b);
(d) jeżeli
NWD
(a, b) = d, to
NWD
¡a
d
,
b
d
¢
= 1.
Dowód. Własności (a) oraz (b) wynikają natychmiast z definicji. Aby udowodnić własność (c), zauważmy że jeśli d = NWD(a, b), to d | a − b oraz d | b,
więc na podstawie warunku NWD2, mamy d ≤ NWD(a − b, b). Podobnie,
jeśli d0 = NWD(a − b, b), to ponieważ a = a − b + b, więc d0 | a oraz d0 | b.
Zatem d0 ≤ NWD(a, b). Ostatecznie mamy NWD(a, b) = d = d0 = NWD(a − b, b).
Aby
własność (d) będziemy postępować nie wprost. Załóżmy, że
¡ a bpokazać
¢
0
NWD
,
=
d
>
1. Zatem d0 | ad i d0 | db . Stąd wynika istnienie takich liczb
d d
k oraz l, że d0 dk = a i d0 dl = b, czyli d0 d dzieli zarówno a jak i b. Tak więc
d0 d ≤ d, a co za tym idzie, d0 ≤ 1 skąd sprzeczność.
Własność (c) powyższego lematu stanowi podstawę algorytmu znajdywania NWD, który przedstawimy później. Zauważmy, że wraz z własnościami
(a), (b) własność (c) daje następujący
10
7.15 Wniosek. Dla dowolnych liczb całkowitych a, b, x, y takich, że ax +
by 6= 0 6= a2 + b2 mamy
NWD
(a, b) = NWD(ax + by, b) = NWD(a, ax + by).¤
Tak więc największy wspólny dzielnik dwóch liczb dzieli każdą kombinację
liniową tych dwóch liczb. W szczególności, jeśli dla liczb a oraz b znajdziemy
takie liczby całkowite x i y, że ax + by = 1, to NWD(a, b) = 1. Powyższy
wniosek zapiszmy w nieco innej formie, która będzie nam potrzebna później
7.16 Wniosek. Dla dowolnych liczb całkowitych a, b, x, y, dla których spełnione jest a2 + b2 6= 0, zachodzi relacja NWD(a, b)|ax + by.
¤
7.17 Przykład. Dla dowolnej liczby naturalnej k, liczby 6k + 1 oraz 5k + 4
są względnie pierwsze. Istotnie, 5(6k + 5) − 6(5k + 4) = 1.
Okazuje się, że można osiągnąć więcej niż napisaliśmy powyżej. Mianowicie NWD dwóch liczb też można zapisać w postaci kombinacji liniowej tych
liczb. Fakt ten będziemy używać wielokrotnie w dalszej części wykładu.
7.18 Twierdzenie. Dla dowolnych dwóch liczb całkowitych a, b ∈ Z, które
nie są równocześnie równe zeru, istnieją takie liczby całkowite x i y, że
NWD
(a, b) = ax + by
Dowód. Możemy założyć, że zarówno a jak i b są dodatnie, gdyż pozostałe
przypadki są albo trywialne, albo sprowadzają się do rozważanego. Rozważmy zbiór
S = {am + bn : m, n ∈ Z} .
Wobec naszego założenia, w S istnieją liczby dodatnie. Niech d będzie najmniejszą z nich. Istnieją zatem liczby całkowite x oraz y, takie że d = ax + by.
Ponieważ a = a · 1 + b · 0 > 0 oraz b = a · 0 + b · 1 > 0, więc a, b ∈ S i d < a
oraz d < b. Pokażemy, że d spełnia warunek NWD1. W tym celu zapiszmy
a = qd + r, gdzie 0 ≤ r < d. Ale wówczas mamy
r = a − qd = (1 − qx)a − qyb.
Ponieważ r ∈ S oraz r < d, więc r musi być równy 0, czyli d | a. Podobnie
pokazujemy, że d | b.
Przypuśćmy teraz, że c | a oraz c | b. Zatem c | ax + by, czyli c | d,
a z lematu 7.1 wynika, że c ≤ d. Zatem NWD2 jest spełniony i d =
NWD(a, b).
11
7.19 Wniosek. Jeśli d = NWD(a, b) oraz c | a, c | b, to c | d.
Dowód. Z twierdzenia 7.18 mamy istnienie liczb całkowitych x, y, takich że
d = ax + by. Skoro c | a oraz c | b więc z lematu 7.1 mamy c | d.
7.6
Najmniejsza wspólna wielokrotność
Najmniejszą wspólną wielokrotnością (NWW) liczb a oraz b, które są różne
od zera nazywamy dodatnią liczbę w spełniającą poniższe warunki:
NWW1 a | w oraz b | w;
NWW2 jeżeli a | c oraz b | c, to w ≤ c.
Zauważmy, że założenie w > 0 jest tu kluczowe, ponieważ gdybyśmy
dopuścili liczby ujemne, to wśród wspólnych wielokrotności liczb a i b nie
znaleźlibyśmy liczby najmniejszej. Zauważmy, że ponieważ nie wolno dzielić
przez 0, więc nie definiujemy NWW liczb, z których choć jedna jest równa 0.
Podstawowe własności NWW są zawarte w poniższym lemacie.
7.20 Lemat. Przypuśćmy, że a, b ∈ Z są różne od 0. Zachodzą następujące
własności.
(a)
NWW
(a, b) = NWW(b, a);
(b)
NWW
(a, b) = NWW(−a, b);
(c)
NWW
(a, b) ≤ | ab|;
(d) jeżeli a | b, to
NWW
(a, b) = | b|.¤
Najmniejsza wspólna wielokrotność nie ma tak dużego znaczenia jak największy wspólny dzielnik. Zwykle wprowadza się NWW jako uzupełnienie
do NWD. Przytoczymy teraz kilka twierdzeń, które łączą te dwa pojęcia, lub
wykorzystują NWW w dowodach własności NWD.
7.21 Twierdzenie. Przypuśćmy, że
a = pα1 1 pα2 2 . . . pαk k
oraz
b = pβ1 1 pβ2 2 . . . pβkk ,
gdzie ai ≥ 0, bi ≥ 0, 1 ≤ i ≤ k. Wówczas
min(α1 ,β1 ) min(α2 ,β2 )
min(αk ,βk )
p2
. . . pk
max(α1 ,β1 ) max(α2 ,β2 )
max(αk ,βk )
p1
p2
. . . pk
NWD
(a, b) = p1
(7.6)
NWW
(a, b) =
(7.7)
12
3593700 15246
1796850 7623
898425 7623
299475 2541
99825
847
33275
847
6655
847
1331
847
1331
121
121
11
11
1
1
1
2
2
3
3
3
5
5
7
11
11
11
Rysunek 7.2: Obliczenia dla NWD i NWW
W powyższym twierdzeniu ,,wyrównaliśmy” rozkłady liczb a i b, tj. liczby
pierwsze, które występują w rozkładzie b, a nie występują w rozkładzie a
zapisaliśmy w rozkładzie a z wykładnikami równymi 0 i vice versa.
Twierdzenie to daje nam algorytm na obliczanie NWD i NWW dwóch
liczb a i b. Aby zastosować ten algorytm, piszemy nasze liczby obok siebie
i dzielimy je (bez reszty – jeśli jest to niewykonalne, to nie dzielimy) przez
kolejne liczby pierwsze. Jeśli p - a i p - b, to liczby p nie bierzemy pod uwagę.
Jeśli p | b lub p | a, to p jest czynnikiem wspólnej wielokrotności liczb a i
b. Jeżeli p | a i p | b, to p jest czynnikiem NWD(a, b). W praktyce wygląda
to jak na rysunku 7.2 (czynniki, które liczą się tylko do NWD umieściliśmy
w kwadracie). Mamy
(3593700, 15246) = 2 · 32 · 112
2
3
2
3
NWW(3593700, 15246) = 2 · 3 · 5 · 7 · 11
NWD
= 2178
= 25155900.
Ponieważ min(α, β) + max(α, β) = α + β, więc zachodzi następujący
7.22 Wniosek. Dla dowolnych, różnych od zera liczb całkowitych a, b zachodzi następujący wzór
NWD
(a, b)NWW(a, b) = | ab|.¤
Następny wniosek jest uogólnieniem twierdzenia 7.13.
13
7.23 Wniosek. Jeżeli a | bc oraz
NWD
(a, c) = 1, to a | b.
Dowód. Ponieważ NWD(a, c) = 1, więc istnieją liczby całkowite x, y, takie że
ax + cy = 1. Stąd mamy abx + bcy = b. Ponieważ a | abx oraz a | bcy (skoro a | c), więc a | b.
7.7
Algorytm Euklidesa
Przedstawiony w poprzednim rozdziale algorytm znajdywania NWD jest
dosyć kłopotliwy. W rezultacie sprowadza on się do znalezienia rozkładu
liczb na czynniki pierwsze, co przy dużych liczbach staje się problemem
bardzo trudnym. Okazuje się że istnieje dość prosty algorytm, który działa dość szybko.
Mając dane dwie liczby naturalne a oraz b, takie że |a| > |b|, przyjmujemy
r−1 = a, r0 = b a następnie definiujemy rekurencyjnie liczby r1 , r2 , . . . jako
kolejne reszty z dzielenia rk−1 przez rk . Mamy zatem
rk−1 = qk+1 rk + rk+1 .
(7.8)
Zauważmy, że dla pewnego n mamy rn = 0 ponieważ | · | przyjmuje tylko
wartości nieujemne oraz |rk | > |rk+1 |. Pokażemy, że ostatni niezerowy element ciągu {rk } to NWD(a, b).
7.24 Twierdzenie. Jeżeli ciąg {rk } jest zdefiniowany przez (7.8) oraz zachodzi nierówność |r−1 | > |r0 |, to rn−1 ∼ NWD(a, b) = NWD(r−1 , r0 ), przy czym
liczba n jest najwcześniejszym indeksem, dla którego rn = 0.
Dowód. Zauważmy, że ponieważ rn = 0, to rn−1 | rn oraz rn−1 | rn−1 . Z (7.8)
wynika zatem, że rn−1 dzieli każdą z liczb rn−2 , rn−3 , . . . , r−1 . W szczególności rn−1 | NWD(a, b).
Teraz mamy, że NWD(a, b) | r−1 oraz NWD(a, b) | r0 . Ponownie stosując wzór (7.8) dochodzimy do relacji NWD(a, b) | rn−1 . Zatem, ostatecznie
NWD(a, b) jest równy rn−1 .
Powyższe twierdzenie stanowi podstawę Algorytmu Euklidesa. Algorytm
ten polega na sekwencyjnym obliczaniu reszt z dzielenia aż otrzymamy resztę
zerową. Ostatnia niezerowa reszta to NWD.
14
7.25 Przykład. Obliczymy
dzielenia z resztą:
NWD
(54, 21). W tym celu wykonujemy kolejne
54 = 2 · 21 + 12
21 = 1 · 12 + 9
12 = 1 · 9 + 3
9 = 3 · 3 + 0.
(7.9)
Ostatnią niezerową resztą jest 3. Zatem NWD(54, 21) = 3. Działanie algorytmu można czasami przyśpieszyć dopuszczając ujemne reszty, a mianowicie,
54 = 3 · 21 − 9
21 = 2 · 9 + 3
9 = 3 · 3 + 0.
(7.10)
Zauważmy, że w (7.10) wykonaliśmy trzy dzielenia, czyli o jedno dzielenie
mniej niż w (7.9).
Jak wiadomo z twierdzenia 7.18, dla dowolnych dwóch liczb a, b istnieją
x, y, takie że ax+by = NWD(a, b). Twierdzenie 7.18 nie daje jednak algorytmu
na znalezienie elementów x oraz y. Z drugiej strony, elementy te są bardzo
przydatne. Na szczęście, można je znaleźć analizując dzielenia z algorytmu
Euklidesa. Na przykład,
9 = 3 · 21 + (−1) · 54
3 = 1 · 21 + (−2) · 9.
Stąd
NWD
(54, 21) = 3 = 1 · 21 + (−2) · 9
= 1 · 21 + (−2) · (3 · 21 + (−1) · 54)
= (−5) · 21 + 2 · 54
i szukanymi liczbami x, y są −5 i 2.
15
7.8
Podstawy arytmetyki modulo m
Podstawową ideą arytmetyki jest zredukowanie skomplikowanych obliczeń.
Jednym ze sposobów jest zastąpienie działań na liczbach przez działania na
resztach z dzielenia tych liczb przez inną liczbę. Na przykład, aby stwierdzić
jaka jest ostatnia cyfra sumy 128+345 nie trzeba wykonywać całego dodawania, tylko dodać ostatnie cyfry liczb 128 i 345, tj. reszty z dzielenia tych liczb
przez 10. Otrzymujemy 8 + 5 = 13, czyli ostatnią cyfrą naszej sumy jest 3.
Sprawdźmy teraz, czy liczba 223837653 jest kwadratem innej liczby. Jeśli
tak, to jej ostatnią cyfrą jest jedna z ostatnich cyfr liczb 0 · 0 = 0, 1 · 1 = 1,
2 · 2 = 4, 3 · 3 = 9, 4 · 4 = 16, 5 · 5 = 25, 6 · 6 = 36, 7 · 7 = 49, 8 · 8 = 64,
9 · 9 = 81, czyli 0, 1, 4, 5, 6 lub 9. Ponieważ 3 tam nie ma, więc 223837653
nie jest kwadratem liczby całkowitej.
Wprowadźmy teraz oznaczenie m mod n dla reszty z dzielenia liczby całkowitej m przez liczbę całkowitą n różną od zera. Z działania tego korzystamy
często w życiu codziennym: Jeśli teraz jest godzina 10.45, to za pół godziny
będzie godzina 11 minut (45 + 30) mod 60, czyli 15.
Symbol ,, mod ” oznacza działanie arytmetyczne. Kiedy w następniku
tego działania ustalimy liczbę m, a za poprzednik będziemy brali kolejne
liczby całkowite, to zauważymy, że wynik działania powtarza się co m liczb.
Liczby, które dają ten sam wynik, gdy podziała się na nie tą samą liczbą m,
nazywamy przystającymi modulo m. Przypuśćmy, że a, b, m 6= 0 są liczbami
całkowitymi. Mówimy, że a przystaje do b modulo m, co zapisujemy
a≡b
(mod m),
(7.11)
jeśli m | a − b. Zapis 7.11 nazywamy kongruencją. liczbę m nazywamy
modułem kongruencji.
7.26 Przykład. Ponieważ 9 | 23 − 14, więc 23 ≡ 14 (mod 9). Mamy też
23 ≡ 14 (mod 3). Każde dwie liczby ze zbioru {. . . , −4, 5, 14, 23, 32, . . . }
przystają do siebie modulo 9.
Każde dwie liczby całkowite a oraz b przystają do siebie modulo 1 oraz
modulo −1. Mamy więc a ≡ b (mod 1) oraz a ≡ b (mod −1).
Ponieważ a ≡ b (mod m) implikuje a ≡ b (mod −m), więc rozważamy
tylko dodatnie moduły.
Zauważmy, że kongruencja (7.11) oznacza, że a oraz b dają takie same
reszty przy dzieleniu przez m, czyli a mod m = b mod m. Istotnie, zapiszmy
16
a = q1 m + r1 , b = q2 m + r2 , gdzie 0 ≤ r1 < m, 0 ≤ r2 < m. Stąd
a mod m = r1 , b mod m = r2 . Zatem a − b = m(q1 − q2 ) + (r1 − r2 ). Skoro
m | a − b, więc m | r1 − r2 . Ponieważ | r1 − r2 | < m, więc r1 − r2 = 0.
Jeżeli m - a − b, to fakt ten zapisujemy a 6≡ b (mod m) i mówimy, że
a nie przystaje do b modulo m.
Ustalmy teraz liczbę m i zdefiniujmy na zbiorze Z relację ρ następująco:
aρb ⇐⇒ a ≡ b
(mod m)
(7.12)
7.27 Twierdzenie. Relacja zdefiniowana w (7.12) jest relacją równoważności. Klasy abstrakcji tej relacji tworzą zbiór reszt modulo m.
Zbiór ilorazowy relacji (7.12) oznaczamy Z/mZ lub Zm . Zatem Z5 składa
się z następujących zbiorów:
[0] = {. . . , −10, −5, 0, 5, 10, 15, . . . } ,
[1] = {. . . , −9, −4, 1, 6, 11, 16, . . . } ,
[2] = {. . . , −8, −3, 2, 7, 12, 17, . . . } ,
[3] = {. . . , −7, −2, 3, 8, 13, 18, . . . } ,
[4] = {. . . , −6, −1, 4, 9, 14, 19, . . . } .
Zazwyczaj utożsamiamy elementy 0, 1, 2, 3, 4 z klasami abstrakcji, które są
przez nie reprezentowane. Piszemy więc Z5 = {0, 1, 2, 3, 4}.
7.9
Własności arytmetyczne kongruencji
Okazuje się, że kongruencjami można manipulować bez wyrażania liczb za
pomocą reszt i ilorazów częściowych. Przy ustalonym module m, kongruencje
można dodawać, odejmować i mnożyć stronami.
7.28 Twierdzenie. Dla dowolnych liczb całkowitych a, b, c, d oraz m 6= 0
jeśli a ≡ b (mod m) oraz c ≡ d (mod m), to również
(a) a + c ≡ b + d (mod m),
(b) a − c ≡ b − d (mod m),
(c) ac ≡ bd (mod m).
17
Ponieważ c ≡ c (mod m), więc punkt (c) powyższego twierdzenia implikuje następujący wniosek.
7.29 Wniosek. Dla dowolnych liczb całkowitych a, b, c oraz m 6= 0, jeżeli
a ≡ b (mod m), to ac ≡ bc (mod m).
¤
Potęgowanie o wykładniku naturalnym jest wielokrotnym mnożeniem.
Dlatego mamy kolejny
7.30 Wniosek. Dla dowolnych liczb całkowitych a, b, m 6= 0 oraz liczby
naturalnej k, jeżeli a ≡ b (mod m), to ak ≡ bk (mod m).
¤
Twierdzenie 7.28 oraz wnioski po nim implikują następujące twierdzenie,
które będziemy później często używać.
7.31 Twierdzenie. Przypuśćmy, że dany jest wielomian f (x) o współczynnikach w zbiorze liczb całkowitych. Jeśli a ≡ b (mod m) jest prawdziwa, to
zachodzi też kongruencja f (a) ≡ f (b) (mod m).
¤
7.32 Przykład. Jaka jest ostatnia cyfra liczby 323 ? Ponieważ
32 ≡ 9 (mod 10),
34 ≡ 7 · 3 ≡ 1 (mod 10),
3 ≡ 3 (mod 10),
3
3 ≡ 9 · 3 ≡ 7 (mod 10),
35 ≡ 1 · 3 ≡ 3 (mod 10),
więc cyfry w kolejnych potęgach liczby 3 powtarzają się cyklicznie co cztery.
Zatem 323 ma ostatnią cyfrę taką samą jak 33 , czyli 7.
7.33 Przykład. Znajdziemy, praktycznie w pamieci, 232 mod 17. Zauważmy, że 24 ≡ −1 (mod 17). Zatem 28 = 24 · 24 ≡ (−1) · (−1) = 1 (mod 17).
Podobnie dostajemy 216 ≡ 1 (mod 17) oraz 232 ≡ 1 (mod 17). Zatem
232 mod 17 = 1.
7.10
Dalsze własności kongruencji
Jak do tej pory, zauważyliśmy, że kongruencje można dodawać, odejmować
i mnożyć stronami. Czy można je dzielić stronami? Prosty przykład daje
odpowiedź negatywną. Rozważmy kongruencje 22 ≡ 18 (mod 4) oraz 11 ≡ 3
(mod 4). Niestety, 2 6≡ 9 (mod 4). Co więcej, kongruencji nie wolno, w
ogólnej sytuacji, skracać, czyli dzielić obu jej stron przez tę samą liczbę. Np.
6 ≡ 14 (mod 8), ale 3 6≡ 7 (mod 8). Jak się okazuje, kongruencję można
skrócić, ale tylko przy pewnych dodatkowych założeniach.
18
7.34 Twierdzenie. Przypuśćmy, że c jest dodatnią liczbą całkowitą oraz
ac ≡ bc (mod m) dla pewnych liczb a, b oraz m > 0. Wówczas zachodzi
m
kongruencja a ≡ b (mod NWD(m,
).
c)
Wracając do przykładu poprzedzającego powyższe twierdzenie, docelowa
kongruencja, to 3 ≡ 7 (mod 4). W szczególności, każdą kongruencję można
skracać przez liczbę względnie pierwszą z modułem.
Przedstawimy jeszcze kilka zastosowań kongruencji, które upraszczają
skomplikowane przeliczenia.
7.35 Przykład. Pokażemy, że 3 | n3 − n dla dowolnej liczby n ∈ N. Zwykle
udowadnia się to stosując indukcję matematyczną. Prościej jest jednak zastosować kongruencje. Dokładnie, mamy udowodnić, że n3 ≡ n (mod 3).
Każda liczba n przystaje modulo 3 do jednej z liczb 0, 1 lub 2. Wystarczy
więc rozważyć 3 przypadki.
03 ≡ 0 (mod 3),
13 ≡ 1 (mod 3),
23 ≡ 8 ≡ 2
(mod 3).
Zatem 3 | n3 − n. Zauważmy jeszcze, że n3 − n jest liczbą parzystą, więc
6 | n3 − n.
7.36 Przykład. Okazuje się, że kart nie można potasować stosując konsekwentnie i dokładnie tę samą regułę tasowania. Załóżmy, że talię 52 kart
dzielimy na dwie części po 26 (pierwsza część zawiera karty ponumerowane
od 1 do 26, a druga – od 27 do 52), a następnie tasujemy na przemian.
W rezultacie otrzymujemy karty potasowane w kolejności 27, 1, 28, 2, 29,
3, . . . Kolejność tę można opisać za pomocą funkcji f (i) = 2i, ale tylko
dla kart o numerach od 1 do 26. Karta o numerze 27 przechodzi na pozycję pierwszą, więc lepszym wzorem jest f (i) = 2i mod 53. Zatem f (i) ≡ 2i
(mod 53). Jeśli karty potasujemy dwa razy otrzymamy
¡
¢
f f (i) ≡ 2(2i) ≡ 22 i (mod 53).
Po przetasowaniu kart k razy, i-ta karta przejdzie na 2k i-tą kartę. Obliczymy
252 mod 53. Mamy
24
28
216
232
248
252
2
≡ 16
≡ (−9)2
≡ (−25)2
≡ (−11) · (−25)
≡ 10 · 16
≡ 44
≡ 81
≡ 625
≡ 275
≡ 160
19
≡ 16
≡ −9
≡ −25
≡ −11
≡ 10
≡1
(mod
(mod
(mod
(mod
(mod
(mod
53)
53)
53)
53)
53)
53).
Zatem po przetasowaniu kart 52 razy, i-ta karta przechodzi na i-tą kartę,
czyli otrzymujemy pierwotny układ kart.
Często się zdarza, że trzeba łączyć kongruencje o różnych modułach. Jeśli
a ≡ b (mod m) oraz a ≡ b (mod n), to nie musi koniecznie zachodzić a ≡ b
(mod mn). Na przykład, 2 ≡ 10 (mod 8), 2 ≡ 10 (mod 4), ale 2 6≡ 10
(mod 32). Potrzebne jest tu dodatkowe założenie.
7.37 Twierdzenie. Przypuśćmy, że
a≡b
(mod m) oraz a ≡ b
NWD
(m, n) = 1. Wówczas
(mod n)
⇔
a ≡ b (mod mn).
Powyższe twierdzenie pozwala rozbijać kongruencje o dużych złożonych
modułach na kongruencje o niższych modułach pierwszych. Jest to o tyle
istotne, że łatwiej jest wydedukować coś na temat podzielności przez liczbę
pierwszą niż przez liczbę złożoną. Na przykład, aby sprawdić, czy 1729
przystaje do 1 modulo 12, wystarczy sprawdzić, czy zachodzą kongruencje
1729 ≡ 1 (mod 3) oraz 1729 ≡ 1 (mod 4). Jest to łatwe, ponieważ cechy
podzielności przez 3 i 4 są łatwe w zastosowaniu. Ponieważ liczba 1728 dzieli
się zarówno przez 3 jak i przez 4, więc wspomniane kongruencje zachodzą.
7.11
Liczby odwrotne modulo m
Podobnie jak równania można też rozwiązywać kongruencje. Generalnie,
jeżeli dany jest moduł m oraz funkcja f określona w zbiorze liczb całkowitych i o wartościach całkowitych, to pytamy jak znaleźć x, aby spełniona
była kongruencja f (x) ≡ 0 (mod m). W tym podrozdziale zajmiemy się
kongruencjami liniowymi, czyli takimi, dla których f (x) = ax + b, gdzie a,
b ∈ Z. Aby uprościć zapis będziemy dalej pisać kongruencje liniowe w postaci
ax ≡ b
(mod m)
(7.13)
Przypomnijmy, że w zbiorze liczb rzeczywistych, aby rozwiązać równanie
ax = b, mnożyliśmy obie jego strony przez liczbę odwrotną do a (o ile taka
istniała, a nie istniała tylko dla a = 0). Podobnie będziemy postępować
w przypadku kongruencji liniowych.
Liczbę a0 nazywamy odwrotną do a modulo m, jeżeli a0 a ≡ 1 (mod m).
Jeśli taka liczba a0 istnieje, to liczbę a nazywamy odwracalną modulo m.
Liczbę odwrotną do a modulo m będziemy oznaczać a−1 mod m.
20
7.38 Przykład.
1. Ponieważ 2 · 6 ≡ 1 (mod 11), więc 6 jest liczbą odwrotną do 2 modulo
11 oraz 2 = 6−1 mod 11.
2. Liczbą odwrotną do 3 modulo 8 jest 3, ponieważ 3 · 3 ≡ 1 (mod 8).
3. Liczba 2 nie jest odwracalna modulo 8, ponieważ jeśli 2a0 ≡ 1 (mod 8),
to oznacza to, że 8 | 2a0 − 1, czyli 8 dzieli liczbę nieparzystą, co nie jest
prawdą.
Ostatni przykład pokazuje, że liczba całkowita a nie musi mieć liczby
odwrotnej modulo m. W następnym twierdzeniu pokażemy, kiedy liczby
odwrotne modulo m istnieją.
7.39 Twierdzenie. Liczba całkowita a jest odwracalna modulo m wtedy i
tylko wtedy, gdy NWD(a, m) = 1.
Dowód ⇒. Skoro istnieje taka liczba a0 , że aa0 ≡ 1 (mod m), to istnieje też
taka liczba całkowita k, że aa0 − 1 = km, albo aa0 − km = 1. Z wniosku 7.16
wynika, że NWD(a, m) = 1.
⇐. Jeśli NWD(a, m) = 1, to istnieją liczby całkowite x oraz y takie, że
ax + my = 1, czyli m | ax − 1. Zatem x = a−1 mod m.
Dowód tego twierdzenia mówi, że aby obliczyć liczbę odwrotną do a
modulo m należy znaleźć takie liczby x oraz y, żeby zachodziła równość
ax+by = 1. Liczby te znajdujemy stosując algorytm Euklidesa. Dla przykładu, znajdźmy 11−1 mod 31. W tym celu wykonujemy następujące obliczenia:
31 = 3 · 11 − 2
11 = 5 · 2 + 1
2 = 3 · 11 − 31
1 = 11 − 5 · 2.
Tak więc 1 = 11 − 5 · 2 = 11 − 5 · (3 · 11 − 31) = 5 · 31 − 14 · 11. Zatem
liczbą odwrotną do 11 modulo 31 jest −14. Zauważmy, że również 17 jest
liczbą odwrotną do 11 modulo 31. Ponieważ zapis a−1 mod m wymaga jednoznaczności, więc przyjmijmy, że 0 ≤ a−1 mod m < m. Zatem, zgodnie z tą
umową, 11−1 mod 31 = 17. Jest jeszcze pewne niedomówienie, które wyjaśni
następujące twierdzenie.
7.40 Twierdzenie. Jeśli aa0 ≡ 1 (mod m), oraz aa00 ≡ 1 (mod m), to liczby
a0 i a00 różnią się o wielokrotność m.
21
Dowód. Przypuśćmy, że a0 − a00 = qm + r dla q ∈ Z oraz 0 ≤ r ≤ m − 1.
Mamy aa0 − aa00 = aqm + ar, albo aa0 − aa00 ≡ ar (mod m). Zatem zachodzi
0 ≡ ar (mod m), czyli m | ar. Skoro jednak NWD(a, m) = 1, więc m | r, a to
oznacza, że r = 0.
Z powyższego twierdzenia wynika, że jeśli liczba odwrotna do a modulo m
istnieje, to jest ona jednoznacznie określona w Zm .
Wróćmy teraz do kongruencji (7.13). Ma ona rozwiązanie, jeśli liczba a
jest odwracalna modulo m. Aby znaleźć to rozwiązanie, należy pomnożyć
obie strony kongruencji (7.13) przez jakąkolwiek liczbę odwrotną do a.
7.41 Przykład. Rozwiążemy 3x ≡ 5 (mod 13). Wykorzystując algorytm
Euklidesa, otrzymujemy 3 · 9 − 13 · 2 = 1. Zatem 9 jest liczbą odwrotną do
3 modulo 13. Mnożąc obie strony naszej kongruencji przez 9 otrzymujemy
x ≡ 9 · 5 ≡ 6 (mod 13). Zatem 6 (i każda liczba, która się różni od 6
o wielokrotność 13) jest rozwiązaniem naszej kongruencji.
7.12
Chińskie twierdzenie o resztach
Twierdzenie, które tu przedstawimy zostało odkryte i wykorzystywane w średniowiecznych Chinach. Przyczyną tego odkrycia były trudności z mnożeniem i dodawaniem dużych liczb – łatwiej jest nauczyć się na pamięć kilku
kombinacji, niż wykonywać działania arytmetyczne w pamięci. A dokładnie, kiedy dowódca chciał zliczyć swoje wojsko, kazał ustawić się żołnierzom
w dwu-szeregu, następnie w trzy-szeregu, potem w pięcio-szeregu itd. Liczba
,,niesparowanych” żołnierzy w każdym z tych ustawień (czyli reszty z dzielenia
ogólnej liczby żołnierzy przez 2, 3, 5, . . . ) dawały liczbę wszystkich żołnierzy.
Żeby skonkretyzować nasze myślenie, rozważmy następujący przykład.
7.42 Przykład. Po ustawieniu całego wojska w 3-, 5- i 7-szeregu dostaliśmy, odpowiednio 2, 1 oraz 6 niesparowanych żołnierzy. Jaka jest liczebność
oddziału, jeżeli wiadomo, że żołnierzy jest mniej niż 100?
Formalizując zadanie, niech x będzie liczbą żołnierzy. Zatem reszty z dzielenia x przez 3, 5 oraz 7, to 2, 1 i 6. Stąd
x ≡ 2 (mod 3)
x ≡ 1 (mod 5)
x ≡ 6 (mod 7)
22
(7.14)
(7.15)
(7.16)
Powyższy system trzech kongruencji rozwiążemy korzystając z dowodu następnego twierdzenia.
7.43 Twierdzenie (Chińskie twierdzenie o resztach). Przypuśćmy, że m1 ,
m2 , . . . , mr są parami względnie pierwsze. Wówczas układ kongruencji
x ≡ a1
x ≡ a2
..
.
x ≡ ar
(mod m1 )
(mod m2 )
(7.17)
(mod mr )
ma jednoznaczne rozwiązanie modulo m1 m2 . . . mr .
Dowód. Wprowadźmy następujące oznaczenia: M = m1 m2 . . . mr , Mi =
xi = Mi−1 mod mi dla 1 ≤ i ≤ r. Rozważmy teraz liczbę
M
,
mi
x = a1 M1 x1 + a2 M2 x2 + · · · + ar Mr xr .
Ponieważ dla j 6= i zachodzi Mj ≡ 0 (mod xi ), więc x ≡ ai Mi xi (mod mi )
dla każdego i. Ale Mi xi ≡ 1 (mod mi ), więc x ≡ ai (mod mi ) dla 1 ≤ i ≤ r.
Pozostaje jeszcze udowodnić jednoznaczność. Niech x1 oraz x2 będą
dwoma rozwiązaniami układu (7.17). Zatem x1 ≡ x2 (mod mi ) dla 1 ≤
i ≤ r. Stąd mi | x1 − x2 , a ponieważ m1 , m2 , . . . mr są względnie pierwsze,
więc M | x1 − x2 . Zatem dwa rozwiązania (7.17) różnią się o wielokrotność
M i układ ten ma jednoznaczne modulo M rozwiązanie.
W odróżnieniu od dowodów wielu innych podobnych twierdzeń, dowód
chińskiego twierdzenia o resztach daje wzór na rozwiązanie układu kongruencji.
7.44 Przykład. Rozważmy układ kongruencji z przykładu 7.42. Stosując
oznaczenia dowodu twierdzenia 7.43, mamy M = 105 oraz
i
mi
ai
Mi
xi
1
2
3
3
5
7
2
1
6
35
21
15
2
1
1
23
Stąd
x ≡ 2 · 35 · 2 + 1 · 21 · 1 + 6 · 15 · 1
≡ 140 + 21 + 90
≡ 251
≡ 41
(mod
(mod
(mod
(mod
105)
105)
105)
105).
Założenie o kopierwszości modułów jest dość istotnym ograniczeniem.
Na przykład, układu kongruencji
x ≡ 3 (mod 8)
x ≡ 7 (mod 12)
(7.18)
nie można rozwiązać stosując twierdzenia 7.43, ponieważ 8 oraz 12 nie są
względnie pierwsze. Nie oznacza to jednak, że układ ten nie ma rozwiązania.
Rozwiążemy go w następnym przykładzie.
7.45 Przykład. Aby rozwiązać układ kongruencji 7.18 zapiszmy najpierw
12 = 4 · 3 i rozbijmy drugą kongruencję układu na dwie kongruencje x ≡ 7
(mod 4) i x ≡ 7 (mod 3). Mamy zatem układ trzech kongruencji
x ≡ 3 (mod 8)
x ≡ 3 (mod 4)
x ≡ 1 (mod 3).
(7.19)
Ale rozwiązanie pierwszej kongruencji układu (7.19) spełnia też drugą kongruencję, więc druga kongruencja jest niepotrzebna. Otrzymujemy więc równoważny (7.18) układ kongruencji
x≡3
x≡1
(mod 8)
(mod 3).
Ostatni układ rozwiązujemy stosując chińskie twierdzenie o resztach (7.43),
otrzymując x ≡ 19 (mod 24).
7.13
Kongruencje stopnia 2
Rozważmy następujący przykład
24
7.46 Przykład. Chcemy znaleźć wszystkie liczby n, których ostatnie trzy
cyfry są takie same jak w n2 . Od razu zauważamy, że takimi liczbami są
0 oraz 1. Po chwili zauważamy też, że 1000, 1001 i wszystkie liczby kończące
się na 000 lub 001 mają wymaganą własność. Dochodzimy więc do kongruencji
n ≡ n2 (mod 1000),
(7.20)
której rozwiązanie da nam wszystkie szukane liczby. Jest to kongruencja
drugiego stopnia (f (n) = n − n2 ). Jej rozwiązaniami (modulo 1000) są 0, 1,
376, 625.
Gdyby w przykładzie 7.46 moduł był mały, to kongruencję (7.20) rozwiązalibyśmy podstawiając za n wszystkie nieujemne liczby całkowite mniejsze
od m. Metoda ta nie pracuje, jeśli m jest dużą liczbą. W rozdziale tym
pokażemy, że kongruencje o modułach złożonych można zredukować do kongruencji o modułach pierwszych. To pozwoli nam rozwiązać niektóre kongruencje. Nie będziemy tu wprowadzać skomplikowanej teorii pozwalającej
nam rozwiązać każdą kongruencję.
Pierwiastkiem modulo m wielomianu f (x) o współczynnikach całkowitych
nazywamy taką liczbę r, że f (r) ≡ 0 (mod m). Jeśli r jest pierwiastkiem
wielomianu f (x) modulo m oraz r ≡ r0 (mod m), to z twierdzenia 7.31
wynika, że f (r) ≡ f (r0 ) (mod m), czyli r0 też jest pierwiastkiem wielomianu f (x) modulo m. Nasze rozważania na temat pierwiastków będziemy
ograniczać do Zm i mówiąc ,,rozwiązanie” mamy na myśli rozwiązanie modulo m.
Przykłady.
7.47. Wielomian x2 + 2 nie ma pierwiastków modulo 7. Sprawdzamy to
podstawiając za x kolejne liczby 0, 1, 2, 3, 4, 5, 6.
7.48. Wielomian x2 − 2 ma w Z7 dokładnie dwa pierwiastki: 3 i 4.
Zauważmy, że wielomian f (x) z przykładu 7.46 był stopnia drugiego i miał
dokładnie 4 pierwiastki modulo 1000. Jak wiadomo, w ciałach liczbowych,
wielomian nie może mieć więcej pierwiastków niż jego stopień. W szczególności, wielomian stopnia 2 nie może mieć trzech pierwiastków.
7.49. Wielomian x2 − 1 ma w Z12 cztery pierwiastki: 1, 5, 7 oraz 11.
25
Rozważymy teraz metodę redukcji modułu złożonego m na moduły będące potęgami liczb pierwszych z rozkładu m. Jeśli m = pα1 1 pα2 2 . . . pαk k , to
kongruencja f (x) ≡ 0 (mod m) implikuje k kongruencji f (x) ≡ 0 (mod pαi i ),
gdzie 1 ≤ i ≤ k. Odwrotna implikacja także zachodzi, ponieważ potęgi
różnych liczb pierwszych są kopierwsze.
7.50 Przykład. Rozważmy kongruencję x2 ≡ 1 (mod 105). Ponieważ 105 =
3 · 5 · 7, więc nasza kongruencja jest równoważna układowi trzech kongruencji
x2 ≡ 1 (mod 3)
x2 ≡ 1 (mod 5)
x2 ≡ 1 (mod 7).
Każdą z powyższych kongruencji rozwiązujemy podstawiając kolejne liczby
i otrzymujemy w trzech przypadkach po dwa rozwiązania: 1 i 2 modulo 3,
1 i 4 modulo 5 oraz 1 i 6 modulo 7. Dowolna kombinacja tych rozwiązań
daje rozwiązanie modulo 105. Oznaczmy przez r pierwiastek wielomianu
x2 − 1 modulo 105. r jest jednym z rozwiązań ośmiu poniższych układów
kongruencji.
r ≡ 1 (mod 3)
r ≡ 1 (mod 5)
r ≡ 1 (mod 7),
r ≡ 2 (mod 3)
r ≡ 1 (mod 5)
r ≡ 1 (mod 7),
r ≡ 2 (mod 3)
r ≡ 4 (mod 5)
r ≡ 1 (mod 7),
r ≡ 2 (mod 3)
r ≡ 1 (mod 5)
r ≡ 6 (mod 7),
r ≡ 1 (mod 3)
r ≡ 4 (mod 5)
r ≡ 1 (mod 7),
r ≡ 1 (mod 3)
r ≡ 1 (mod 5)
r ≡ 6 (mod 7),
r ≡ 1 (mod 3)
r ≡ 4 (mod 5)
r ≡ 6 (mod 7),
r ≡ 2 (mod 3)
r ≡ 4 (mod 5)
r ≡ 6 (mod 7).
Rozwiązaniami (modulo 105) tych układów kongruencji są, kolejno, 1, 71,
64, 29, 76, 41, 34 i 104.
Wracając do przykładu 7.46, kongruencja 7.20 jest równoważna układowi
kongruencji
n ≡ n2 (mod 23 )
(7.21)
n ≡ n2 (mod 53 ).
26
Pierwszą kongruencję z (7.21) możemy jeszcze rozwiązać podstawiając kolejne liczby od 0 do 7. Przy drugiej kongruencji metoda ta zawodzi ze względu
na zbyt wiele liczb. Zastosujemy więc inną metodę. Ponieważ kongruencję
n ≡ n2 (mod 5) spełniają dwie liczby (modulo 5) 0 oraz 1, więc kongruencję
n ≡ n2
(mod 52 )
(7.22)
spełniają liczby postaci 0 + 5k1 oraz 1 + 5l1 . Podstawiamy te liczby do (7.22)
otrzymując 5k1 ≡ 0 (mod 52 ) oraz 5l1 ≡ 10l1 (mod 52 ). Stąd kongruencje
k1 ≡ 0 (mod 5) i l1 ≡ 2l1 (mod 5), które dają k1 = 0 oraz l1 = 0. Mamy
zatem 2 rozwiązania modulo 25: 0 oraz 1. Rozwiązaniami modulo 125 drugiej
kongruencji z (7.22) są liczby postaci 52 k2 oraz 1 + 52 l2 . Wykonując podobne
obliczenia jak powyżej dostajemy dwa rozwiązania: 0 i 1. Aby rozwiązać
zadanie postawione w przykładzie 7.46, wystarczy rozwiązać cztery układy
kongruencji
r ≡ e1
r ≡ e2
(mod 23 )
(mod 53 ),
gdzie za e1 oraz e2 podstawiamy 0 lub 1. Cztery szukane rozwiązania to 0,
1, 376 i 625.
7.51 Przykład. Rozwiążemy kongruencję
x2 + 4x + 2 ≡ 0 (mod 49).
(7.23)
Mamy tutaj f (x) = x2 +4x+2 oraz 49 = 72 . Zaczynamy więc od kongruencji
x2 + 4x + 2 ≡ 0 (mod 7), dla której znajdujemy rozwiązanie podstawiając
po kolei wszystkie liczby od 0 do 6. Znajdujemy dwa pierwiastki x1 = 1
oraz x2 = 2. Zatem pierwiastki kongruencji (7.23), to 1 + 7k oraz 2 + 7l.
Podstawiajac je do (7.23) otrzymujemy
42k ≡ −7 (mod 49) oraz 7l ≡ −14
(mod 49),
co redukuje się do
6k ≡ −1 (mod 7) oraz l ≡ −2 (mod 7)
i ostatecznie daje rozwiązania x1 = 8 oraz x2 = 37.
27
7.52 Przykład. Rozwiążemy kongruencję
x2 + x + 7 ≡ 0
(mod 9).
(7.24)
Jedynym pierwiastkiem kongruencji x2 + x + 7 ≡ 0 (mod 3) jest x0 = 1. Ale
zapisując x = 1 + 3k i podstawiając do (7.24), otrzymujemy 0 ≡ 0 (mod 9),
więc x1 = 1 + 3 · 0 = 1, x2 = 1 + 3 · 1 = 4 oraz x3 = 1 + 3 · 2 = 7 są
pierwiastkami (7.24).
7.53 Przykład. Poszukamy pierwiastków kwadratowych z 1 modulo 16.
Rozważymy więc wielomian f (x) = x2 − 1. Modulo 8, ma on 4 pierwiastki:
x01 = 1, x02 = 3, x03 = 5 i x04 = 7. Dalej szukamy ki , gdzie xi = x0i + 8ki
oraz f (xi ) ≡ 0 (mod 16) dla i ∈ {1, 2, 3, 4}. Otrzymujemy sprzeczność dla
k2 i k3 oraz 0 ≡ 0 (mod 16) dla k1 i k2 . Zatem pierwiastkami kwadratowymi
z jedynki modulo 16 są 1, 9, 7 i 15.
Zakończymy ten podrozdział jeszcze jednym przykładem, który ma duże
znaczenie w kryptografii.
7.54 Przykład. Przypuśćmy, że p i q są różnymi liczbami pierwszymi oraz
n = pq. Wówczas kongruencja x2 ≡ 1 (mod n) ma dokładnie 4 rozwiązania,
ponieważ każda z kongruencji x2 ≡ 1 (mod p) oraz x2 ≡ 1 (mod q) ma
dokładnie dwa rozwiązania. Rozwiązania ±1 nazywamy trywialnymi. Jeśli
x jest nietrywialnym rozwiązaniem, to NWD(x − 1, n) oraz NWD(x + 1, n) są
liczbami p i q. Zatem jeśli znamy nietrywialne rozwiązanie kongruencji x2 ≡ 1
(mod n), to znamy też rozkład liczby n. Odwrotnie, jeśli znamy rozkład
liczby n, czyli p oraz q, to rozwiązania kongruencji x2 ≡ 1 (mod n) możemy
otrzymać korzystając z chińskiego twierdzenia o resztach dla czterech układów kongruencji:
x ≡ e1
(mod p),
x ≡ e2
(mod q)
dla e1 , e2 ∈ {0, 1}.
7.14
Zastosowanie chińskiego twierdzenia o resztach do gry w orła i reszkę
Wykorzystamy tu stosunkowo małe liczby, żeby cały czas kontrolować przebieg gry. Niech więc n = 341 = 11 · 31. Powróćmy do Alicji i Stefana, którzy
się już pojawili na tym wykładzie. Liczby 11 oraz 31 są znane Alicji, a Stefan
zna tylko ich iloczyn, tj. 341.
28
1. Stefan wybiera losowo liczbę 0 < x ≤ 340 i oblicza wartość x2 . Załóżmy,
że x = 134, więc x2 = 224. Alicja otrzymuje tylko liczbę 224.
2. Alicja po otrzymaniu y = 224 oraz wiedząc, że 341 = 11 · 31, oblicza
cztery pierwiastki równania x2 = 224 modulo 341. Robi to w następujący sposób. Ponieważ x2 ≡ 224 (mod 341), więc
x2 ≡ 224 ≡ 4 (mod 11)
x2 ≡ 224 ≡ 7 (mod 31)
stąd mamy jedną z czterech możliwości
x ≡ ± 2 (mod 11)
x ≡ ± 10 (mod 31)
Stosując oznaczenia z dowodu chińskiego twierdzenia o resztach rozwiązujemy powyższy układ następująco: a1 = 2, m1 = 11, a2 = 10,
m2 = 31, M = 341. Obliczamy teraz M1 = 31 oraz M2 = 11. Stosując
algorytm Euklidesa lub w inny sposób obliczamy N1 = 6 i N2 = 17.
Teraz już bez trudu otrzymujemy
x = 2 · 31 · 6 + 10 · 11 · 17 = 2242,
co modulo 341 daje 196. Alicja może tę liczbę potraktować jako swoją
szczęśliwą i wysłać ją Stefanowi, lub też obliczyć trzy pozostałe liczby
rozwiązując następujące układy kongruencji
x ≡ −2 (mod 11); x ≡ 2
(mod 11); x ≡ −2 (mod 11);
x ≡ 10 (mod 31); x ≡ −10 (mod 31); x ≡ −10 (mod 31).
Wówczas do dyspozycji będzie miała liczby 196 oraz 134 (także −196
i −134, ale to się nie liczy) i będzie w prawdziwej rozterce decydując,
czy ma wysłać x2 = 196, czy też x1 = 134.
3. Jeśli wysłała x1 = 134 Stefan ma pecha, ponieważ nie zna on liczby
196, której Alicja natychmiast zażąda.
4. Jeżeli jednak Alicja wysłała x2 = 196, wygrywa Stefan i na dowód
wygranej przesyła Alicji liczbę 134.
Zauważmy, że możemy tu zastosować każdą liczbę n, która jest iloczynem
dwóch liczb pierwszych p i q, przy czym jeśli gramy faktycznie o samochód
29
to liczby te muszą być na tyle duże i tak dobrane, żeby nie można było zbyt
szybko znaleźć rozkładu liczby n. Liczby p = 11 oraz q = 31 z powyższego
przykładu mogą co najwyżej służyć do gry o rozbite lusterko boczne. Zauważmy też, że w punkcie 4, Stefan może udowodnić swoją wygraną znajdując bez problemu rozkład liczby n, ponieważ NWD(x1 − x2 , n) jest większy
od 1, czyli stanowi nietrywialny dzielnik liczby n.
30
Download