1 Podstawowe wªasno±ci arytmetyczne liczb caª

advertisement
1
Podstawowe wªasno±ci arytmetyczne liczb caªkowitych
1.1 Oznaczenia W caªym skrypcie b¦dziemy u»ywali nast¦puj¡cych oznacze«:
N = {0, 1, 2, . . . }
jest zbiorem liczb naturalnych (z zerem),
Z
jest zbiorem liczb
caªkowitych. B¦dziemy zakªada¢, »e czytelnikowi znane s¡ denicje i wªasno±ci
podstawowych dziaªa« arytmetycznych (dodawanie, mno»enie) oraz porz¡dku
w tych zbiorach.
1.2 Twierdzenie o dzieleniu z reszt¡ Wszystkie wªasno±ci liczb caªkowitych
omawiane w tym rozdziale s¡ konsekwencj¡ nast¦puj¡cego twierdzenia.
Twierdzenie.
Je»eli
liczby caªkowitej
i
r
a
b
jest liczb¡ caªkowit¡ ró»n¡ od zera, to dla dowolnej
istnieje jednoznacznie wyznaczona para liczb caªkowitych
q
takich, »e
1.
a = bq + r,
2.
0 ≤ r < |b|.
Liczb¦
q
Dowód.
b, a liczb¦ r nazywamy
a mod b.
istnienie pary (q, r) oraz jej jedno-
nazywamy cz¦±ciowym ilorazem liczby
reszt¡ z dzielenia
a
przez
b
a
przez
i oznaczamy symbolem
Twierdzenie zawiera dwie tezy:
znaczno±¢. Udowodnimy najpierw istnienie takiej pary. Zaªó»my najpierw, »e
b jest liczb¡ naturaln¡. Poka»emy najpierw, »e dla dowolnej liczby naturalnej
a istniej¡ liczby q i r speªniaj¡ce warunki 1 i 2 twierdzenia. Je»eli liczba a
speªnia nierówno±¢ 0 ≤ a < b, to a = 0q + a jest »¡danym przedstawieniem.
(Zauwa»my, »e z zaªo»enia b 6= 0 wynika istnienie odpowiedniego przedstawienia co najmniej dla a = 0). Zaªó»my wi¦c indukcyjnie, »e dla pewnej liczby a
istnieje odpowiednie przedstawienie a = bq + r . Poka»emy, jak znale¹¢ odpowiednie przedstawienie dla liczby a + 1. Mamy oczywi±cie a + 1 = bq + (r + 1)
i je±li oka»e si¦, »e r + 1 < b, to jest to »¡dane przedstawienie. W przeciwnym
wypadku mamy r + 1 = b i mamy a + 1 = bq + b = b(q + 1) + 0. Twierdzenie o indukcji gwarantuje nam wi¦c istnienie odpowiedniego przedstawienia dla
dowolnej liczby naturalnej
a.
a
Zaªó»my teraz, »e liczba
jest ujemna. Wówczas liczba
−a
jest liczb¡ natu-
−a = bq+r,
a = b(−q) + (−r). Przedstawienie to speªnia warunek 2 tylko wtedy,
gdy r = 0. W przeciwnym wypadku nale»y przedstawienie poprawi¢, przestawiaj¡c"jedno b: a = b(−q − 1) + (b − r).
Pozostaje jeszcze rozpatrzy¢ przypadek, gdy b < 0. Wówczas −b jest liczb¡
naturaln¡ i z udowodnionych ju» wªasno±ci wiemy, »e dla dowolnej liczby a
istnieje przedstawienie a = (−b)q + r , gdzie 0 ≤ r < −b = |b|. Wówczas
»¡danym przedstawieniem jest a = b(−q) + r .
raln¡ i z udowodnionej przed chwil¡ wªasno±ci mamy przedstawienie
co daje
Udowodnimy teraz jednoznaczno±¢ przedstawienia. Zaªó»my wi¦c przeciwnie, »e dla pewnej pary liczb
aib
mamy dwa przedstawienia:
a = bq + r = bq 0 + r0 ,
1
0 ≤ r, r0 < |b|.
przy czym
Przeksztaªcaj¡c powy»sz¡ równo±¢ arytmetycznie i
bior¡c warto±¢ bezwzgl¦dn¡ obu stron, otrzymujemy
|b| · |q − q 0 | = |r0 − r|.
−|b| < r0 − r < |b|, wi¦c prawa strona
równo±ci jest liczb¡ naturaln¡ mniejsz¡ ni» |b|. Z kolei lewa strona jest naturaln¡
wielokrotno±ci¡ liczby |b|. Jedyn¡ naturaln¡ wielokrotno±ci¡ liczby |b| mniejsz¡
0
0
od |b| jest liczba 0. St¡d |r − r| = 0 i |q − q | = 0 (raz jeszcze wykorzystali±my
0
0
zaªo»enie b 6= 0), a wi¦c q = q i r = r .
r
Na podstawie zaªo»e« o
i
r0
mamy
1.3 Rozwini¦cie liczby przy danej podstawie
Twierdzenie. Je»eli b jest liczb¡ naturaln¡ wi¦ksz¡ od 1, to dowoln¡ dodatni¡
liczb¦ naturaln¡
a
mo»e w sposób jednoznaczny przedstawi¢ w postaci
a = a0 + a1 b + a2 b2 + · · · + as bs ,
gdzie
0 ≤ ai < b, i = 0, 1, . . . s, as 6= 0.
(1)
a w postaci (1) nazywa si¦ rozwini¦ciem liczby a przy
a0 , a1 ,. . . ,as nazywamy cyframi rozwini¦cia. W skrócie
a = (as as−1 . . . a1 a0 )b , przy czym podstaw¦ b pomija si¦, je±li
Przedstawienie liczby
podstawie
b,
liczby
stosuje si¦ zapis
b = 10.
Przykªad.
Dowód.
Tak wi¦c mamy
1236 = 3 + 2 · 6 + 1 · 62 = 5110 = 51.
Znowu musimy wykaza¢ istnienie odpowiedniego przedstawienia i jego
jednoznaczno±¢. Aby udowodni¢ istnienie przedstawienia, zastosujemy indukcj¦
wzgl¦dem liczby
a0 = a.
wszystkich liczb
przez
a.
a < b mamy oczywiste przedstawienie z s = 0 i
a ≥ b i »e udowodnili±my ju» istnienie rozwini¦cia dla
a0 mniejszych od pewnej liczby a. Podzielmy liczb¦ a z reszt¡
Dla liczb
Zaªó»my wi¦c, »e
b:
a = bq + r,
Iloraz cz¦±ciowy
»enie
b>1
q
gdzie
0 ≤ r < b.
jest liczb¡ naturaln¡ dodatni¡ (dlaczego?) przy czym zaªo-
gwarantuje nam, »e
q < a.
Z zaªo»enia indukcyjnego mamy wi¦c
przedstawienie
q = a0 + a1 b + a02 b2 + · · · + as bs ,
gdzie s
as 6= 0.
jest pewn¡ liczb¡ naturaln¡ i
0 ≤ ai < b
dla wszystkich
i = 0, 1, . . . , s
i
Wówczas
a =
=
r + bq =
r + b(a0 + a1 b + a02 b2 + · · · + as bs ) =
= r + a0 b + a1 b2 + · · · + as bs+1 ,
co daje »¡dane rozwini¦cie.
Dla dowodu jednoznaczno±ci zauwa»my, »e wzór (1) mo»na przepisa¢ w postaci
a = b(a1 + a2 b + · · · + as bs−1 ) + a0 ,
2
a poniewa» cyfra
a0
0 ≤ a0 < b,
speªnia nierówno±ci
wi¦c z twierdzenia o dziele-
niu z reszt¡ wynika, »e jest jednoznacznie wyznaczone jako reszta z dzielenia a
przez
B,
a wyra»enie w nawiasie jest ilorazem cz¦±ciowym. Dowód jednoznacz-
no±ci mo»na wi¦c znowu poprowadzi¢ indukcyjnie wzgl¦dem
1.4
a
Obecnie powszechnie u»ywamy systemu dziesi¡tkowego, ale z arytmetycz-
nego punktu widzenia baza 10 nie jest w »aden sposób wyró»niona.
oczywi±cie przywoªa¢ uzasadnienie anatomiczne:
Mo»na
mamy przecie» 10 palców.
Zwró¢my jednak uwag¦ na to, »e równie dobr¡ odpowiedzi¡ na pytanie o liczb¦
palców jest 5 (palców u jednej dªoni) i 20 (palców u r¡k i nóg razem). I rzeczywi±cie w pewnych j¦zykach europejskich i azjatyckich mamy ±lady podstawy
20. Na przykªad w j¦zyku francuskim 20 to
vingt,
90 to
quatrevingtdix
czyli
cztery dwudziestki i dziesi¦¢ (podobny schemat obowi¡zuje w nazwach liczebników od 60 do 99).
pi¡tkowego.
W pewnych j¦zykach afryka«skich mamy ±lady systemu
Mo»na te» jak niektórzy Indianie Ameryki Póªnocnej liczy¢ nie
palce, a przerwy mi¦dzy palcami, co daje podstaw¦ osiem. Inni natomiast na
tych samych dziesi¦ciu palcach potra¡ liczy¢ do 60 (zob. G. Ifrah, Dzieje liczby
czyli Historia wielkiego wynalazku, Wrocªaw 1990).
‘lady skomplikowanego
dziesi¦tnosze±¢dziesi¡tkowego systemu sumeryjskobabilo«skiego mamy w podziale k¡ta i czasu (1 stopie« = 60 minut, 1 minuta = 60 sekund).
Niektórzy dopatruj¡ si¦ reliktów systemu dwunastkowego w podziaªach pewnych jednostek na 12 mniejszych jednostek (np. 1 dzie« = 12 godzin, 1 stopa =
12 cali). Jednak od takiego podziaªu do konsekwentnego systemu dwunastkowego jeszcze daleko i nie wydaje si¦, aby taki system byª gdziekolwiek u»ywany.
W elektronice i w technice komputerowej znalazª zastosowanie system dwójkowy i pomocniczo systemy ósemkowy i szesnastkowy (zobacz poni»ej).
1.5
Zauwa»my, »e dowód twierdzenia z punktu 1.3 daje nam efektywny al-
gorytm rozwini¦cia danej liczby
a
przy podstawie
b,
a dokªadniej wypisania
wszystkich cyfr tego rozwini¦cia:
1. zaczynamy od dzielenia z reszt¡ liczby
a
przez podstaw¦
b,
2. reszt¦ wypisujemy jako zerow¡ cyfr¦ rozwini¦cia,
3. je±li iloraz
q
jest równy zero, to ko«czymy; w przeciwnym wypadku roz-
poczynamy algorytm od punktu 1., zamieniaj¡c liczb¦
a
na liczb¦
q.
Poniewa» kolejne ilorazy utworz¡ malej¡cy ci¡g liczb naturalnych, wi¦c w pewnym kroku oblicze« musimy uzyska¢ iloraz zerowy i algorytm zatrzyma si¦.
Przykªad.
Rozwi«my liczb¦
a = 2008
przy podstawie
Mamy po kolei
2008
=
8 · 251 + 0,
251
=
8 · 31 + 3,
31
=
8 · 3 + 7,
3
=
8 · 0 + 3,
3
b = 8.
czyli
2008 = 37308 .
Przy r¦cznych rachunkach wygodnie jest prowadzi¢ zapis w
postaci nast¦puj¡cej tabeli:
2008
251
31
3
0
0
3
7
3
Odwrotne zadanie przej±cia od systemu o danej podstawie
b
do systemu
dziesi¦tnego wynika bezpo±rednio ze wzoru (1), ale warto tu zwróci¢ uwag¦ na
pewien aspekt obliczeniowy tego rachunku. Wykonanie rachunku zgodnie z tym
wzorem wymaga
b2 , b3 ,
...,
bs
2s − 1 mno»e«: s − 1 mno»e« do obliczenia kolejnych pot¦g
s mno»e« do obliczenia iloczynów ai bi . Tymczasem proste
oraz
przeksztaªcenie wzoru daje wyra»enie
a0 + b(a1 + b(a2 + . . . (as−1 + bas ) . . . )).
Taki sposób oblicze« nazywa si¦ schematem Hornera.
Wymaga on jedynie
s
mno»e« (i tak¡ sam¡ liczb¦ dodawa« jak schemat naiwny).
Je»eli mamy zamieni¢ podstaw¦
b
na inn¡ podstaw¦
b0 ,
to najlepiej po±red-
nio posªu»y¢ si¦ podstaw¡ 10. Jest jednak jeden wyj¡tek, w którym zamiana
jednej podstawy na drug¡ jest szczególnie ªatwa. Zaªó»my, »e podstawa
k -t¡
pot¦g¡ podstawy
b
wszystkich liczb od 0 do
B
jest
i »e dysponujemy tabel¡ rozwini¦¢ przy podstawie
B − 1 (a wi¦c cyfr przy podstawie B ).
b
Wówczas proces
zamiany jednej podstawy na drug¡ mo»na wykona¢ czysto mechanicznie bez
jakichkolwiek rachunków.
a = a0 + a1 B +
B , czyli dla ka»dego i
k
Poniewa» B = b , wi¦c ka»d¡ z cyfr ai mo»emy jednoznaczk−1
nie przedstawi¢ w postaci ai = ai,0 + ai,1 b + · · · + ai,k−1 b
, gdzie wszystkie
liczby ai,j s¡ cyframi dla podstawy b (jest to tak zwane k znakowe rozwini¦cie
przy podstawie b czyli zwykªe rozwini¦cie przy podstawie b uzupeªnione tak¡
liczb¡ cyfr zerowych, aby otrzyma¢ dokªadnie k znaków). Wówczas
Podstaw¡ tej metody jest nast¦puj¡ce rozwa»anie. Niech
a2 B 2 + · · · + as B s
mamy 0 ≤ ai < B .
a
b¦dzie rozwini¦ciem przy podstawie
=
a0 + a1 B + a2 B 2 + · · · + as B s =
=
a0,0 + a0,1 · b + · · · + a0,k−1 · bk−1 +
+(a1,0 + a1,1 · b + · · · + a1,k−1 · bk−1 )bk + · · · +
+(as,0 + as,1 · b + · · · + as,k−1 · bk−1 )bks =
=
a0,0 + a0,1 · b + · · · + a0,k−1 · bk−1 +
+a1,0 bk + a1,1 · bk+1 + · · · + a1,k−1 · b2k−1 + · · · +
+as,0 · bks + as,1 · bks+1 + · · · + as,k−1 · bk(s+1)−1
Ze wzgl¦du na jednoznaczno±¢ rozwini¦cia ostatnie wyra»enie mo»e ró»ni¢ si¦
a przy podstawie b jedynie o zb¦dne cyfry zerowe przy najwy»b. Otrzymujmy wi¦c nast¦puj¡cy algorytm: aby z rozwini¦cia
podstawie B otrzyma¢ rozwini¦cie przy podstawie b, wystarczy zamieni¢
od rozwini¦cia
szych pot¦gach
przy
4
cyfry rozwini¦cia przy podstawie
stawie
b
B
k znakowymi
ich
rozwini¦ciami przy pod-
i (ewentualnie) usun¡¢ pocz¡tkowe zera. Przej±cie w drug¡ stron¦ jest
odwróceniem tej procedury: maj¡c rozwini¦cie przy podstawie
powa¢ jego cyfry w bloki
k cyfrowe
nast¦pnie ka»dy blok zast¡pi¢ odpowiedni¡ cyfr¡ dla podstawy
Przykªad.
b,
nale»y pogru-
poczynaj¡c od cyfr najmniej znacz¡cych, a
B.
Na styku czªowieka z maszyn¡ cz¦sto zamiast systemu dwójkowego
stosuje si¦ system szesnastkowy. Cyframi przy podstawie
16
s¡ liczby od 0 do
15, wi¦c dla jednoznaczno±ci zapisu przyj¦ªo si¦ oznacza¢ dodatkowe (wzgl¦dem
systemu dziesi¦tnego) cyfry od 10 do 15 literami od
A
do
F.
Poniewa»
16 = 24 ,
wi¦c dla sprawnego przechodzenia od ukªadu szesnastkowego do dwójkowego i
odwrotnie przygotujmy tabel¦ czterocyfrowych rozwini¦¢ dwójkowych cyfr szesnastkowych:
0 ↔ 0000 4 ↔ 0100
1 ↔ 0001 5 ↔ 0101
2 ↔ 0010 6 ↔ 0110
3 ↔ 0011 7 ↔ 0111
8 ↔ 1000
9 ↔ 1001
A ↔ 1010
B ↔ 1011
Je»eli mamy teraz na przykªad liczb¦ szesnastkowa
C
D
E
F
↔ 1100
↔ 1101
↔ 1110
↔ 1111
5A4F16
rozwin¡¢ przy pod-
stawie dwa, to wystarczy przepisa¢ w odpowiedniej kolejno±ci rozwini¦cia dwójkowe:
0101 | 1010 | 0100 | 1111
i pomin¡¢ pocz¡tkowe zera, wi¦c
5A4F16 = 1011010010011112 .
1.6 Relacja podzielno±ci liczb caªkowitych
a dzieli liczb¦ caªkowit¡ b
b = ac. Symbolicznie:
Powiemy, »e liczba caªkowita
liczba caªkowita
c
taka »e
(ozn.
a | b),
je±li istnieje
a | b ⇐⇒ ∃c∈Z b = ac.
(2)
Nale»y podkre±li¢, »e wzór (refrelpodz) deniuje relacj¦ w zbiorze liczb caªkowitych i zapisu
a | b
0
odró»nieniu od wyra»enia
0 , zapis
prawdziwym.
Je»eli
a | b,
to liczb¦
a
b . W szczególno±ci, w
jest sensowny, co wi¦cej jest zdaniem
nie nale»y myli¢ z uªamkiem
a
0|0
b¦dziemy te» nazywa¢ dzielnikiem liczby
b.
Podstawowe, ªatwe do udowodnienia wªasno±ci relacji podzielno±ci zostaªy
zebrane w poni»szym stwierdzeniu.
Stwierdzenie.
1.
1 | a.
2.
a | a.
Dla dowolnych
a, b, c ∈ Z
3. Je±li
a | b i b | c,
to
a | c.
4. Je±li
a | b i b | a,
to
|a| = |b|.
5
mamy
5. Je±li
a | b,
6. Je±li
a 6= 0,
7. Je±li
a | b i a | c,
8. Je±li
a | b,
to
(−a) | b i a | (−b).
to
to
a|b
to
wtedy i tylko wtedy, gdy
b mod a = 0.
a | b ± c.
a | bc.
Punkty 2.-4. implikuj¡, »e relacja podzielno±ci obci¦ta do zbioru liczb naturalnych jest w tym zbiorze cz¦±ciowym porz¡dkiem.
1.7 Najwi¦kszy wspólny dzielnik
Denicja. Najwi¦kszym wspólnym dzielnikiem liczb a, b ∈ Z nazywamy liczb¦
caªkowit¡
d
tak¡, »e
1.
d > 0,
2.
d | a i d | b,
3. dla ka»dej liczby
δ,
je±li
δ | a i δ | b,
to
δ | d.
Na powy»sz¡ denicj¦ mo»na spojrze¢ w sposób nast¦puj¡cy: pierwsze dwa
punkty mówi¡, »e deniowany obiekt jest pewnym dzielnikiem dodatnim wspólnym dla obu liczb
a
i
b.
Trzeci punkt mówi, »e jest on najwi¦kszy w zbiorze
takich dzielników, ale nie w sensie zwykªego porz¡dku
≤
na liczbach natural-
nych, a w sensie porz¡dku wyznaczonego przez relacj¦ podzielno±ci. Zauwa»my,
»e powy»sza denicja nie gwarantuje istnienia najwi¦kszego wspólnego dzielnika.
I rzeczywi±cie, ªatwo zobaczy¢, »e je±li
nik pary
(a, b)
a = b = 0,
to najwi¦kszy wspólny dziel-
nie istnieje (ka»da liczba naturalna dodatnia speªnia pierwsze
dwa warunki denicji i w zbiorze tym nie ma elementu najwi¦kszego). Naszym
celem b¦dzie wykazanie, »e para
(0, 0)
jest jedynym wyj¡tkiem, w którym nie
istnieje najwi¦kszy wspólny dzielnik.
Stwierdzenie.
(a, b)
Je»eli dla pewnej pary
istnieje najwi¦kszy wspólny dziel-
nik, to jest on wyznaczony jednoznacznie.
Dowód.
(a, b) mamy dwie liczby d i d0 speªniaj¡ce
warunki 1.-3. denicji. Warunek 3. dla d mówi, »e ka»dy wspólny dzielnik δ
0
0
liczb a i b jest te» dzielnikiem liczby d. Ale warunek 2. dla d gwarantuje, »e d
0
0
jest wspólnym dzielnikiem a i b. St¡d d | d. Symetrycznie otrzymujemy d | d .
0
W takiej sytuacji mamy |d| = |d | (pkt. 4. stwierdzenia 1.6). Jednak na mocy
0
0
punktu 1. denicji obie liczby d i d s¡ dodatnie, wi¦c d = d .
Zaªó»my, »e dla danej pary
Jednoznaczno±¢ pozwala nam wprowadzi¢ symbol dla najwi¦kszego wspólnego dzielnika: najwi¦kszy wspólny dzielnik liczb
bolem
NWD(a, b).
Stwierdzenie.
Dla dowolnych
a, b ∈ Z
1.
NWD(a, b) = NWD(b, a),
2.
NWD(a, b) = NWD(|a|, |b|),
6
aib
b¦dziemy oznacza¢ sym-
3.
NWD(a, b) = NWD(a ± b, b),
4. je±li
b 6= 0,
to
NWD(a, b) = NWD(a mod b, b),
przy czym wszystkie równo±ci nale»y rozumie¢ w ten sposób, »e je±li istnieje
liczba po jednej stronie równo±ci, to istnieje te» liczba po drugiej stronie i s¡
sobie równe.
Dowód.
Punkt 1. wynika z symetrii warunków denicji wzgl¦dem
a i b.
Punkt
2. wynika z niewra»liwo±ci relacji podzielno±ci na znaki (pkt. 5 stwierdzenia
d = NWD(a, b). Musimy
NWD z argumentem a zamienionym na a ± b. Oczywi±cie d > 0, bo z zaªo»enia d jest najwi¦kszym wspólnym
dzielnikiem a i b. Liczba d dzieli liczby a i b, wi¦c na podstawie pktu 7. stwierdzenia 1.6 dzieli te» a±b. Zostaje wi¦c do sprawdzenia ostatni warunek denicji.
Niech δ b¦dzie wspólnym dzielnikiem a ± b i b. Wówczas a = (a ± b) ∓ b i znowu
na podstawie stwierdzenia 1.6 otrzymujemy, »e δ jest wspólnym dzielnikiem a i
b. Ale z zaªo»enia d = NWD(a, b), wi¦c δ dzieli d, co mieli±my wykaza¢.
Dla dowodu ostatniego punktu zauwa»my, »e a mod b = a − qb dla pewnej
liczby caªkowitej q . Tez¦ otrzymujemy wi¦c przez wielokrotne zastosowanie
1.6).
Udowodnimy punkt 3.
sprawdzi¢, »e
d
Zaªó»my, »e istnieje
speªnia warunki 1.-3. denicji
poprzedniego punktu dowodzonego stwierdzenia.
1.8 Algorytm Euklidesa
Jest jeden przypadek, w którym dowód istnienia najwi¦kszego wspólnego dzielnika sprowadza si¦ do ªatwego sprawdzenia warunków 1.-3. denicji.
Stwierdzenie.
Je»eli
a 6= 0,
to
NWD(a, 0) = |a|.
Poka»emy, w jaki sposób ogólne zagadnienie obliczenia
NWD(a, b)
mo»na
sprowadzi¢ do przypadku opisanego w powy»szym stwierdzeniu. Na pocz¡tek
zauwa»my, »e na podstawie punktów 1.
i 2.
stwierdzenia 1.7 obliczenie naj-
a i b mo»emy zawsze sprowadzi¢
do obliczenia wyra»enia NWD(a1 , a2 ), gdzie a1 ≥ a2 ≥ 0 (wystarczy przyj¡¢
a1 = max(|a|, |b|) i a2 = min(|a|, |b|). Je±li a2 = 0, to albo najwi¦kszy wspólny
dzielnik nie istnieje (je±li równie» a1 = 0), albo jest równy a1 . Wystarczy si¦
wi¦c zaj¡¢ przypadkiem a2 6= 0. W tym przypadku podzielimy a1 z reszt¡ przez
a2 :
a1 = q1 a2 + a3 , 0 ≤ a3 < a2 .
wi¦kszego wspólnego dzielnika dwóch liczb
NWD(a1 , a2 ) = NWD(a2 , a3 )
a3 = 0, to wiemy, »e NWD(a2 , a3 ) = a2 , co
po pierwsze dowodzi istnienia NWD(a1 , a2 ) i po drugie daje nam jego warto±¢.
W przeciwnym przypadku mo»emy podzieli¢ z reszt¡ a2 przez a3 :
Na podstawie punktu 4. stwierdzenia 1.7 wiemy, »e
(o ile istnieje!). Je±li oka»e si¦, »e
a2 = q2 a3 + a4
0 ≤ a4 < a3 .
Proces dzielenia z reszt¡ mo»emy kontynuowa¢, dopóki nie natkniemy si¦ na
zerow¡ reszt¦. Ka»de dzielenie daje nast¦pny czªon w ci¡gu równo±ci:
NWD(a1 , a2 ) = NWD(a2 , a3 ) = NWD(a3 , a4 ) = . . . ,
7
przy czym nale»y pami¦ta¢ o warunkowym charakterze tych równo±ci: s¡ one
prawdziwe pod warunkiem, »e wyst¦puj¡ce w nich obiekty istniej¡, przy czym
uzasadnienie istnienia cho¢by jednego z nich gwarantuje istnienie wszystkich
pozostaªych.
Takim warunkiem uprawomocniaj¡cym powy»szy ci¡g równo±ci
jest natkni¦cie si¦ na zerow¡ reszt¦. Je±li bowiem reszta
ai jest równa zero, to na podstawie warunku 4.
NWD(ai , ai+1 ) istnieje i równa si¦ ai czyli ostatniej
przez
ai+1
z dzielenia
ai−1
stwierdzenia 1.7 wiemy, »e
niezerowej reszcie w ci¡gu
oblicze«.
Powy»szy sposób obliczenia najwi¦kszego wspólnego dzielnika nazywa si¦
algorytmem Euklidesa.
Twierdzenie.
Dla ka»dej pary liczb
(a, b)
NWD(a, b).
Dowód. Algorytm
(0.0) algorytm Eu(a, b) 6= (0, 0) istnieje
ró»nej od pary
klidesa zatrzymuje si¦; w szczególno±ci dla ka»dej pary
Euklidesa zatrzymuje si¦, gdy napotkamy reszt¦ równ¡ 0.
Musimy wi¦c wykaza¢, »e dla dowolnej pary
(a, b) 6= (0, 0) w ci¡gu a1 , a2 , a3 , . . .
skonstruowanym powy»ej pojawi si¦ w ko«cu zero. Ci¡g ten jest ci¡giem liczb
naturalnych i
a1 ≥ a2 > a3 > a4 > . . . .
Poniewa» ci¡g liczb naturalnych nie mo»e male¢ w niesko«czono±¢, wi¦c proces
obliczania reszt musi kiedy± przerwa¢ si¦.
1.9
NWD za pomoc¡ algorytmu Euklidesa nie
a1 , a2 , a3 , . . . . Do obliczenia kolejnego wyrazu
Zauwa»my, »e do obliczenia
musimy pami¦ta¢ caªego ci¡gu
wystarcza znajomo±¢ dwóch poprzednich, co pozwala przeprowadzi¢ obliczenia
w miejscu.
Jest to szczególnie istotne, je»eli chcemy zaimplementowa¢ ten
algorytm. Tak¡ wersj¦ algorytmu przedstawia nast¦puj¡cy schemat.
Algorytm 1.1: Algorytm Euklidesa
DANE:
liczby caªkowite
WYNIK:
NWD(a, b)
1.
2.
3.
4.
5.
6.
7.
aib
a := |a|; b := |b|;
if (a < b) then zamie« a z b;
if (a = 0) then zgªo± bª¡d;
while (b 6= 0) do
c := a mod b;
a := b; b := c;
zwró¢ a jako wynik;
1.10 Zªo»ono±¢ obliczeniowa algorytmu Euklidesa
Zªo»ono±¢ obliczeniowa algorytmu to miara pracochªonno±ci tego algorytmu w
zale»no±ci od dªugo±ci danych wej±ciowych. Nie wdaj¡c si¦ tu w dalsz¡ dyskusj¦
8
(zob. uwaga poni»ej), b¦dziemy zakªada¢, »e dobr¡ miar¡ pracochªonno±ci algorytmu Euklidesa jest liczba operacji obliczenia reszty, które musimy wykona¢
dla osi¡gni¦cia wyniku. Obliczaj¡c zaledwie kilku przykªadów, ªatwo przekona¢
si¦, »e dªugo±¢ oblicze« zale»y nie tyle od wielko±ci danych, ile od ich arytmetycznych wªa±ciwo±ci. St¡d b¦dziemy pyta¢ nie o dokªadn¡ liczb¦ kroków, a o
górne oszacowanie tej liczby w zale»no±ci od wielko±ci danych. Zaªó»my wi¦c,
»e
a ≥ b > 0.
Pytamy o maksymaln¡ liczb¦ dziele« z reszt¡ przy wykonaniu
algorytmu dla danych
a
b. Wygodniej jednak pytanie odwróci¢: dla jakich
a i b algorytm zako«czy prac¦ w stym kroku?
i
najmniejszych argumentów
Niech wi¦c
aib
b¦d¡ najmniejszymi mo»liwymi liczbami, dla których algo-
rytm Euklidesa wymaga dokªadnie
Przyjmuj¡c
a1 = a i a2 = b,
a1
a2
s
a > b ≥ 0.
kroków. Mo»emy zaªo»y¢, »e
mamy ci¡g równo±ci
= q1 a2 + a3 ,
= q2 a3 + a4 ,
0 < a3 < a2 ,
0 < a4 < a3 ,
..............................................
as−1
as
Liczba
as+1
= qs−1 as + as+1 ,
= qs as+1 + 0.
jest wspólnym dzielnikiem liczb
0 < as+1 < as ,
a1 , a2 ,. . . as .
Gdyby
as+1
byªo
wi¦ksze od 1, to dziel¡c wszystkie powy»sze równania przez t¦ liczb¦ i podsta-
a0i = ai /as+1 , otrzymaliby±my zapis wykonania algorytmu dla pary liczb
(a/as+1 , b/as+1 ). Byªaby to para argumentów mniejszych od a i b, dla których
wiaj¡c
algorytm wymaga takiej samej liczby kroków. Dalej zauwa»my, »e z nierówno±ci
dla liczb
wida¢, »e
ai wynika, »e wszystkie ilorazy cz¦±ciowe qi
a1 i a2 przyjm¡ najmniejsz¡ warto±¢, je±li
s¡ dodatnie. Šatwo teraz
q1 = q2 = · · · = qs = 1.
Wówczas
as = as+1 = 1
ak−1 = ak + ak+1 dla k = 2, 3, . . . , s. Wygodniej
bi = as+2−i , i = 1, 2, . . . , s + 1. Ze
ci¡g b1 , b2 , . . . , bs+1 dany jest wzorem rekurencyjnym
i
ponumerowa¢ ci¡g od ko«ca, przyjmuj¡c
wzorów dla
ai
wynika, »e
b1 = b2 = 1,
bi+2 = bi+1 + bi dla i = 1, 2, . . . , s − 1.
Jest to ci¡g Fibonacciego, o którym b¦dziemy mówi¢ dokªadniej w
pokaza¢, »e
1
bi ≈ √
5
a st¡d po uwzgl¦dnieniu, »e
Mo»na
√ !i
1+ 5
,
2
bs = a2 = b,
s≈
??.
mamy
1/2 log 5 + log b
,
log γ
√
1+ 5
2 , a za podstaw¦ logarytmów mo»na przyj¡¢ dowoln¡ ustalon¡
liczb¦. Zauwa»my, »e log2 b jest w przybli»eniu równy ilo±ci cyfr liczby b w zapisie
gdzie
γ =
9
dwójkowym, a wi¦c jest dobr¡ miar¡ dªugo±ci danej
b.
Powy»sze rozwa»ania
mo»emy podsumowa¢ w postaci nast¦puj¡cego twierdzenia.
Twierdzenie.
b>0
Istnieje staªa dodatnia
C
taka, »e dla dowolnych danych
algorytm Euklidesa wymaga nie wi¦cej ni»
Uwaga.
C log2 b
a >
dziele« z reszt¡.
W teorii zªo»ono±ci miar¡ pracochªonno±ci algorytmu jest liczba tzw.
operacji binarnych pewnej abstrakcyjnej maszyny modeluj¡cej prac¦ komputera. Sensowno±¢ takiej miary ªatwo zrozumie¢, je±li spróbujemy zaimplementowa¢ algorytm Euklidesa dla naprawd¦ du»ych argumentów: tak du»ych, »e
nie da si¦ ich zapisa¢ jako warto±ci pojedynczych zmiennych typu integer w
standardowych j¦zykach programowania. (Obliczenia
NWD
dla tak du»ych ar-
gumentów nie s¡ niczym nadzwyczajnym: spotykamy je na przykªad w kryptograi i zapewne wielokrotnie zlecaªe± wykonanie takich rachunków swojemu
komputerowi przy okazji otwierania stron internetowych za pomoc¡ tzw. bezpiecznego protokoªu internetowego
https).
Aby reprezentowa¢ pojedyncz¡ du»¡
dan¡ w komputerze, musimy u»y¢ caªego ci¡gu zmiennych.
Wykonanie poje-
dynczej operacji arytmetycznej np. dodawania du»ych liczb nale»y wówczas zaimplementowa¢ jako ci¡g operacji wykonywanych na standardowych zmiennych
i liczba tych operacji b¦dzie zale»aªa od liczby zmiennych u»ytych do zapisu
danych.
Szacuj¡c wi¦c zªo»ono±¢ algorytmu Euklidesa, nie wystarczy jedynie
oszacowa¢ liczb¦ dziele«, ale trzeba jeszcze uwzgl¦dni¢ rozmiar argumentów, na
których operacji tych dokonujemy. Okazuje si¦, »e ilo±¢ operacji binarnych po-
a i b mo»na oszacowa¢
log2 a i log2 b. St¡d
algorytmem wielomianowym.
trzebnych do wykonania algorytmu Euklidesa na danych
za pomoc¡ wyra»enia zale»nego wielomianowo od warto±ci
mówi si¦, »e algorytm Euklidesa jest
1.11 Rozszerzony algorytm Euklidesa
Twierdzenie. Dla ka»dej pary liczb caªkowitych (a, b) 6= (0, 0) istniej¡ liczby
caªkowite
Dowód.
obliczaj¡c
αiβ
takie »e
Zaªó»my, »e
NWD(a, b)
NWD(a, b) = αa + βb.
a ≥ b ≥ 0 i zapiszmy
rachunki, jakie wykonujemy,
za pomoc¡ algorytmu Euklidesa. Mamy
a1 = a, a2 = b
oraz
a1
a2
= q1 a2 + a3 ,
= q2 a3 + a4 ,
........................
ai
= qi ai+1 + ai+2 ,
........................
as−2
as−1
as
Wówczas
= qs−2 as−1 + as ,
= qs−1 as + as+1 ,
= qs as+1 + 0.
NWD(a, b) = as+1
(R1 )
(R2 )
...
(Ri )
...
(Rs−2 )
(Rs−1 )
(Rs )
i warto±¢ t¦ mo»emy wyrazi¢ jako caªkowitolicz-
bow¡ kombinacj¦ liniow¡ liczb
as−1
oraz
as ,
korzystaj¡c z równo±ci
(Rs ):
NWD(a, b) = 1 · as−1 + (−qs−1 ) · as .
Poniewa» chwilowo nie b¦dzie nas interesowa¢ warto±¢ liczbowa wspóªczynników
stoj¡cych przy
as−1 i as ,
przepiszemy to w postaci
NWD(a, b) = αs−1 · as−1 + βs−1 · as .
10
Korzystaj¡c z
(Rs−2 ),
mamy
as = 1 · as−2 + +(−qs−2 ) · as−1 .
Podstawiaj¡c obliczon¡ warto±¢
mujemy przedstawienie liczby
as do poprzedniego wzoru dla NWD(a, b), otrzyNWD(a, b) w postaci kombinacji liniowej liczb
as−2 i as−1 :
NWD(a, b) = αs−2 · as−2 + βs−2 · as−1 .
Wykorzystuj¡c równo±ci o coraz ni»szych numerach i wykonuj¡c podobne przeksztaªcenia, otrzymamy wreszcie »¡dane przedstawienie liczby
NWD(a, b).
Algorytm Euklidesa wzbogacony o znalezienie wspóªczynników
αiβ
nazywa
si¦ rozszerzonym algorytmem Euklidesa.
Przykªad.
Obliczy¢
NWD(49, 18)
i przedstawi¢ wynik w postaci kombinacji
caªkowitoliczbowej argumentów.
Rozwi¡zanie.
Rozpoczynamy od ci¡gu dziele« z reszt¡.
49
18
13
5
3
2
=
=
=
=
=
=
2·18
1·13
2· 5
1· 3
1· 2
2· 1
+
+
+
+
+
+
13
5
3
2
1
0
Ostatni¡ niezerow¡ reszt¡ jest liczba 1, wi¦c poszukiwany najwi¦kszy wspólny
dzielnik jest równy 1. Aby przedstawi¢ 1 w postaci
α · 49 + β · 18,
zacznijmy
od wyznaczenia z poprzednich równo±ci kolejnych reszt jako kombinacji dwóch
poprzednich reszt.
Dla odró»nienia reszt od wspóªczynników, reszty zostaªy
podkre±lone.
13
5
3
2
1
=
=
=
=
=
1·49
1·18
1·13
1· 5
1· 3
+
+
+
+
+
(−2)·18
(−1)·13
(−2)· 5
(−1)· 3
(−1)· 2
Rozpoczynamy teraz od ostatniej równo±ci i podstawiamy do niej po kolei otrzymane wyra»enia dla reszt, pami¦taj¡c przy tym, »e interesuje nas nie warto±¢
11
liczbowa, a wspóªczynniki:
1
Uwaga.
=
1 · 3 + (−1) · 2 =
=
1 · 3 + (−1) · [1 · 5 + (−1) · 3] =
=
(−1) · 5 + 2 · 3 =
=
(−1) · 5 + 2 · [1 · 13 + (−2) · 5] =
=
=
2 · 13 + (−5) · 5 =
2 · 13 + (−5) · [1 · 18 + (−1) · 13] =
=
(−5) · 18 + 7 · 13 =
=
(−5) · 18 + 7 · [1 · 49 + (−2) · 18] =
=
7 · 49 + (−19) · 18.
Dla ka»dego
α
a wi¦c liczby
i
β,
k
caªkowitego mamy
(α − kb)a + (β + ka)b = αa + βb,
których istnienie wynika z twierdzenia, nie s¡ wyznaczone
jednoznacznie. Powy»sza równo±¢ pokazuje, »e je±li
tak by byªo reszt¡ z dzielenia przez
b.
b 6= 0,
α mo»na wybra¢
a 6= 0, to β mo»na
to
Analogicznie, gdy
wybra¢ tak, aby byªo reszt¡ z dzielenia przez
a.
Na ogól jednak nie mo»na
zapewni¢ obu warunków równocze±nie.
1.12
Opisana powy»ej metoda przedstawienia
liniowej liczb
a i b, jakkolwiek dobrze pokazuje,
NWD(a, b) w postaci kombinacji
sk¡d bior¡ si¦ wspóªczynniki α i
β , to jest przy rachunkach r¦cznych do±¢ »mudna.
Je±li próbujemy zaimplemen-
towa¢ j¡, dochodz¡ dodatkowe trudno±ci zwi¡zane z konieczno±ci¡ pami¦tania
a» do ko«ca rachunków wszystkich wyników po±rednich. Okazuje si¦, »e mo»na
poprzednie rachunki przeorganizowa¢ tak, aby wykona¢ je w miejscu, bez potrzeby rezerwowania du»ej liczby zmiennych pomocniczych.
a ≥ b > 0 i oznaczmy a1 = a, a2 = b.
Zaªó»my jak uprzednio, »e
nia
NWD(a, b)
Dla oblicze-
algorytm Euklidesa ka»e nam oblicza¢ kolejne reszty z dzielenia.
Poszukiwana liczba jest ostatni¡ niezerow¡ reszt¡ i wiemy z twierdzenia 1.11,
»e daje si¦ przedstawi¢ w postaci kombinacji liniowej
a i b.
Mo»emy wi¦c spró-
bowa¢ przedstawi¢ wszystkie reszty jako kombinacje liniowe
a i b.
W tym celu
zaczynamy od dwóch trywialnych równo±ci
a1
=
1·a+0·b
a2
=
0 · a + 1 · b.
Nast¦pn¡ liczb¡ w rachunkach jest
±ciowym liczb
a1 i a2 .
a3 = a1 − q1 a2 ,
gdzie
q1
jest ilorazem cz¦-
Istota pomysªu sprowadza si¦ do tego, aby rachunek taki
wykona¢ nie tylko na liczbach, ale na caªych kombinacjach liniowych: przedstawienie
a3
w postaci kombinacji liniowej
pierwszej równo±ci drug¡ pomno»on¡ przez
a i b mo»na otrzyma¢, odejmuj¡c od
q1 . Post¦powanie to mo»na iterowa¢:
maj¡c przedstawienia dwóch kolejnych reszt
ai−1
ai
= αi−1 · a + βi−1 · b
= αi · a + βi · b,
12
ai+1 ,
mo»emy otrzyma¢ przedstawienie dla
drug¡ pomno»on¡ przez reszt¦
qi−1
odejmuj¡c od pierwszej równo±ci
z dzielenia
ai−1
przez
ai .
Obliczenia r¦czne
wygodnie zapisywa¢ w nast¦puj¡cej tabelce. Ka»dy wiersz tabelki zawiera dane
dotycz¡ce jednej reszty, czyli sam¡ reszt¦
ai
oraz wspóªczynniki
αi i βi .
Wygod-
nie jest doda¢ czwart¡ kolumn¦, w której zapiszemy iloraz cz¦±ciowy bie»¡cej
(i + 1)szego wiersza powstaj¡
i − 1szego wiersza itego wiersza przemno»onego przez iloraz.
Oblicz NWD(206, 174) i przedstaw wynik jako kombinacj¦ danych
reszty przez poprzedni¡. Pierwsze trzy kolumny
przez odj¦cie od
Przykªad.
liczb.
Rozwi¡zanie.
Zaczynamy od dwóch pierwszych wierszy tabeli
a
206
174
α
1
0
β
0
1
Iloraz cz¦±ciowy 206 przez 174 jest równy 1.
Mo»emy zapisa¢ go w dodatko-
wej kolumnie drugiego wiersza i obliczy¢ trzeci wiersz jako ró»nice pierwszego
i drugiego (pomno»onego przez iloraz).
Post¦pujemy tak, a» do uzyskania w
pierwszej kolumnie zera.
a
206
174
32
14
4
2
0
α
β q
1
0 −
0
1 1
1 −1 5
−5
6 2
11 −13 3
−38
45 2
−
− −
Przedostatni wiersz daje rozwi¡zanie
NWD(206, 174) = 2 = (−38) · 206 + 45 · 174.
1.13 Liczby wzgl¦dnie pierwsze
Denicja. Mówimy, »e liczby a i b s¡ wzgl¦dnie pierwsze wtedy i tylko wtedy,
gdy
NWD(a, b) = 1.
Stwierdzenie.
Liczby a i b s¡ wzgl¦dnie pierwsze wtedy i tylko wtedy, gdy
α i β takie, »e αa + βb = 1.
Dowód. Je±li NWD(a, b) = 1, to istnienie odpowiednich α i β wynika z twierdzenia 1.11. Na odwrót zaªó»my, »e αa + βb = 1 i niech d = NWD(a, b).
Wówczas d | a i d | b, wi¦c d | αa + βb = 1. Ale jedynym dodatnim dzielnikiem
jedynki jest liczba 1. St¡d d = 1, czyli a i b s¡ wzgl¦dnie pierwsze.
istniej¡ liczby
Prost¡ ale bardzo wa»n¡ ze wzgl¦du na zastosowania wªasno±¢ liczb wzgl¦dnie pierwszych streszcza nast¦puj¡cy lemat.
Lemat.
Je»eli
c | ab i NWD(a, c) = 1,
to
13
c | b.
Dowód. Na podstawie twierdzenia 1.11 i zaªo»enia
α i β , dla których
α · a + β · c = 1.
o
a
i
c
wiemy, »e istniej¡
liczby
Mno»¡c t¦ równo±¢ stronami przez
b,
otrzymujemy
α · (ab) + (βb)c = b.
Oba skªadniki po lewej stronie s¡ podzielne przez
c:
pierwszy z zaªo»enia, drugi
ze wzgl¦du na swoj¡ posta¢. A wi¦c caªa suma jest podzielna przez
2
c, czyli c | b.
Liczby pierwsze
2.1 Denicja.
Liczb¡ pierwsz¡ nazywamy liczb¦ naturaln¡, która ma dokªad-
nie dwa dzielniki pierwsze.
Powy»sza denicja mimo swej prostoty i zwi¦zªo±ci kryje pewne puªapki dla
osób nieprzywi¡zuj¡cych wagi do precyzyjnego wysªawiania si¦. Zauwa»my, »e
liczba 1 zgodnie z t¡ denicj¡ nie jest liczb¡ pierwsz¡, gdy» ma tylko jeden
dzielnik naturalny.
Liczby naturalne wi¦ksze od 1, które nie s¡ liczbami pierwszymi nazywa si¦
liczbami zªo»onymi.
Twierdzenie.
Ka»da liczba naturalna
n>1
jest podzielna przez pewn¡ liczb¦
pierwsz¡.
Dowód.
Zastosujemy indukcj¦ wzgl¦dem
n.
Je±li
n = 2,
to jest liczb¡ pierw-
sz¡. Poniewa» ka»da liczba dzieli sam¡ siebie, to twierdzenie jest prawdziwe dla
wszystkich liczb pierwszych, a w szczególno±ci dla
n = 2.
Niech teraz
n0
b¦dzie
pewn¡ liczb¡ naturaln¡ wi¦ksz¡ od 2 i zaªó»my, »e twierdzenie jest prawdziwe
1 < n < n0 . Je»eli liczba n0
n0 . W przeciwnym razie
n0 musi mie¢ dzielnik naturalny d ró»ny od 1 i od n0 . Wówczas zachodzi nierówno±¢ 1 < d < n0 , a wi¦c na mocy zaªo»enia istnieje liczba pierwsza p dziel¡ca
d. Z przechodnio±ci relacji podzielno±ci liczba p jest te» dzielnikiem n0 .
dla wszystkich liczb
n
speªniaj¡cych nierówno±ci
jest pierwsza, to nasze twierdzenie jest prawdziwe dla
2.2 Sito Eratostenesa
Twierdzenie 2.1 stanowi podstaw¦ prostego algorytmu znajdowania wszystkich
liczb pierwszych nieprzekraczaj¡cych danej liczby
n.
Algorytm 2.1: Sito Eratostenesa
n ≥ 2.
DANE:
Liczba
WYNIK:
Lista wszystkich liczb pierwszych
14
p ≤ n.
n.
1.
Sporz¡d¹ list¦ wszystkich liczb od 2 do
2.
Je±li na li±cie brak niewykre±lonych liczb, zatrzymaj si¦.
3.
Pierwsza niewykre±lona na li±cie liczba
4.
Doª¡cz liczb¦
p
p
jest liczb¡ pierwsz¡.
do listy wynikowej.
p-t¡
5.
Wykre±l z listy co
6.
Wró¢ do punktu 2.
liczb¦, poczynaj¡c od
p.
Punkt 5. algorytmu cz¦sto formuªuje si¦ troch¦ inaczej:
wielokrotno±ci p.
wykre±l wszystkie
Zauwa»my, »e tak postawione zadanie wymaga rozpoznania,
które liczby s¡ wielokrotno±ciami
p.
Jest to zadanie do±¢ pracochªonne.
W
rzeczywisto±ci jednak wystarcza prosta arytmetyka na adresach.
Uzasadnimy poprawno±¢ tego algorytmu.
Po pierwsze zauwa»my, »e algo-
rytm zawsze zatrzyma si¦, gdy» pomi¦dzy dwoma kolejnymi sprawdzeniami w
punkcie 2. z listy zostaje usuni¦ta co najmniej jedna liczba. Poniewa» na pocz¡tku na li±cie jest
n − 1 liczb,
wi¦c po co najwy»ej
n − 1 przebiegach algorytm
zatrzyma si¦. Musimy jeszcze uzasadni¢, »e na li±cie wynikowej znajd¡ si¦ tylko
liczby pierwsze i »e ka»da liczba pierwsza z zadanego przedziaªu znajdzie si¦ na
li±cie, co pozostawiam jako ¢wiczenie.
2.3
Sito Eratostenesa pozwala nam (przynajmniej w teorii) znajdowa¢ wszyst-
kie liczby pierwsze le»¡ce w z góry zadanym przedziale, ale nie daje informacji,
czy liczb pierwszych jest sko«czenie czy niesko«czenie wiele.
Twierdzenie.
Liczb pierwszych jest niesko«czenie wiele.
W historii matematyki podano wiele dowodów tego twierdzenia opartych na
najró»niejszych pomysªach. Tutaj przytoczymy najstarszy dowód pochodz¡cy
od Euklidesa (kilka ró»nych dowodów mo»na znale¹¢ w wartej polecenia ksi¡»ce
Maªa ksi¦ga wielkich liczb pierwszych).
Dowód. Zaªó»my przeciwnie, »e liczb pierwszych jest sko«czenie wiele i niech
p1 , p2 , . . . , ps b¦d¡ wszystkimi liczbami pierwszymi. Utwórzmy liczb¦ N = p1 p2 ·
· · · · ps + 1. Na podstawie twierdzenia 2.1 liczba ta jest podzielna przez pewn¡
P. Ribenboima
liczb¦ pierwsz¡, ale z zaªo»enia nasza lista zawiera wszystkie liczby pierwsze,
st¡d istnieje numer
p1 p2 · · · · · ps ,
wi¦c
pi
i, 1 ≤ i ≤ s,
pi | N . Oczywi±cie pi dzieli te» iloczyn
N − p1 p2 · · · · · ps = 1. Otrzymana sprzeczno±¢
taki »e
dziel ró»nic¦
dowodzi faªszywo±ci naszego zaªo»enia.
2.4 Zasadnicze twierdzenie arytmetyki
Twierdzenie. Ka»d¡ liczb¦ caªkowit¡ z 6= 0 mo»na przedstawi¢ w postaci
z = ε · p1 p2 · · · · · ps ,
gdzie
ε = ±1
jest znakiem liczby,
s
jest pewn¡ liczb¡ naturaln¡, a
(3)
p1 , p2 ,. . . ,ps
pewnymi liczbami pierwszymi. Ka»de dwa takie przedstawienia ró»ni¡ si¦ co
najwy»ej kolejno±ci¡ czynników.
Podkre±lmy, »e twierdzenie zawiera dwie równie wa»ne tezy: istnienie rozkªadu i jego odpowiednio rozumian¡ jednoznaczno±¢.
15
Dowód. Istnienie:
Indukcj¡ wzgl¦dem
z
poka»emy, »e ka»da liczba naturalna
jest iloczynem pewnej ilo±ci liczb pierwszych. Je±li
s = 0,
z >1
Zaªó»my wi¦c, »e
podzielne przez pewn¡ liczb¦ pierwsz¡
s = 1.
przedstawienie postaci
n, 1 < n < z ,
z
Z twierdzenia 2.1 wiemy, »e
z = p, to
liczba z/p
Je±li
W przeciwnym wypadku
speªniaj¡c¡ nierówno±¢
ps+1 = p.
Jednoznaczno±¢:
p.
z
to wystarczy przyj¡¢
i »e ka»da liczba naturalna
iloczynem pewnej ilo±ci liczb pierwszych.
stawienie z
z = 1,
jest
jest
mamy »¡dane przedjest liczb¡ naturaln¡
1 < z/p < z , a wi¦c z zaªo»enia indukcyjnego ma ona
z/p = p1 p2 . . . ps . Wówczas z = p1 p2 . . . ps · ps+1 , gdzie
Zanim przejdziemy do dowodu jednoznaczno±ci rozkªadu, udo-
p dzieli iloczyn liczb
i = 1, 2, . . . , t. Ten fakt mo»na
ªatwo udowodni¢ indukcj¡ wzgl¦dem t. Je±li t = 1, to zaªo»enie mówi nam,
»e liczba p jest dzielnikiem liczby pierwszej q1 , a wi¦c p = q1 . Zaªó»my wi¦c
indukcyjnie, »e fakt jest prawdziwy dla liczby t i niech p dzieli iloczyn liczb
pierwszych q1 , q2 , . . . ,qt+1 . Je±li p = qt+1 , to nie ma czego dowodzi¢. W przeciwnym wypadku z pierwszo±ci liczb p i qt+1 wynika, »e NWD(p, qt+1 ) = 1.
Lemat 2.1 implikuje wówczas p | q1 q2 · · · · · qt i »¡dany fakt wynika z zaªo»enia
wodnimy nast¦puj¡cy fakt pomocniczy: je±li liczba pierwsza
pierwszych
q1 , q2 ,. . . ,qt ,
to
p = qi
dla pewnego
indukcyjnego.
Mo»emy teraz wróci¢ do dowodu jednoznaczno±ci. Na pocz¡tek zauwa»my,
ε jest wyznaczony jednoznacznie jako znak liczby, wi¦c mo»emy ogra-
»e czynnik
niczy¢ si¦ do liczb naturalnych. Musimy pokaza¢, »e je±li
p1 p2 · · · · · ps = q1 q2 · · · · · qt
s i t oraz liczb
s = t i z dokªadno±ci¡ do porz¡dku
q1 , q2 , . . . , qs . Mo»na to zrobi¢ indukcj¡
(4)
p1 , p2 , . . . , ps , q1 , q2 , . . . , qt ,
p1 , p2 , . . . , ps s¡ równe liczbom
wzgl¦dem s. Je»eli s = 0, to iloczyn
po lewej stronie równy jest 1. Gdyby zachodziªo t > 0, to iloczyn po prawej
stronie byªby wi¦kszy od 1, co przeczyªoby równo±ci. St¡d s = t = 0. Zaªó»my
wi¦c indukcyjnie, »e dla pewnego s zachodzi nast¦puj¡ca wªasno±¢: dla ka»dego
t naturalnego i dla wszystkich liczb pierwszych p1 , . . . ,ps , q1 ,. . . qt , je±li p1 p2 ·
· · · · ps = q1 q2 · · · · · qt , to s = t i liczby p1 , . . . ,ps s¡ z dokªadno±ci¡ do porz¡dku
równe liczbom q1 ,. . . qt . Niech p1 p2 · · · · · ps ps+1 = q1 q2 · · · · · qt . Wówczas ps+1
dla pewnych naturalnych
pierwszych
to
liczby
dzieli iloczyn po prawej stronie równo±ci i z udowodnionego faktu wynika, »e
ps+1 = qi
dla pewnego
i.
Obie strony równo±ci mo»emy teraz podzieli¢ przez
wspólny czynnik, otrzymuj¡c tak¡ sytuacj¦, jak w zaªo»eniu indukcyjnym.
2.5
Zasadnicze twierdzenie arytmetyki stanowi podstaw¦ poprawno±ci szkol-
nego algorytmu znajdowania najwi¦kszego wspólnego dzielnika. Sprowadza si¦
a i b, rozªo»y¢ je najpierw na
a = p1 p2 · · · · · ps , b = q1 q2 · · · · · qt , a nast¦pnie obliczy¢
on do tego, aby maj¡c dane liczby naturalne
czynniki pierwsze
NWD(a, b)
jako iloczyn wspólnych czynników. Na pierwszy rzut oka mo»e on
wyda¢ si¦ prostszy od algorytmu Euklidesa, ale tak nie jest. W ogólnym przypadku rozkªad liczby na czynniki pierwsze jest bowiem zagadnieniem znacznie
16
NWD za pomoc¡ algorytmu Euklidesa. We¹my na
a = 3127 i b = 2491. Prosz¦ spróbowa¢ obliczy¢ NWD(a, b) za pomoc¡
trudniejszym ni» obliczenie
przykªad
algorytmu szkolnego, nie zagl¡daj¡c do dalszej cz¦±ci tekstu. Natomiast u»ycie
algorytmu Euklidesa wymaga zaledwie czterech dziele« z reszt¡, daj¡c wynik
NWD(a, b) = 53.
2.6
Wiemy ju», »e liczby pierwsze tworz¡ niesko«czony ci¡g
p1 = 2, p2 = 3, p3 = 5, p4 = 7, p5 = 11, p6 = 13, p7 = 17, . . . .
Przyjrzyjmy si¦ rozkªadowi tych liczb w ci¡gu wszystkich liczb naturalnych.
Para
p1 = 2, p2 = 3
jest jak ªatwo pokaza¢ jedyn¡ par¡ liczb pierwszych,
które ró»ni¡ si¦ o jeden. Wi¦cej jest par liczb pierwszych ró»ni¡cych si¦ o dwa.
Liczby takie nazywa si¦ liczbami pierwszymi bli¹niaczymi. Matematycy znaj¡
wiele przykªadów takich par, w tym przykªady bardzo du»ych liczb pierwszych
bli¹niaczych (cho¢ co mo»e wyda¢ si¦ pewnym zaskoczeniem do tej pory
nie wiadomo, czy par takich jest sko«czenie, czy niesko«czenie wiele). Z drugiej strony mo»na ªatwo pokaza¢, »e dziury mi¦dzy dwoma kolejnymi liczbami
pierwszymi mog¡ by¢ dowolnie du»e: dla dowolnej liczby naturalnej
n ≥ 1 liczby
(n + 1)! + 2, (n + 1)! + 3, (n + 1)! + 4, . . . , (n + 1)! + (n + 1)
s¡ ci¡giem
n kolejnych liczb naturalnych, w±ród których nie ma liczby pierwszej
(dlaczego?). Na pierwszy rzut oka wydaje si¦ wi¦c, »e liczby pierwsze rozrzucone
s¡ w ci¡gu liczb naturalnych w sposób do±¢ kapry±ny.
Sytuacja ulega jednak
zmianie, je±li przypatrze¢ si¦ dostatecznie du»ym przedziaªom liczb naturalnych.
Fakt ten jako pierwszy zaobserwowaª na podstawie r¦cznych rachunków Carl
Friedrich Gauss w roku 1793.
przez
π(x)
Dla dowolnej liczby rzeczywistej
ilo±¢ liczb pierwszych
p
nie wi¦kszych od
Twierdzenie o g¦sto±ci liczb pierwszych (ang.
lim
x→∞
x
oznaczmy
x.
Prime Number Theorem):
π(x)
= 1.
x/ ln(x)
Twierdzenie to zostaªo udowodnione dopiero w roku 1896.
Dowód znalazªo
niezale»nie od siebie dwóch matematyków: Francuz Jacques Hadamard i Belg
Charles de la Vallée Poussin.
Ich prace s¡ ukoronowaniem analitycznej teorii
liczb w XIX w. (Analityczna teoria liczb bada liczby naturalne za pomoc¡ metod
analizy zespolonej). Okoªo roku 1948 tak zwany elementarny dowód twierdzenia
zostaª znaleziony znowu niezale»nie przez Norwega Atle Selberga i W¦gra Paula
Erd®sa. Nale»y przy tym podkre±li¢, »e sªowo elementarny w tym kontek±cie
nie oznacza ªatwy lecz niekorzystaj¡cy z teorii liczb zespolonych.
Twierdzenie o g¦sto±ci mo»na interpretowa¢ nast¦puj¡co: dla dostatecznie
x
ln(x) jest dobrym przybli»eniem funkcji π(x). Daje to mo»liwo±¢ szybkiego oszacowania ilo±ci liczb pierwszych zawartych w dostatecznie
du»ych
x
funkcja
dªugich odcinkach prostej rzeczywistej.
17
x
3
x
ln(x)
π(x)
1 000
168
144.8
10 000
1 229
1 085.7
100 000
9 592
8 685.9
1 000 000
78 498
72 382.4
10 000 000
664 579
620 420.7
Kongruencje
3.1 Niech m b¦dzie dodatni¡ liczb¡ caªkowit¡.
Denicja. Powiemy, »e liczba a przystaje do liczby b modulo m wtedy i tylko
wtedy, gdy
m | (a − b).
W skrócie b¦dziemy pisa¢
a ≡ b (mod m).
Przy ustalonym
m
przystawanie modulo
m
jest wi¦c pewn¡ relacj¡ na zbiorze
liczb caªkowitych. Relacj¦ t¦ nazywa si¦ te» kongruencj¡.
Uwaga.
a mod m na oznaa ≡ b (mod m). S¡ to dwie
Nie nale»y myli¢ wprowadzonego w 1.2 symbolu
czenie reszty z symbolem zdeniowanej wy»ej relacji
ró»ne rzeczy, cho¢ ±ci±le ze sob¡ zwi¡zane (zobacz pkt 7. poni»szego stwierdzenia).
Podstawowe wªasno±ci kongruencji zebrali±my w postaci stwierdzenia.
Stwierdzenie.
1.
Dla dodatnich
min
oraz dowolnych
mamy:
a ≡ a (mod m);
2. je±li
a ≡ b (mod m),
3. je±li
a ≡ b (mod m) i b ≡ c (mod m),
4. je±li
a ≡ b (mod m),
to
to
b ≡ a (mod m);
a ≡ b (mod m) i c ≡ d (mod m),
ac ≡ bd (mod m);
6. je±li
a ≡ b (mod m),
a ≡ b (mod m)
Wªasno±ci 1.-3.
to
to
a ≡ c (mod m);
a + c ≡ b + c (mod m)
5. je±li
7.
a , b, c i d
to je±li
oraz
ac ≡ bc (mod m);
a + c ≡ b + d (mod m)
oraz
an ≡ bn (mod mn);
wtedy i tylko wtedy, gdy
a mod m = b mod m.
mówi¡, »e kongruencja przy ustalonym module jest rela-
cj¡ równowa»no±ci. Wªasno±ci 4.-5. mo»na podsumowa¢ jako pewnego rodzaju
zgodno±ci tej relacji z dziaªaniami arytmetycznymi.
Zauwa»my, »e wszystkie
wªasno±ci 1.5. przysªuguj¡ te» równo±ci. Mo»emy wi¦c kongruencj¦ rozpatrywa¢ jako pewnego rodzaju uogólnienie równo±ci.
3.2
Osobne miejsce zajmuje dzielenie kongruencji przez wspólny czynnik.
18
Stwierdzenie.
(b) Je±li
Dowód.
(a) Je±li ad ≡ bd (mod md) i d > 0, to a ≡ b (mod m).
ad ≡ bd (mod m) i NWD(m, d) = 1, to a ≡ b (mod m).
Cz¦±¢ (b) wynika z lematu 1.13.
3.3 Cechy podzielno±ci
Jako przykªady zastosowania kongruencji podamy tzw. cechy podzielno±ci, czyli
twierdzenia, które upraszczaj¡ rozstrzyganie, czy dana, najcz¦±ciej du»a liczba
zapisana w systemie dziesi¦tnym dzieli si¦ przez
m
(lub w szerszym sensie, uªa-
twiaj¡ znalezienie reszty z dzielenia takiej liczby przez
m).
Ograniczymy si¦
przy tym do kilku prototypowych przykªadów.
Cecha podzielno±ci przez 2:
s
X
ai · 10i ≡ a0
(mod 2),
(5)
i=0
lub sªownie: reszta z dzielenia liczby przez 2 jest taka sama jak reszta jej cyfry
jedno±ci.
Dowód.
Mamy oczywi±cie
10 ≡ 0 (mod 2).
Mno»¡c przez siebie odpo-
10i ≡ 0 (mod 2)
dla i ≥ 1.
i
-tej kongruencji przez ai i dodaniu stronami, otrzymujemy
Ps
i
i=1 ai · 10 ≡ 0 (mod 2). Dodanie do obu stron kongruencji a0 ko«czy dowód.
wiedni¡ liczb¦ razy t¦ kongruencj¦, otrzymujemy
Po przemno»eniu
Cecha podzielno±ci przez 3 i przez 9:
s
X
ai · 10i ≡
i=0
Dowód.
Je±li
m=3
s
X
Je±li
ai
m=3
lub
m = 9,
to
(mod m).
(6)
i=0
10 ≡ 1 (mod m). Przemna»aj¡c t¦ kon10i ≡ 1 (mod m) dla i ≥ 1. Ale analogiczna
i = 0. Wymna»aj¡c i-t¡ kongruencj¦ przez cyfr¦
lub 9, to mamy
gruencj¦ stronami, otrzymujemy
kongruencja zachodzi te» dla
ai
i dodaj¡c wszystkie kongruencje, otrzymujemy (6).
Cecha podzielno±ci przez 11:
s
X
ai · 10i ≡
i=0
Dowód.
s
X
(−1)i ai
(mod 11).
(7)
i=0
Dowód jest podobny do poprzedniego, z tym »e za punkt wyj±cia
bierzemy kongruencj¦
10 ≡ −1 (mod 11).
Cecha podzielno±ci przez 7:
(. . . a5 , a4 , a3 , a2 , a1 , a0 )10 ≡
≡ (a2 , a1 , a0 )10 − (a5 , a4 , a3 )10 + (a8 , a7 , a6 )10 − . . .
19
(mod 7).
(8)
Dowód.
Dowód wynika z kongruencji
1000 ≡ −1 (mod 7).
3.4 Arytmetyczne sumy kontrolne Rozpowszechnienie technik komputerowych w ró»nych dziedzinach »ycia (gospodarka, administracja, ochrona zdrowia
itd.) nasiliªo tendencj¦ do identykowania najró»niejszych obiektów za pomoc¡
pewnych z góry przydzielonych im kluczynumerów. Wystarczy wspomnie¢ takie numery jak PESEL, NIP, REGON, numer dowodu rejestracyjnego pojazdu
czy dowodu osobistego, numery rachunków bankowych i kart kredytowych. Numery te s¡ cz¦sto przetwarzane przy udziale czªowieka lub takich urz¡dze« jak
czytniki kodów kreskowych i skanery pisma. Z tej racji nara»one s¡ na ró»nego
rodzaju bª¦dy.
Skutkom takich bª¦dów zapobiega pewien prosty, ale jak zo-
baczymy do±¢ skuteczny mechanizm kontrolny: dopuszczalnym identykatorem
mo»e by¢ jedynie numer speªniaj¡cy pewien prosty do sprawdzenia warunek.
Warunek ten nale»y dobra¢ tak, aby cz¦sto pojawiaj¡ce si¦ bª¦dy powodowaªy
jego zakªócenie, co umo»liwia wykrycie bª¦du.
Zacznijmy od kilku przykªadów
Przykªad 1.
EAN (European Article Number) jest numerem identykuj¡cy
towary sprzedawane w supermarkietach. Skªada si¦ z 13 cyfr, które oznaczymy
(a1 , a2 , . . . , a13 ).
przez
Cyfry te s¡ drukowane za pomoc¡ kodu kreskowego na
opakowaniach jednostkowych. Pierwszych dwana±cie cyfr koduje m.in. kraj producenta, producenta towaru oraz towar. Ostatnia cyfra jest dobierana tak, aby
1 · a1 + 3 · a2 + 1 · a3 + 3 · a4 + · · · + 3 · a12 + 1 · a13 ≡ 0
(mod 10).
Zauwa»my, »e nie ma dwóch ró»nych numerów EAN, które ró»ni¡ si¦ na do-
(a1 , a2 , . . . , ai , . . . , a13 )
(a1 , a2 , . . . , a0i , . . . , a13 ) s¡ dwoma dopuszczalnymi numerami EAN. Wóczas
kªadnie jednym miejscu. Aby to zobaczy¢, zaªó»my »e
oraz
zachodz¡ nast¦puj¡ce kongruencje:
a1 + 3a2 + . . . +wi ai +· · · + a13
a1 + 3a2 + . . . +wi a0i +· · · + a13
gdzie
w1
≡ 0 (mod 10)
≡ 0 (mod 10),
jest równe 1 lub 3 w zale»no±ci od parzysto±ci liczby
i.
Odejmuj¡c
kongruencje stronami, otrzymujemy
wi (ai − a0i ) ≡ 0
Poniewa»
wi
jest wzgl¦dnie pierwsze z moduªem
nami podzieli¢ przez
wi ,
ai
oraz
a0i
10,
mo»emy kongruencj¦ stro-
co daje
ai − a0i ≡ 0
Ale
(mod 10).
(mod 10).
−9 i 9 .
Jedyn¡
w tym przedziale jest liczba 0, co oznacza, »e
ai = a0i
s¡ cyframi, wi¦c ich ró»nica zawiera si¦ pomi¦dzy
liczb¡ podzieln¡ przez
10
i rozpatrywane numery s¡ identyczne. Udowodniona wªasno±¢ gwarantuje nam,
»e je±li przy przetwarzaniu numeru EAN pomylimy si¦ na jednej pozycji, to
20
otrzymany numer nie b¦dzie prawidªowym numerem EAN i bª¡d taki zostanie
wykryty przy sprawdzaniu warunku kontrolnego.
Przykªad 2.
10znakowym
ISBN (International Standard Book Number) jest
numerem nadawanym ksi¡»kom. Pierwszych
macje o wydawcy i tytule. Ostatni znak
10)
przypiszemy warto±¢ liczbow¡
b10
9
znaków to cyfry nios¡ce infor-
to cyfra lub symbol
X
(któremu
i jest on dobierany w ten sposób, aby zacho-
dziªa kongruencja
b1 + 2b2 + 3b3 + · · · + 9b9 + 10b10 ≡ 0
(mod 11).
Podobnie jak dla numeru EAN mo»na pokaza¢, »e ten mechanizm kontrolny
pozwala wykry¢ dowolny bª¡d polegaj¡cy na przekªamaniu pojedynczego znaku.
Jest tak»e odporny na inny cz¦sty bª¡d pojawiaj¡cy si¦ przy przetwarzaniu
dªugich ci¡gów znaków przy udziale czªowieka. Mowa tu o tzw. bª¦dzie czeskim
polegaj¡cym na przestawieniu dwóch s¡siednich znaków (na przykªad, gdy kto±
zamiast
. . . 27 . . .
czyta
. . . 72 . . . ).
Wi¦kszo±¢ stosowanych w takich sytuacjach mechanizmów kontrolnych podpada pod schemat wa»onej sumy kontrolnej, który mo»na abstrakcyjnie opisa¢
tak.
Ustalamy pewien moduª
m
i liczba
C
(najcz¦±ciej
C = 0)
oraz alfabet
(czyli zbiór znaków, z których b¦dziemy tworzy¢ numery). Ka»da litera alfabetu ma swoj¡ warto±¢ liczbow¡ b¦d¡c¡ reszt¡ z dzielenia przez
m,
przy czym
zakªadamy, »e ró»nym literom odpowiadaj¡ ró»ne reszty. W dalszym ci¡gu b¦dziemy uto»samia¢ liter¦ z jej warto±ci¡ liczbow¡. Ponadto ustalmy pewien ci¡g
liczb
w1 , w2 , . . .
zwanych wagami. B¦dziemy mówi¢, »e numer
(a1 , a2 , . . . , an )
speªnia warunek kontrolny, gdy
w1 a1 + w2 a2 + · · · + wn an ≡ C
(mod m).
Nietrudno udowodni¢, »e
i
1. je±li dla wszystkich
wagi
wi
s¡ wzgl¦dnie pierwsza z moduªem
m,
to
mechanizm kontrolny wykrywa ka»de przekªamanie pojedynczego znaku;
2. je±li dla wszystkich
i
ró»nica wag
wi+1 − wi
jest wzgl¦dnie pierwsza z
m,
to system wykrywa ka»dy pojedynczy bª¡d czeski.
Przykªad 3.
Od pewnego czasu w Polsce obowi¡zuje system numeracji kont
bankowych zgodny ze standardem IBAN (International Bank Account Number).
Numer konta jest liczb¡
26cyfrow¡.
Na przykªad
35 1010 1010 0070 5422 2100 0000
jest numerem jednego z kont Urz¦du Skarbowego w Toruniu.
Ogólnie ka»dy
numer mo»na zapisa¢ w postaci
k1 k2 b1 b2 b3 b4 b5 b6 b7 b8 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16 ,
gdzie
k1 k2
s¡ tak zwanymi cyframi kontrolnymi, cyfry
oraz jego oddziaª, a cyfry od
nim oddziale banku.
n1
do
n16
b1
do
b8
identykuj¡ bank
koduj¡ numer rachunku w odpowied-
Na zewn¡trz polskiego systemu bankowego numer taki
21
poprzedza si¦ literami PL identykuj¡cymi nasz kraj, co daje napis postaci
PL k1 k2 b1 b2 b3 b4 b5 b6 b7 b8 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16 .
Aby sprawdzi¢ formaln¡ poprawno±¢ takiego numeru, nale»y
1. pierwsze dwie grupy znaków (tj.
PL k1 k2
przenie±¢ w niezmienionej kolej-
no±ci na koniec: w naszym przykªadzie daje to
1010 1010 0070 5422 2100 0000 PL 35;
2. zast¡pi¢ wszystkie litery ich kodami liczbowymi w ten sposób, »e kolejnym
literom od
A do Z alfabetu angielskiego odpowiadaj¡ warto±ci od 10 do 35;
PL napisem
dla polskiego numeru rachunku oznacza to zast¡pienie napisu
2521
(w niektórych krajach numer rachunku bankowego mo»e zawiera¢
oprócz cyfr tak»e litery, algorytm sprawdzania poprawno±ci jest jednak
taki sam dla wszystkich krajów obj¦tych systemem);
3. otrzymany napis potraktowa¢ jako przedstawienie dziesi¦tne liczby naturalnej; w naszym przykªadzie otrzymujemy wi¦c liczb¦
30-cyfrow¡
101 010 100 070 542 221 000 000 252 135;
4. uzna¢ numer za poprawny, je±li liczba ta przy dzieleniu przez
97 daje reszt¦
1.
Šatwo zobaczy¢, »e (przynajmniej w odniesieniu do numerów kont obowi¡zuj¡cych w Polsce) powy»szy schemat formalnej poprawno±ci numeru jest wa»on¡
sum¡ kontroln¡ w opisanym wy»ej sensie.
4
Kongruencje z niewiadom¡ i chi«skie twierdzenie o resztach
4.1
Zacznijmy od najprostszej kongruencji z niewiadom¡
x:
x ≡ b (mod m).
Z denicji liczba
od
b
x
speªnia t¦ kongruencj¦ wtedy i tylko wtedy, gdy
o pewn¡ wielokrotno±¢
m
(9)
x
ró»ni si¦
tzn. zbiór rozwi¡za« jest równy
{b + km|k ∈ Z}.
Zauwa»my, »e w zbiorze tym jest dokªadnie jedna reszta z dzielenia przez
Jest ni¡ liczba
x0 = b mod m.
22
m.
4.2
Troch¦ bardziej skomplikowan¡ sytuacj¦ mamy dla kongruencji
ax ≡ b (mod m).
(10)
Zauwa»my, »e je»eli kongruencja (10) ma rozwi¡zanie, to
NWD(a, m) | b.
Je±li ten warunek jest speªniony, to kongruencja (10) jest równowa»na kongruencji
a0 x ≡ b0
(mod m0 ),
a0 = a/d, b0 = b/d, m0 = m/d, d = NWD(a, m), a w szczególno±ci
NWD(a0 , m0 ) = 1. W dalszym ci¡gu wystarczy si¦ wi¦c zaj¡¢ kongruencj¡ (10)
przy zaªo»eniu, »e wspóªczynnik a i moduª m s¡ wzgl¦dnie pierwsze. Wówczas
istniej¡ takie liczby α i µ, »e
gdzie
αa + µm = 1.
Co wi¦cej, liczby te mo»emy efektywnie znale¹¢, wykonuj¡c rozszerzony algorytm Euklidesa dla
a
i
m.
Poniewa»
kongruencj¦ (10) stronami przez
α,
αa ≡ 1 (mod m),
wi¦c przemna»aj¡c
otrzymujemy kongruencj¦
x ≡ bα
(mod m),
któr¡ mo»emy rozwi¡za¢ analogicznie jak zrobili±my to dla kongruencji (9). W
istocie otrzymana kongruencja jest równowa»na kongruencji (10) (bo przemna»aj¡c j¡ stronami przez
a,
powracamy do (10)).
4.3 Chi«skie twierdzenie o resztach dla dwóch moduªow
Rozwa»my
teraz ukªad dwóch kongruencji
Twierdzenie.
liczb
a1 i a2
x ≡
x ≡
Je»eli moduªy
m1
a1
a2
i
m2
(mod m1 ),
(mod m2 ).
(11)
s¡ wzgl¦dnie pierwsze to dla dowolnych
ukªad (11) jest niesprzeczny. Ma on dokªadnie jedno rozwi¡zanie
b¦d¡ce reszt¡ modulo
m1 m2 .
x0
Ka»de inne rozwi¡zanie ró»ni si¦ od rozwi¡zania
x0 o pewn¡ wielokrotno±¢ iloczynu m1 m2 .
Dowód.
Wyka»emy najpierw niesprzeczno±¢ ukªadu, wskazuj¡c pewne jego
rozwi¡zanie. Ze wzgl¦dnej pierwszo±ci liczb m1 i m2 wynika, »e istniej¡ liczby
µ1 i µ2 , dla których
µ1 m1 + µ2 m2 = 1.
Mno»¡c powy»sz¡ równo±¢ stronami odpowiednio przez
równo±ci
a1 µ1 m1 + a1 µ2 m2
=
a1 ,
a2 µ1 m1 + a2 µ2 m2
=
a2 .
23
a1 oraz a2 , otrzymujemy
Pierwsza z równo±ci mówi nam, »e liczba
lokrotno±¢ liczby
m1 ,
a1 µ2 m2
ró»ni si¦ od
Oczywi±cie dodaj¡c do tej liczby dowoln¡ wielokrotno±¢
otrzymamy rozwi¡zanie pierwszej kongruencji.
±ci wynika, »e liczba
a1
o pewn¡ wie-
a wi¦c jest rozwi¡zaniem pierwszej z kongruencji w (11).
a2 µ1 m1
m1 ,
w dalszym ci¡gu
Analogicznie z drugiej równo-
jest rozwi¡zaniem drugiej kongruencji i dodaj¡c
m2 , znowu otrzymamy rozwi¡zanie
a2 µ1 m1 + a1 µ2 m2 jest wspólnym rozwi¡zaniem
do tego rozwi¡zania dowoln¡ wielokrotno±¢
drugiej kongruencji. St¡d suma
obu kongruencji. Oczywi±cie liczba
x0 = a2 µ1 m1 + a1 µ2 m2
mod m1 m2
te» jest rozwi¡zaniem.
x0 i x00 s¡ dwoma rozwi¡zaniami ukªadu (11), to ró»ni¡ si¦ o pewn¡ wielokrotno±¢ iloczynu m1 m2 . Odej0
00
muj¡ od siebie stronami kongruencje x ≡ a1 (mod m1 ) i x ≡ a1 (mod m1 ),
0
00
0
00
otrzymujemy x − x ≡ 0 (mod m1 ), czyli x − x = km1 dla pewnego k ∈ Z.
0
00
Analogicznie odejmuj¡c drugie kongruencje, mamy x − x ≡ 0 (mod m2 ), czyli
0
00
m2 | x − x = km1 . Ale z zaªo»enia m1 i m2 s¡ wzgl¦dnie pierwsze, wi¦c m2
0
0
0
00
0
dzieli k i k = k m2 dla pewnego k ∈ Z. St¡d x − x = k m1 m2 .
Dla zako«czenia dowodu wystarczy pokaza¢, »e je±li
Zauwa»my, »e dowód daje nam w istocie algorytm rozwi¡zania ukªadu (11).
Najbardziej pracochªonn¡ cz¦±ci¡ tego algorytmu jest rozszerzony algorytm Euklidesa dla pary
(m1 , m2 ).
Wiedz¡c, »e ukªad (11) jest równowa»ny kongruencji z moduªem
m1 m2 ,
mo»na zastosowa¢ inn¡ strategi¦ znalezienia rozwi¡zania ukªadu. Mno»¡c (we-
m2 , a drug¡
dªug wzoru z punktu 6 stwierdzenia 3.1) pierwsz¡ kongruencj¦ przez
przez
m1
i odejmuj¡c stronami, otrzymujemy
(m2 − m1 )x ≡ a1 m2 − a2 m1
Zauwa»my, »e wzgl¦dna pierwszo±¢ liczb
m1 , m1 m2 ) = 1,
m1
(mod m1 m2 ).
i
m2
gwarantuje, »e
NWD(m2 −
a wi¦c powy»sza kongruencja ma rozwi¡zanie. Rozwi¡zanie to
jest rozwi¡zaniem ukªadu (11).
4.4 Ogólna posta¢ chi«skiego twierdzenia o resztach
Twierdzenie. Je»eli liczby m1 , m2 , . . . , ms s¡ parami wzgl¦dnie
dla dowolnych
pierwsze, to
a1 , a2 , . . . , as ukªad kongruencji

x ≡ a1 (mod m1 ),




 x ≡ a2 (mod m2 ),
......................





x ≡
as
(mod ms ).
jest niesprzeczny. Ukªad ma dokªadnie jedno rozwi¡zanie
m1 m2 . . . ms .
m1 m2 . . . ms .
modulo iloczyn
krotno±¢
(12)
......................
x0 ,
które jest reszt¡
Ka»de inne rozwi¡zanie ró»ni si¦ od
24
x0
o wielo-
Opieraj¡c si¦ na wersji chi«skiego twierdzenia o resztach dla dwóch kongruencji mo»na udowodni¢ twierdzenie, stosuj¡c indukcj¦ wzgl¦dem
s.
4.5 Maªe twierdzenie Fermata
Twierdzenie. Je»eli p jest liczb¡ pierwsz¡, a a liczb¡ niepodzieln¡ przez p, to
ap−1 ≡ 1
Dowód.
Niech
Poniewa»
p
(mod p).
(13)
Z∗p b¦dzie zbiorem niezerowych reszt modulo p. Rozpatrzmy
∗
∗
odwzorowanie fa : Zp → Zp dane wzorem fa (x) = ax mod (p). Poka»emy
0
najpierw, »e odwzorowanie fa jest ró»nowarto±ciowe. Je±li bowiem fa (x ) =
00
fa (x ), to
ax0 ≡ ax00 (mod p).
jest liczb¡ pierwsz¡ i
p
nie dzieli
a,
wi¦c
aip
i powy»sz¡ kongruencj¦ mo»emy podzieli¢ stronami przez
x0 ≡ x00
a poniewa»
x0 i x00
Odwzorowanie
(1, 2, . . . , p − 1)
St¡d
p,
wi¦c mamy równo±¢.
jest ró»nowarto±ciowym odwzorowaniem zbioru sko«czo-
nego w siebie, wi¦c jest bijekcj¡ ci¡g
ci¡gu
a.
(mod p),
s¡ resztami modulo
fa
s¡ wzgl¦dnie pierwsze
(fa (1), fa (2), . . . , fa (p − 1))
ró»ni si¦ od
jedynie kolejno±ci¡ wyrazów. W szczególno±ci
fa (1) · fa (2) · · · · · fa (p − 1) = 1 · 2 · · · · · (p − 1).
Z drugiej strony
fa (1) · fa (2) · · · · · fa (p − 1) ≡ (1a) · (2a) · · · · · (a(p − 1)) = ap−1 · 1 · 2 · · · · · (p − 1),
gdzie
≡
oznacza przystawanie modulo
p.
Porównuj¡c oba wyra»enia, mamy
ap−1 · 1 · 2 · · · · · (p − 1) ≡ 1 · 2 · · · · · (p − 1)
Poniewa» reszty 1, 2,. . . ,p−1 s¡ wzgl¦dnie pierwsze z
(mod p).
p, wi¦c kongruencj¦ mo»na
stronami podzieli¢ przez ich iloczyn, co daje tez¦.
4.6 Kryptosystem RSA Pod koniec lat 70-tych ubiegªego wieku D. Rivest,
Shamir i Adleman zaproponowani nast¦puj¡cy sposób szyfrowania wiadomo±ci.
Wybierzmy dwie ró»ne i du»e liczby pierwsze
p
i
q
(obecnie uwa»a si¦, »e dla
bezpiecze«stwa systemu ka»da z nich powinna mie¢ w zapisie dwójkowym co naj-
n = pq . Wybierzmy ponadto liczb¦ e wzgl¦dnie pierwsz¡
(p − 1)(q − 1). Para (n, e) tworzy tak zwany klucz publiczny kryp-
mniej 512 cyfr) i niech
z iloczynem
tosystemu: mo»emy tak¡ par¦ ogªosi¢ publicznie (np. umie±ci¢ na naszej stronie
domowej w Internecie). Ka»dy zainteresowany mo»e teraz przekaza¢ nam zaszyfrowan¡ wiadomo±¢, któr¡ jedynie my b¦dziemy w stanie odczyta¢. Zaªó»my,
»e wiadomo±ci b¦d¡ resztami modulo
n
25
(jakkolwiek z pozoru takie zaªo»enie
mo»e wyda¢ si¦ dziwne i nienaturalne, to pami¦tajmy, »e ka»da wiadomo±¢ tekstowa, a nawet obraz czy d¹wi¦k w postaci elektronicznej jest jedynie ci¡giem
bitów, który mo»emy potraktowa¢ jako rozwini¦cie dwójkowe liczby naturalnej;
»¡danie aby to byªa reszta, ogranicza jedynie dªugo±¢ wiadomo±ci). Szyfrowanie
wiadomo±ci
a
za pomoc¡ klucza
(n, e)
polega na obliczeniu
s = ae
mod n.
(14)
Aby odszyfrowa¢ tak¡ wiadomo±¢, musimy przygotowa¢ sobie tak zwany klucz
tajny. Poniewa»
k,
NWD(e, (p − 1)(q − 1)) = 1,
wi¦c istniej¡ liczby naturalne
d
i
dla których
ed − k(p − 1)(q − 1) = 1.
(15)
Co wi¦cej, liczby te mo»emy efektywnie obliczy¢, stosuj¡c rozszerzony algorytm
Euklidesa. Klucz tajny stanowi para
(n, d), a odszyfrowanie polega na obliczeniu
sd
mod n.
(16)
Dlaczego prowadzi to do odtworzenia wiadomo±ci
a?
Zauwa»my najpierw, »e
sd ≡ (ae )d = aed = a1+k(p−1)(q−1) ,
gdzie
≡
n.
p i q s¡ ró»nymi
a ∈ Z i k ∈ N zachodzi
oznacza kongruencj¦ modulo
Stwierdzenie.
dowolnych
Je»eli
liczbami pierwszymi i
n = pq ,
to dla
a1+k(p−1)(q−1) ≡ a (mod n).
Dowód.
Zaªó»my na razie, »e liczba
a
p.
Wówczas z
k(q − 1),
a nast¦pnie
jest niepodzielna przez
maªego twierdzenia Fermata
ap−1 equiv1
(mod p).
Podnosz¡c kongruencj¦ stronami do pot¦gi o wykªadniku
przemna»aj¡c przez
a,
otrzymujemy
a1+k(p−1)(q−1) ≡ a
(mod p).
a jest podzielna przez p, to po obu stronach kongruencji mamy liczb¦
p, a wi¦c kongruencja zachodzi w rzeczywisto±ci dla wszystkich
liczb caªkowitych a. Tak samo mo»emy dowie±¢ analogicznej kongruencji modulo q . Poniewa» p i q jako ró»ne liczby pierwsze s¡ wzgl¦dnie pierwsze, wi¦c
przystawanie modulo p i q implikuje przystawanie modulo n = pq .
Je±li liczba
podzieln¡ przez
Stwierdzenie dowodzi, »e najpierw szyfruj¡c wiadomo±¢
a
kluczem publicz-
nym, a nast¦pnie deszyfruj¡c j¡ kluczem prywatnym, otrzymujemy z powrotem
a.
Znacznie subtelniejsza jest kwestia bezpiecze«stwa systemu i peªne rozwa-
»enie jej wymaga obszernych wiadomo±ci z algorytmicznej teorii liczb, a wi¦c
znacznie wykracza poza zakres tych notatek. Ujmuj¡c rzecz do±¢ pobie»nie, bezpiecze«stwo zasadza si¦ na trudno±ci rozªo»enia liczby
26
n
na czynniki pierwsze.
Download