Md06 - Teoria liczb

Transkrypt

Md06 - Teoria liczb
Matematyka Dyskretna
Andrzej Szepietowski
25 czerwca 2002 roku
Rozdział 1
Teoria liczb
1.1 Dzielenie całkowitoliczbowe
Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy 1743 przez 12.
1
1
1
7
2
5
4
4
4
5
3
4
8
6
6
:
1
2
3
0
3
W wyniku dzielenia otrzymaliśmy iloraz 145 i reszt˛e 3. Liczby te spełniaja˛ równanie
i reszta jest mniejsza od dzielnika. Podobnie możemy postapić
˛ dla dowolnych liczb natu
ralnych i pod warunkiem, że .
Twierdzenie 1.1 Dla dowolnych liczb naturalnych oraz para liczb naturalnych i spełniajacych
˛
warunki:
!
istnieje dokładnie jedna
#"$
nazywa si˛e ilorazem całkowitoliczbowym przez , a nazywa si˛e reszta̧ z dzielenia
&%
Zauważmy, że iloraz jest zaokra̧gleniem w dół normalnego ilorazu (')+* . Iloraz
całkowitoliczbowy liczb i bȩdziemy oznaczać przez
-,.
/10(2
3
43651789
4
Rozdział 1. Teoria liczb
a reszt˛e przez
63
)
Przykład 1.2
,
!
oraz
)
!
63
9
, ponieważ
-.
oraz
$
"
.
W przypadku, gdy i sa˛ liczbami całkowitymi iloraz i różnice można róznie definiowa ć.
Na przykład w jȩzyku Pascal iloraz dwóch liczb typu całkowitego oznacza siȩ przez
a div b
%
') w dół, gdy 6') jest dodatnie i (') , —
i jest to 6')+* — zaokra̧glenie ilorazu 6
zaokra̧glenie ilorazu (' w górȩ, gdy (') jest ujemne. Reszta, która̧ oznacza siȩ przez
a mod b,
jest określona wzorem:
a mod b = a-(a div b)*b.
Mamy wiȩc, na przykład:
22 div 4 = 5; (-22)div 4 = -5; 22 div(-4)= -5; (-22)div(-4)= 5;
22 mod 4 = 2; (-22)mod 4 = -2; 22 mod(-4)= 2; (-22)mod(-4)= -2.
1.2 Podzielność liczb
Mówimy, że liczba całkowita wita , taka że:
dzieli liczbȩ całkowita̧ , jeżeli istnieje liczba całko
9
Bȩdziemy to oznaczać przez . Zauważmy, że zachodzi wtedy:
63
9
Liczbȩ nazywamy dzielnikiem liczby .
, oraz .
Lemat 1.4 Jeżeli oraz , to oraz Dowód. Jeżeli i , to istnieja̧ dwie liczby całkowite i oraz
9
Przykład 1.3
Mamy wiȩc:
oraz
czyli dzieli oraz .
, takie że:
1.3. Relacja kongruencji
5
1.3 Relacja kongruencji
Niech bȩdzie dowolna̧ liczba̧ naturalna̧ . Powiemy, że dwie liczby całkowite i
sa̧ równoważne (lub przystaja̧) modulo , jeżeli
9
Bȩdziemy wtedy pisać:
Przykład 1.5
63 .
63 ,
63 9
63 , 63 Jeżeli i sa˛ dodatnie, to same reszty z dzielenia przez .
63 , wtedy i tylko wtedy, gdy i maja˛ takie
Lemat 1.6 Relacja przystawania modulo jest relacja̧ równoważności, czyli spełnia nastȩpuja̧ce
trzy warunki:
zwrotno´
sc´, dla każdego zachodzi
symetriȩ, dla każdego i , jeżeli
przechodnio´
sc´, dla każdego , i ,
jeżeli
63 i
63 ,
63 to
63 Dowód. Udowodnimy tylko przechodniość relacji. Jeżeli
to czyli .
63 ,
63 .
oraz to
Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnożeniem.
Twierdzenie 1.7 Jeżeli
63 3 oraz
3 3 to:
63 9
Dowód. Z założenia mamy:
z tego zaś łatwo wynika, że dzieli:
oraz ! czyli zachodzi teza twierdzenia.
Przykład 1.8 Twierdzenie 1.7 może być użyte do obliczania reszty z dzielenia Jeżeli chcemy policzyć na przykład
63
6
Rozdział 1. Teoria liczb
to pytamy, która z trzech liczb
przystaje do 1999 modulo 3. Zróbmy najpierw
kilka prostych obserwacji. Po pierwsze:
63 . Z twierdzenia 1.7 wynika, że każda potȩga liczby dziesiȩć przystaje do 1
bo modulo 3, czyli:
dla każdego . Mamy teraz:
3 )84
)8
63 9
Podobnie, dla dowolnej liczby , jeżeli zapiszemy w postaci dziesiȩtnej:
to
63 czyli ma takie same reszty modulo 3 co suma cyfr w zapisie dziesiȩtnym.
Przykład 1.9 Aby przekonać si˛e, że
)8
(
wystarczy zauważyć, że liczba
jest parzysta, wi˛ec także wynik mnożenia powinien
) byż parzysty. Mówiac
˛ inaczej
63 oraz
63 , wi˛ec na
(
podstawie twierdzenia 1.7 mamy
63 , a liczba
przystaje
do jedynki modulo 2. Podobnie możemy si˛e przekonać, że
)8
)#
(
wystarczy zauważyć, że w iloczynie
ostatnia˛ cyfra˛ powinno być 8 a nie 6.
Inaczej
oraz
63
3
, wi˛ec na podstawie twierdze .
63 , a liczba ) przystaje do 6 modulo
nia 1.7 mamy
10.
1.4 Klasy abstrakcji
Dla relacji przystawania modulo definiujemy klasy abstrakcji. Dla dowolnej liczby
całkowitej , klasȩ abstrakcji elementu definiujemy w nastȩpuja̧cy sposób:
3 9
Innymi słowy, klasa abstrakcji liczby to zbiór wszystkich liczb z nia̧ równoważnych.
Przykład 1.10 Dla mamy trzy klasy abstrakcji
1.5. Pierścień 9 9 9
7
9 99 9 99 99 9 )
9 99 99 9 Zauważmy, że klasy abstrakcji elementów równoważnych pokrywaja̧ siȩ.
Lemat 1.11 Jeżeli
63 Dowód. Jeżeli
to 63 to
i z przechodniości relacji a wiȩc pokazaliśmy, że:
.
63 , czyli:
9
Identycznie pokazujemy zawieranie odwrotne .
Nastȩpna ważna własność klas abstrakcji to ich rozła̧czność.
to
Lemat 1.12 Jeżeli
,
inaczej, dwie klasy abstrakcji i albo sa̧ identyczne, albo sa̧ rozła̧czne.
Dowód. Przypuśćmy, że klasy i maja̧ wspólny element . Wtedy:
63 Z przechodniości mamy wtedy 63 9
63 , a z lematu 1.11 .
1.5 Pierścień Klasy abstrakcji relacji modulo Dla dowolnego z przedziału
wygla̧daja̧ nastȩpuja̧co:
#
99 9 9
, klasa jest postaci:
( oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo oznacza siȩ przez
.
Ponieważ relacja modulo jest zgodna z działaniami dodawania i mnożenia, możemy
zdefiniować dodawanie i mnożenie na klasach abstrakcji. Mówia̧c w skrócie, aby wykonać działanie na dwóch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych
8
Rozdział 1. Teoria liczb
klas i wykonujemy działania na tych przedstawicielach. Dokładniej, dodawanie klas abstrakcji definiujemy nastȩpuja̧co:
9
Podobnie definiujemy odejmowanie i mnożenie:
9
Poniższy lemat pokazuje, że działania te sa̧ dobrze zdefiniowane; że wynik działania na
dwóch klasach nie zależy od wyboru reprezentantów.
Lemat 1.13 Jeżeli
oraz
to:
9
Dowód. Z założenia mamy:
a z twierdzenia 1.7:
63 Przykład 1.14 Niech
należy do
63 9
oraz
. Dla dowolnych
liczb ) dwóch
.
a iloczyn do
9
i
ich suma
Lemat 1.15 Działania na klasach abstrakcji
9 99 spełniaja̧ nastȩpuja̧ce warunki:
dodawanie oraz mnożenie sa̧ przemienne i ła̧czne,
klasa
jest elementem neutralnym dodawania, to znaczy dla każdego mamy
,
dla każdej klasy istnieje klasa do niej przeciwna 8
, taka że 8
,
jest
elementem neutralnym mnożenia, to znaczy dla dowolnego mamy
,
mnożenie jest rozdzielne wzglȩdem dodawania, czyli dla każdych trzech klas ,
, mamy .
klasa
Zbiór z dwoma działaniami spełniaja̧cymi powyższe warunki nazywa siȩ pierścieniem
przemiennym z jedynka̧.
1.5. Pierścień 9
Dowód: Udowodnimy tylko rozdzielność:
9
Skorzystaliśmy w tym dowodzie z rozdzielności mnożenia wzglȩdem dodawania dla liczb
całkowitych.
Przykład 1.16 Rozważmy zbiór reszt modulo 5. Składa siȩ on z piȩciu klas:
dla prostoty bȩdziemy dalej opuszczać nawiasy. Mamy wiȩc zbiór:
z dodawaniem i mnożeniem określonym nastȩpuja̧cymi tabelami:
+
0
1
2
3
4
0
0
1
2
3
4
1
1
2
3
4
0
2
2
3
4
0
1
3
3
4
0
1
2
4
4
0
1
2
3
0
0
0
0
0
0
0
1
2
3
4
1
0
1
2
3
4
2
0
2
4
1
3
3
0
3
1
4
2
4
0
4
3
2
1
Zauważmy, że każdy element oprócz zera ma w
element odwrotny wzglȩdem mnożenia,
czyli dla każdego istnieje taki że :
9
Dlatego jest ciałem, czyli pierścieniem przemiennym z jedynka̧ i z odwrotnościa̧ wzglȩdem
mnożenia.
Przykład 1.17 Rozważmy teraz pierścień reszt modulo 4:
gdzie dodawanie i mnożenie jest określone nastȩpuja̧cymi tabelami:
+
0
1
2
3
0
0
1
2
3
1
1
2
3
0
2
2
3
0
1
3
3
0
1
2
0
1
2
3
0
0
0
0
0
1
0
1
2
3
2
0
2
0
2
3
0
3
2
1
nie jest ciałem, ponieważ nie ma w nim elementu odwrotnego do 2. Ponadto w
mamy:
- czyli zero można przedstawić jako iloczyn dwóch liczb różnych od zera.
10
Rozdział 1. Teoria liczb
Łatwo zauważyć, że jeżeli liczba jest złożona, dla
"
" , to w
pierścieniu mamy i ani , ani nie maja̧ elementów odwrotnych. Przypuśćmy
bowiem, że istnieje . Mamy wtedy:
czyli , sprzeczność. Tak wiȩc nie jest ciałem, jeżeli jest liczba̧ złożona̧.
W dalszej czȩści tego rozdziału zobaczymy, że jeżeli jest liczba̧ pierwsza̧, to jest
ciałem.
1.6 Najwiȩkszy wspólny dzielnik
Dla dwóch liczb całkowitych i , ich najwiȩkszy wspólny dzielnik to po prostu najwiȩksza
liczba całkowita , która dzieli i . Najwiȩkszy wspólny dzielnik liczb i bȩdziemy
oznaczać przez
. Na przykład:
,
.
1.7 Algorytm Euklidesa
Najwiȩkszy wspólny dzielnik dwóch liczb dodatnich można obliczyć za pomoca̧ algorytmu Euklidesa.
Algorytm Euklidesa. Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb
naturalnych , , powtarzamy aż do skutku:
jeżeli jeżeli , to jeżeli "
, to koniec,
, to ,
,
.
Powyższy algorytm odejmuje od wiȩkszej liczby mniejsza̧ tak długo, aż liczby bȩda̧ równe. Wtedy wynikiem działania algorytmu jest wspólna wartość tych liczb. W uproszczonej wersji jȩzyka Pascal algorytm Euklidesa można zapisać w nastȩpuja̧cy sposób:
p:=a;q:=b;
while p<>q do
if p>q then p:=p-q
else q:=q-p;
NWD(a,b):=p
W poniższej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze
liczb 36 i 15:
1.7. Algorytm Euklidesa
11
36
21
6
6
6
3
15
15
15
9
3
3
Tak wiȩc 3 jest najwiȩkszym wspólnym dzielnikiem liczb 15 i 36.
Poprawność algorytmu Euklidesa wynika z poniższego lematu.
Lemat 1.18 Niech i bȩda̧ dwoma liczbami naturalnymi i niech
para ma taki sam zbiór wspólnych dzielników jak para , .
"
"
. Wtedy
Dowód. Jeżeli liczba jest wspólnym dzielnikiem pary , to dzieli także , czyli
jest wspólnym dzielnikiem pary , .
Na odwrót, jeżeli liczba jest wspólnym dzielnikiem pary , , to dzieli także
, czyli jest wspólnym dzielnikiem pary .
Tak wiȩc po każdej iteracji pȩtli while para ma taki sam zbiór wspólnych dziel
ników, a wiȩc także taki sam najwiȩkszy wspólny dzielnik. Na ko ńcu, gdy
, wów
czas oczywiście
.
Należy jeszcze pokazać, że dla każdej pary dodatnich liczb naturalnych i algorytm
zatrzyma siȩ. Ale to wynika z faktu, że po każdej iteracji pȩtli while liczba
jest coraz mniejsza, a ponieważ jest to zawsze liczba naturalna dodatnia, wiȩc nie może
zmniejszać siȩ w nieskończoność. Zauważmy przy okazji, że jeżeli jedna z dwóch liczb,
lub , jest zerem, to algorytm nie zatrzyma siȩ.
Twierdzenie 1.19 Niech i bȩda̧ dwoma dodatnimi liczbami naturalnymi i niech
. Wtedy istnieja̧ liczby całkowite i , takie że:
lub mówia̧c inaczej,
(
jest kombinacja̧ całkowitoliczbowa̧ liczb i .
Dowód. Pokażmy, że wszystkie wartości, jakie przyjmuja̧ zmienne i w trakcie wykonywania algorytmu Euklidesa, sa̧ całkowitoliczbowymi kombinacjami liczb i . Na
i
, mamy:
pocza̧tku, gdy
Załóżmy teraz, że po -tej iteracji pȩtli
Wtedy w
)
9
$ oraz że zachodzi:
9
iteracji bȩdzie pomniejszone o i bȩdziemy mieli:
9
Z tego wynika, że także ostateczna wartość zmiennej (która jest równa ) jest całkowitoliczbowa̧
kombinacja̧ liczb i .
12
Rozdział 1. Teoria liczb
Algorytm Euklidesa można tak zmodyfikować, aby oprócz najwiȩkszego wspólnego
dzielnika
, wyliczał także liczby i , takie że:
(
9
Oto ten algorytm w jȩzyku Pascal:
p:=a;q:=b;
xp:=1;yp:=0;
xq:=0;yq:=1;
while p<>q do
if p>q then
begin
p:=p-q;
xp:=xp-xq;
yp:=yp-yq
end
else
begin
q:=q-p;
xq:=xq-xp;
yq:=yq-yp
end;
NWD(a,b):=p;
x:=xp,y:=yp
W poniższej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Euklidesa na parze liczb 36 i 15:
36
21
6
6
6
3
15
15
15
9
3
3
1
1
1
1
1
3
0
-1
-2
-2
-2
-7
6
0
0
0
-1
-2
-2
1
1
1
3
5
5
Tak wiȩc liczbȩ 3 można przedstawić jako kombinacjȩ liczb 15 i 36 w nastȩpuja̧cy sposób:
)
9
Zauważmy, że jeżeli jakaś liczba dzieli liczby i , to dzieli także każda̧ ich kombinacjȩ
całkowita̧
(
a wiȩc dzieli także najwiȩkszy wspólny dzielnik
lemat.
. Udowodniliśmy poniższy
1.8. Liczby pierwsze i wzglȩdnie pierwsze
Lemat 1.20
13
jest podzielny przez każdy wspólny dzielnik liczb i .
może być rówZ lematu 1.20 wynika, że najwiȩkszy wspólny dzielnik
noważnie zdefiniowany jako taki wspólny dzielnik liczb i , który jest podzielny przez
każdy wspólny dzielnik i .
Lemat 1.21 Liczba jest najwiȩkszym wspólnym dzielnikiem liczb i wtedy i tylko
wtedy gdy bȩdzie wspólnym dzielnikiem i oraz istnieja̧ liczby całkowite i , takie
!
że
( .
to , oraz (z twierdzenia 1.19) istnieja̧ liczby całkoDowód Jeżeli
!
wite i , takie że:
( .
Na odwrót, jeżeli dzieli i oraz (
, to każdy wspólny dzielnik i dzieli , a wiȩc jest najwiȩkszym wspólnym dzielnikiem i .
Wniosek 1.22 Jeżeli istnieja̧ liczby całkowite i , takie, że .
Przykład 1.23 Zastanówmy siȩ, ile wynosi
)
))
)
(
(
))
. Ponieważ:
) oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wiȩc
))(
Zastanówmy siȩ teraz, ile wynosi
. Ponieważ:
wiȩc
, to
.
dzieli 2, a ponieważ 2 nie dzieli ani 1999, ani 2001, wiȩc
.
1.8 Liczby pierwsze i wzglȩdnie pierwsze
, a liczba
Dwie liczby naturalne i sa˛ wzglȩdnie pierwsze, jeżeli
naturalna jest pierwsza, jeżeli i jedynymi dzielnikami naturalnymi sa̧ jedynka i
samo .
Oto wszystkie liczby pierwsze mniejsze od 50:
) ) ( ) 9
Liczba , która nie jest pierwsza jest złożona. Istnieja˛ wtedy dwie liczby , takie, że
.
"
,
1.9 Rozkład liczb na czynniki pierwsze
W tym rozdziale zobaczymy, że każda̧ liczbȩ naturalna̧ można rozłożyć na czynniki
pierwsze i że taki rozkład jest jednoznaczny z dokładnościa̧ do kolejności czynników. Na
przykład:
) i
9
14
Rozdział 1. Teoria liczb
Twierdzenie 1.24 Każda̧ liczbȩ naturalna̧
pierwszych (niekoniecznie różnych):
można przedstawić jako iloczyn liczb
9
Dowód nie wprost. Przypuśćmy, że istnieje liczba naturalna , której nie można przedstawić jako iloczynu liczb pierwszych i że jest najmniejsza̧ taka̧ liczba̧. nie może być
liczba̧ pierwsza̧ (bo wtedy
), wiȩc jest liczba̧ złożona̧, czyli jest postaci:
dla "
pierwsze
. Ale ponieważ i sa̧ mniejsze od , wiȩc można je rozłożyć na czynniki
ale wtedy, wbrew założeniu, mamy rozkład liczby
na czynniki pierwsze:
9
Aby pokazać, że rozkład jest jednoznaczny (z dokładnościa̧ do kolejności czynników),
musimy najpierw udowodnić dwa lematy.
Lemat 1.25 Niech i bȩda̧ dodatnimi wzglȩdnie pierwszymi liczbami naturalnymi.
Wtedy dla dowolnej liczby , jeżeli , to .
Dowód. Z twierdzenia 1.19, istnieja̧ dwie liczby całkowite i , takie że:
6
9
Pomnóżmy teraz obie strony tego równania przez :
(
i zauważmy, że dzieli oba składniki po lewej stronie równania, a wiȩc dzieli prawa̧
stronȩ, czyli .
Lemat 1.26 Jeżeli liczba pierwsza dzieli iloczyn liczb pierwszych
(niekoniecznie różnych), to wtedy jest równe jednej z liczb .
Dowód przez indukcjȩ ze wzglȩdu na . Dla mamy , a ponieważ pierwsza i , wiȩc
.
Załóżmy teraz, że teza zachodzi dla i przypuśćmy, że dzieli
9
jest
.
Mamy dwa przypadki: albo dzieli , albo nie. W pierwszym przypadku
, bo 1 i to jedyne dzielniki liczby
W drugim przypadku mamy
. Z lematu 1.25 wynika teraz, że dzieli a z założenia indukcyjnego, że
4
dla jakiegoś
.
.
1.10. Elementy odwracalne
15
Udowodnimy teraz, że rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładnościa̧
do kolejności czynników.
Twierdzenie 1.27 Każda̧ liczbȩ naturalna̧
stawić w postaci iloczynu:
można w dokładnie jeden sposób przed-
9 99
gdzie sa̧ dodatnimi liczbami naturalnymi,
sa̧ liczbami pierwszymi oraz zachodzi
"
"
99 9("
.
Dowód. Twierdzenie 1.24 orzeka, że liczba ma rozkład na czynniki pierwsze. Trzeba
pokazać, że jest to rozkład jednoznaczny.
jako liczba pierwsza ma jednoznaczny
rozkład. Przypuśćmy, że jest najmniejsza̧ liczba̧ z dwoma różnymi rozkładami:
999
99 9 9
(1.1)
Wtedy z jednej strony nie może wystȩpować po prawej stronie równania (1.1), bo ' byłoby mniejsza̧ liczba̧ z niejednoznacznym rozkładem. Z drugiej strony dzieli prawa̧
stronȩ, a wiȩc, z lematu 1.26 wystȩpuje po prawej stronie. Mamy wiȩc sprzeczność. Lemat 1.28 Jeżeli i sa̧ wzglȩdnie pierwsze, to ich rozkłady sa̧ rozła̧czne, to znaczy
maja̧ rozła̧czny zbiór liczb pierwszych wystȩpuja̧cych w ich rozkładach.
1.10 Elementy odwracalne
Definicja 1.29 Element jest odwracalny, jeżeli istnieje 63 9
, takie, że
nazywamy elementem odwrotnym do i oznaczamy przez .
Przykład 1.30 jest odwracalna w bo
. Oprócz 3 w
3
calne sa˛ także , i .
Lemat 1.31 Liczba Dowód. Jeżeli
jest odwracalna wtedy i tylko wtedy, gdy
dzieli odwra-
.
, to istnieja̧ liczby całkowite i , takie że:
a wiȩc , czyli:
63 9
Teraz wystarczy przyja̧ć za taka̧ liczbȩ z przedziału od 1 do
do modulo .
Z drugiej strony jeżeli istnieje element odwrotny do to
63 , która przystaje
16
Rozdział 1. Teoria liczb
czyli
dla jakiegoś . Mamy wiȩc
czyli
(wniosek 1.22).
Z powyższego dowodu wynika, że element odwrotny do można wyliczyć stosuja̧c
algorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pierścieniu .
Najpierw zastosujemy algorytm Euklidesa, aby obliczyć i , takie że:
9
Kolejne kroki algorytmu przedstawiono w tabeli:
17
5
5
5
3
1
12
12
7
2
2
2
Mamy wiȩc:
-)
czyli:
ale:
1
1
1
1
3
5
0
-1
-1
-1
-4
-7
1
1
2
3
3
3
63
3
6
0
0
-1
-2
-2
-2
.
czyli 10 jest elementem odwrotnym do 12 w pierścieniu
Definicja 1.32 Zbiór elementów odwracalnych w oznaczamy przez
Przykład 1.33
.
Lemat 1.34 Jeżeli liczba jest pierwsza, to każdy element calny, czyli pierścień jest ciałem.
Lemat 1.35 Jeżeli to oraz To oznacza, że z mnożeniem jest grupa̧.
Dowód:
Elementem odwrotnym do iloczynu 6 jest jest .
, .
, jest odwra-
.
, a elementem odrotnym do
1.11. Funkcja liniowa
17
1.11 Funkcja liniowa
Zastanówmy siȩ jak w pierścieniu działa funkcja liniowa
63 9
Rozpatrzmy najpierw przypadek, gdy i sa̧ wzglȩdnie pierwsze, czyli gdy
. Dla i
wartości funkcji przedstawia tabela
x
3x
0
0
1
3
2
6
3
1
4
4
5
7
6
2
7
5
W takim przypadku istnieje element odwrotny do i funkcja
jest odwrotna do . Rzeczywiście
, która
9
jest wzajemnie jednoznaczna i "na" oraz, że dla każdego Z tego wynika, że
równanie
.
ma dokładnie jedno rozwia̧zanie w pierścieniu , jest ono równe Funkcja jest permutacja̧ w i wykorzystuje siȩ ja̧, gdy trzeba wymieszać
(prze
permutować) elementy . Zauważmy, że jest także permutacja˛ w . Rzeczywiście,
jeżeli , to na podstawie lematu 1.35 . Mamy wiȩc
. Lemat 1.36 Jeżeli
jednoznaczna̧ w i w
, to funkcja
jest funkcja̧ wzajemnie
Rozpatrzmy teraz przypadek, gdy i nie sa̧ wzglȩdnie pierwsze, czyli gdy
. Dla i
wartości funkcji przedstawia tabela
x
6x
0
0
1
6
2
4
3
2
4
0
5
6
6
4
7
2
Zauważmy, że jeżeli jest wartościa̧ funkcji , czyli gdy
to istnieje takie , że
a ponieważ
dzieli i liczby podzielne przez .
Lemat 1.37 Jeżeli
, to
oraz
oraz
dzieli , a wiȩc wartościami funkcji
63 (' moga̧ być tylko
, to równania
63 ' 63 '
sa̧ równoważne, czyli maja̧ ten sam zbiór rozwia̧zań w zbiorze liczb całkowitych.
18
Rozdział 1. Teoria liczb
Dowód
3 wtedy i tylko wtedy, gdy istnieje takie że
a to zachodzi wtedy i tylko wtedy, gdy istnieje takie, że
(' ' czyli wtedy i tylko wtedy, gdy
(' Przypuśćmy teraz, że
'
' 63 9
'
dzieli i rozwia̧żmy równanie
w pierścieniu
(1.2)
99 9 , czyli szukamy takich 3 (1.3)
Z lematu 1.37, to równanie jest równoważne równaniu
Ale teraz (' ' 99 9 ' takie że
(' ' 63 , że
'
(1.4)
i równanie (1.4) ma dokładnie jedno rozwia̧zanie (' ' 3 9
'
Ale równania (1.4) i (1.3) sa̧ spełnione także przez liczby
'
.
99 9 '
'
9
Sa̧ to wszystkie liczby ze zbioru
9 99 spełniaja̧ce równania (1.4) i (1.3), czyli
wszystkie rozwia̧zania równania (1.2) w pierścieniu .
Przykład 1.38 Rozwia̧żmy równanie
Ponieważ
W mamy równaia (1.5) w
63
9
(1.5)
, wiȩc najpierw rozwia̧zujemy równanie
63 wiȩc rozwia̧zaniem jest sa̧ liczby
9
. Tak wiȩc rozwia̧zaniami
1.12. Szyfry liniowe
19
1.12 Szyfry liniowe
Przypuśćmy, że mamy tekst zapisany za pomoca̧ 26 liter alfabetu łaci ńskiego:
i chcemy ten tekst zaszyfrować. W tym celu utożsamiamy zbiór liter z elementami pierścienia :
wybieramy dwie liczby literze według wzoru:
9 99 , takie że 3 9
Funkcja deszyfruja̧ca jest określona wzorem:
Rzeczywiście:
Z tego wynika, że funkcja szyfruja̧ca Przykład 1.39 Wybierzmy i
, i szyfrujemy litera po
63 9
9
jest wzajemnie jednoznaczna.
)
i zaszyfrujmy słowo
6 9
W tym celu musimy zaszyfrować 6 liter: , , , , oraz . Obliczenia przedstawiono w
tabeli:
Słowo litera
m
a
t
e
y
k
12
0
19
4
24
10
szyfr
k
u
p
i
a
q
10
20
15
8
0
16
6 po zaszyfrowaniu wygla̧da tak:
9
Jeżeli zaś zastosujemy ten sam szyfr do pocza̧tkowego zdania z wiersza Lokomotywa Juliana Tuwima:
stoi na stacji lokomotywa,
to otrzymamy:
spewhuspuotwneqekepagu.
20
Rozdział 1. Teoria liczb
A oto program w jȩzyku Pascal, który szyfruje teksty zapisane za pomoca̧ 26 liter alfabetu
łacińskiego:
var
t:string;
a,b,i,m:integer;
begin
writeln(’podaj klucz’);
write(’a=’);
readln(a);
write(’b=’);
readln(b);
writeln(’podaj tekst do zaszyfrowania’);
readln(t);
for i:=1 to length(t) do
begin
m:=((ord(t[i])-97)*a+b)mod(26)+97;
write(chr(m))
end
end.
Komentarz. Zmienna t jest typu string, czyli łańcuch. Taka̧ zmienna̧ można traktować
jak tablicȩ z indeksami od 1 do length(t) i z wartościami typu char (znak). Zmienne
typu char sa̧ przechowywane w jednym bajcie i moga̧ zawierać jeden znak. Listȩ znaków
wraz z odpowiadaja̧cymi im numerami (od 0 do 255) zawiera tak zwany kod ASCII. Małe
litery alfabetu łacińskiego maja̧ tam numery od 97 — a, do 122 — z.
Instrukcja
readln(t)
czyta z klawiatury tekst do zaszyfrowania i zapisuje go do zmiennej t. Elementy tablicy
t[i], dla i od 1 do length(t), zawieraja̧ poszczególne znaki naszego tekstu.
Funkcja ord przypisuje znakom ich numery w kodzie ASCII, a funkcja chr działa
na odwrót, przypisuje znak numerowi. Pȩtla for, dla każdego znaku tekstu t po kolei,
wylicza numer tego znaku po zakodowaniu:
m:=((ord(t[i])-97)*a+b)mod(26)+97,
a nastȩpnie drukuje zakodowany znak na ekranie:
write(chr(m)).
Klucz do kodowania przechowywany jest w postaci dwóch liczb, a i b, typu integer.
Szyfry liniowe sa̧ bardzo starym wynalazkiem. W prostszej wersji z stosował je już Juliusz Cezar. Ich wada̧ jest to, że bardzo łatwo daja̧ siȩ łamać. Czasami
wystarcza odgadna̧ć, jak zaszyfrowano dwie litery. Można to zrobić analizuja̧c czȩstości
wystȩpowania liter w zaszyfrowanym tekście.
Przykład 1.40 (kontynuacja przykładu 1.39) W naszym drugim zaszyfrowanym tekście
litera wystȩpuje cztery razy, a litery i po trzy razy. Może to nam pomóc w odgadniȩciu,
1.13. Chińskie twierdzenie o resztach
21
że litera koduje literȩ , a litera koduje literȩ . Mamy wiȩc dwa równania:
63 63 9
Po odjȩciu tych równań stronami mamy:
63 9
Korzystaja̧c z algorytmu Euklidesa, możemy teraz wyliczyć element odwrotny do 5 w pierścieniu . Jest to 21, ponieważ:
. tak wiȩc:
( )
(8
63 (
oraz
63 9
Teraz z drugiego równania możemy wyliczyć :
- 63 9
1.13 Chińskie twierdzenie o resztach
W starożytnych Chinach generałowie używali pewnego ciekawego sposobu liczenia swoich żołnierzy. Dla kilku niewielkich liczb parami wzglȩdnie pierwszych, na przykład dla:
obliczano i zapamiȩtywano reszty z dzielenia liczby żołnierzy przez te liczby. W celu
obliczenia reszt kazano żołnierzom ustawić siȩ trójkami, pia̧tkami i siódemkami. Jeżeli
przy nastȩpnym apelu wszystkie trzy reszty były takie same, to znaczyło, że nie brakuje
żadnego żołnierza.
Zobaczmy, jak ten sposób działa. Weźmy najpierw dwie liczby:
9
W poniższej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5:
a
0
1
2
3
4
5
63 0
1
0
1
0
1
3 0
1
2
0
1
2
22
Rozdział 1. Teoria liczb
.
Każda z liczb od 0 do
, spełniaja̧cych warunek ma inny zestaw reszt oraz dla każdej pary reszt
,
, istnieje liczba , taka że:
"
"
63 63 9
Oczywiście 6 ma takie same reszty jak 0:
63 63 różnia̧ siȩ o wielokrotność liczby i ogólnie, jeżeli dwie liczby i dla jakiegoś całkowitego , to
63 63 - , czyli:
63 63 9
Z tego widać, że sposób chińskich generałów, z liczbami 2 i 3, liczy żołnierzy z dokładnościa̧
do piȩciu.
Sytuacja jest inna, jeżeli i nie sa̧ wzglȩdnie pierwsze. Jeżeli, na przykład,
i , to wśród liczb od 0 do ) istnieja̧ takie, które maja̧ takie
same reszty, na przykład 1 i 13:
63 63 3 3 9
Ponadto nie istnieje taka liczba , dla której:
63 63 9
Rzeczywiście, z pierwszej równości wynika, że powinno być nieparzyste, a z drugiej,
że parzyste.
Jeżeli jednak i sa̧ wzglȩdnie pierwsze, to każda z liczb od 0 do ma
inny zestaw reszt oraz dla każdej pary reszt , spełniaja̧cych warunek
"
, # " , istnieje liczba , taka że:
63 63 zachodzi bowiem poniższe twierdzenie.
´
Twierdzenie 1.41 (chinskie
twierdzenie o resztach) Niech
999 bȩda̧ dodatnimi liczbami wzglȩdnie pierwszymi, to znaczy dla każdej pary
, oraz niech
mamy
999 "
1.13. Chińskie twierdzenie o resztach
23
bȩda̧ dowolnymi resztami. Wtedy istnieje liczba całkowita , taka że:
(1.6)
9 99
63 63 3 9
Ponadto jeżeli liczby i sa̧ rozwia̧zaniami układu kongruencji (1.6), to ich różnica
dzieli siȩ przez iloczyn wszystkich liczb , czyli przez:
9
Dowód. Najpierw udowodnimy druga̧ czȩść twierdzenia. Dla każdego
63 3 9
mamy:
Po odjȩciu stronami tych dwóch równań mamy:
3 czyli
wiȩc każda spośród liczb dzieli ! , a skoro liczby 99 9 sa̧ wzglȩdnie pierwsze,
dzieli . Rzeczywiście, przypuśćmy bowiem, że
ma
wiȩc także ich iloczyn
rozkład
9
Weźmy teraz dowolne
. Ponieważ rozkłady liczb 99 9 sa̧ rozła̧czne, wiȩc
wyst˛epuje w rozkładzie jakiegoś , czyli dzieli oraz , a wiȩc w rozkładzie
liczby , liczba wystȩpuje z wykładnikiem . Dlatego
dzieli .
Zobaczymy teraz, że układ (1.6) ma rozwia̧zanie. Niech
' , czyli:
Ponieważ
takie że:
i
maja̧ rozła̧czne rozkłady, wiȩc
Zauważmy, że jeżeli , to co daje:
, oraz:
999
9
oraz istnieje
9
63 63 9
Weźmy teraz:
3 dla każdego , a wiȩc jest rozwia̧zaniem układu równań (1.6).
,
24
Rozdział 1. Teoria liczb
!
63 Przykład 1.42 Każda z liczb od 0 do
ma inny zestaw reszt wzglȩdem
liczb 3, 5 i 7. Tak wiȩc stosuja̧c sposób chińskich generałów z liczbami 3, 5, 7 możemy
liczyć żołnierzy z dokładnościa̧ do 104.
Ale sposób chińskich generałów pozwala także stwierdzić, o ile zmieniła siȩ liczba
żołnierzy. Przypuśćmy bowiem, że na porannym apelu było żołnierzy i uzyskano reszty:
63 a na apelu wieczornym było żołnierzy i otrzymano reszty:
wtedy różnica 63 63 63 63 spełnia nastȩpuja̧cy układ kongruencji:
63 63 63 9
Jak widać, chińskie twierdzenie o resztach pozwala wnioskować o dużych liczbach za
pomoca̧ operacji na małych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia.
Przykład 1.43 Zastanówmy siȩ, ile wynosi reszta z dzielenia liczby
przez 15. Łatwo można policzyć, że:
ponieważ 4 jest jedyna̧ liczba̧ z przedziału
63 oraz 63 .
63 63 oraz
63 , a wiȩc:
9 99 , która posiada reszty 1.14 Pierwiastki kwadratowe
Definicja 1.44 Liczbȩ nazywamy pierwiastkiem kwadratowym liczby w pierścieniu
, jeżeli
Przykład 1.45 W
3 9
pierwiastkami 4 sa̧ 2 i 3, a liczba 2 nie posiada pierwiastka.
Zauważmy, że jeżeli 63 to
63 czyli 63 , też jest pierwiastkiem .
Lemat 1.46 Jeżeli jest liczba̧ pierwsza̧ i , to i sa̧ jedynymi pierwiastkami
z .
1.15. Funkcja Eulera
Dowód Jeżeli jest pierwsze to drugim 25
3 , to dzieli lub 63 .
dzieli , a ponieważ . W pierwszym przypadku 63 , w
Przykład 1.47 Tak nie musi być, jeżeli nie jest liczba̧ pierwsza̧. Na przykład w
mamy cztery pierwiastki z , sa̧ to , , i .
Ogólnie rozważmy liczbȩ która jest iloczynem dwóch różnych liczb pierwszych
. Weźmy teraz dowolna̧ liczbȩ , dla której
.#
oraz
Wtedy
63
3
lub
63
lub
63
63
63
oraz
czyli z chińskiego twierdzenia o resztach wynika, że
Ponieważ , to
cztery różne pierwiastki z 1, Zauważmy, że 63 9
3 oraz
63 . Sa̧ to liczby dla których
63 63
63 63
63
63 63
3 oraz 63#
i mamy wtedy
9
63 .
1.15 Funkcja Eulera
Definicja 1.48 Funkcja Eulera, jest to funkcja, która liczbie przypisuje
elementów odwracalnych w . Z definicji przyjmujemy .
Przykład 1.49
Podobnie .
, bo w odwracalne sa˛
, , , ,
i
sa̧ wzglȩdnie pierwsze, to
liczbȩ
.
a) Jeżeli jest liczba̧ pierwsza̧, to dla dowolnego . W szczególności .
Lemat 1.50
b) Jeżeli ,
26
Rozdział 1. Teoria liczb
Dowód:
a) Zauważmy że, wśród liczb
dzielne przez , jest ich '
99 9 wzglȩdnie pierwsze z
, czyli
#
b) Najpierw zauważmy, ze dla dowolnej liczby ,
"
oraz
a to zachodzi wtedy i tylko wtedy gdy reszty spełniaja̧ warunki
9
wtedy i tylko wtedy gdy
nie sa̧ te, które sa̧ po-
3
oraz
oraz 3
(1.7)
Par reszt spełniaja̧cych warunek (1.7) jest , a z chińskiego twierdzenia
odpowiada dokładnie jedna para reszt, i na
o resztach każdej liczbie ,
" odwrót każdej parze reszt odpowiada jedna liczba. Tak wiȩc liczb wzglȩdnie pierwszych
z
jest 9
1.16 Szybkie potȩgowanie
dla Teraz zastanowimy siȩ jak można potȩgować, czyli jak obliczyć 63
oraz . Pierwszy nasuwaja̧cy siȩ algorytm potȩgowania polega na krotnym mnożeniu przez :
y:=1;
for i:=0 to k do y:=y*a mod n
W kryptografii oblicza siȩ potȩgi z wykładnikami posiadaja̧cymi po kilkaset bitów. Do
takich zastosowań powyższy algorytm jest nieprzydatny (wymaga on mnoże ń).
Pokażemy teraz jak można potȩgować dużo szybciej. Zauważmy, że
i ogólnie
9
Dlatego, aby obliczyć potȩgȩ o wykładniku, który jest potȩga̧ dwójki
wykonać
y:=a;
for i:=1 to j do y:=y*y mod n
należy
1.16. Szybkie potȩgowanie
w
,
3
,
3
3
,
63
.
Przykład 1.51 Aby obliczyć
- ! obliczmy
63
Jeżeli wykładnik jest suma̧ potȩg dwójki Przykład 1.52 Aby obliczyć
)
63 .
27
, to
9
trzeba wymnożyć
Zauważmy, że każda liczba naturalna jest suma̧ potȩg dwójki
gdzie
to cyfry rozwiniȩcia dwójkowego .
Powyższe uwagi sugeruja̧ nastȩpuja̧cy algorytm obliczania potȩgi .
Algorytm szybkiego pot˛egowania
Dane wejściowe: podstawa a oraz wykładnik k=(dj,...,d0) w postaci binarnej.
x:=a; y:=1
if d0=1 then y:=y*a mod n
for i:=1 to j do
x:=x*x mod n;
if di=1 then y:=y*x mod n
Zmienna x zawiera kolejne potȩgi o wykładnikach
bȩda̧cych potȩgami 2. Na pocza̧tku
. Po tej iteracji pȩtli for . Jeżeli
to mnożymy przez .
Na końcu
8
9
Przykład 1.53 Prześledźmy działanie algorytmu podczas obliczania
63 .
) )
w zapisie dwójkowym ma postać . Poniższa tabela zawiera wartości zmiennej x
i y przed wejściem do p˛etli for i=0) oraz po każdej iteracji.
i
0
1
2
3
4
x
2
4
3
9
3
y
2
8
8
8
11
Zauważmy, że wyniki pośrednie, i ostateczny, należa˛ do i algorytm nie potrzebuje
zbyt dużej pamiȩci. Algorytmu tego nie można stosować do obliczania w liczbach
całkowitych, jeżeli jest duże, to wynik ostateczny oraz pośrednie bȩda˛ zbyt duże, żeby
mógł siȩ zmieścić w pamiȩci komputera.
28
Rozdział 1. Teoria liczb
1.17 Małe twierdzenie Fermata
Twierdzenie 1.54 (Fermata) Niech 63 9
Dowód Niech
to bȩda̧ wszystkie elementy
99 9 , wtedy
. Jeżeli pomnożymy je przez 9 99 to zgodnie z lematem 1.36 otrzymamy te same elementy tylko w innej kolejności.
Wymnóżmy teraz elemnty obu cia̧gów
63 9
otrzymamy tezȩ twierdzenia.
Po pomnożeniu przez odwrotność Wniosek 1.55 Jeżeli
mamy
jest liczba̧ pierwsza̧, to dla każdego wzglȩdnie pierwszego z
3 9
1.18 Szyfry RSA
W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowania jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze do
szyfrowania i deszyfrowania sa̧ różne, ale jaden łatwo można wyliczyć z drugiego. Takie
szyfry nazywamy symetrycznymi.
Teraz zapoznamy siȩ ze sposobem szyfrowania, w których klucz do szyfrowania może
być jawny, nawet ogłaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktycznie niemożliwe wyliczenie klucza tajnego z klucza jawnego. Sposób ten zaproponowali
Rivest, Shamir i Adleman. Przypuśćmy, że Alicja chce utworzyć swój klucz. Bierze w
tym celu dwie duże liczby pierwsze i , każda może zawierać po kilkaset bitów. Tworzy
ich iloczyn
Alicja losuje liczbȩ
. Funkcja Eulera . Nastȩpnie
, która jest wzglȩdnie pierwsza z . Skoro
to istnieje liczba
, taka, że
3 . Teraz para jest jawnym kluczem Alicji i może
być publicznie ogłoszona. Para jest kluczem prywatnym Alicji, nie powinna go ona
nikomu zdradzać. Alicja nie powinna też zdradzać rozkładu liczby na czynniki. Jeżeli
ktoś zna i , to może wyliczyć oraz .
Przypuśćmy, że Bob chce przesłać Alicji jaka̧ś zaszyfrowana̧ wiadomość . Traktujemy tȩ wiadomość jako liczbȩ "
. (Jeżeli wiadomość jest cia̧giem znaków, to kodujemy
1.19. Testy pierwszości
29
każdy znak jako 8 bitów i cały cia̧g może być traktowany jako liczba w postaci dwójkowej.) Bob szyfruje wiadomość przy pomocy funkcji szyfruja̧cej
63
i przesyła ja̧ Alicji. Alicja odszyfrowuje za pomoca̧ funkcji deszyfruja̧cej
Pokażemy teraz, że jeżeli
Mamy
Ponieważ
!
63
9
, to
9
63 , wiȩc istnieje 63
9
takie, że
4
, czyli
63 ale jeżeli
, to 63 . Tak wiȩc . Do powyższego potrzebne było założenie, że
. Ale gdy ktoś trafi na
wiadomość , która nie jest wzglȩdnie pierwsza z , to Alicja ma pecha, ponieważ wtedy
można dokonać rozkładu liczby i złamać jej szyfr.
.
Łatwo też można pokazać, że
Niesymetryczne szyfry daja̧ nowe możliwości. Można ich na przykład używać do
podpisu. Aby podpisać jaka̧ś wiadomość , Alicja szyfruje ja̧ swoim szyfrem prywat i jest to podpis wiadomości . Alicja wysyła Bobowi parȩ .
nym
Żeby sprawdzić, że wszystko siȩ zgadza Bob szyfruje podpis publicznym kluczem Alicji
i sprawdza czy
9
1.19 Testy pierwszości
W tym rozdziale zajmiemy siȩ zagadnieniem jak sprawdzić, czy liczba jest pierwsza.
Możemy sobie wyobrazić, że ma kilkaset bitów. Jak widać z poprzedniego rozdziału
duże liczby pierwsze moga̧ być przydatne.
1.19.1 Test naiwny
Najprostszy sposób to, dzielić przez kolejne liczby (pierwsze) aż do
test jest zupełnie niepraktyczny, jeżeli ma kilkaset bitów.
. Jednak ten
30
Rozdział 1. Teoria liczb
1.19.2 Test Fermata
Drugi test jest algorytmem probabilistycznym i opiera siȩ na twierdzeniu Fermata 1.54.
Losujemy liczbȩ "
i najpierw sprawdzamy, czy
. Jeżeli i
nie sa̧ wzglȩdnie pierwsze, i
, to jest dzielnikiem i nie jest
pierwsza.
, to obliczamy 63 . Jeżeli 63 , to
Jeżeli
mamy pewność, że nie jest liczba̧ pierwsza̧.
oraz Definicja 1.56 Taka̧ liczbȩ , dla której
bȩdziemy nazywać świadkiem Fermata dla , ponieważ zaświadcza ona, że
63 jest złożona.
63 , to orzekamy, że liczba jest pierwsza. W tym przypadku
Jeżeli możemy
siȩ
pomylić.
Liczba może być złożona a mimo to wylosowaliśmy pechowo i
3 . Ale zachodzi nastȩpuja̧cy lemat.
63 , to przynajmniej poło-
Lemat 1.57 Jeżeli istnieje takie , że wa elementów jest świadkiem Fermata dla .
9 99 Dowód. Przypuśćmy, że
sa˛ to wszystkie elementy , dla których przez otrzymamy elementów
6
3 . Wtedy po pomnożeniu
9 99 6 różnych miȩdzy soba̧ (lemat 1.36), z których każdy jest świadkiem Fermata. Rzeczywiście
63 9
A wiȩc świadków złożoności jest co najmniej połowa.
Jeżeli jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze.
Z lematu 1.57 wynika, że jeżeli jest złożona i istnieje świadek Fermata dla , to takich
świadków jest co najmniej połowa, i nasz algorytm pomyli siȩ z prawdopodobie ństwem
"
' . Prawdopodobieństo, to można zmniejszyć poprzez powtórzenie algorytmu razy,
z różnymi wylosowanymi .
Istnieja̧ jednak liczby złożone , które nie maja̧ świadków złożoności. Na przykład
! ) . Kłopot
dzieli siȩ przez
bierze siȩ sta̧d, że ,a , oraz przez .Dlatego
dla dowolnego , jeżeli
, to jest wzglȩdnie pierwsze z , i oraz mamy
63 63 63 i z chińskiego twierdzenia o resztach wynika, że
63 Takie liczby nazywaja̧ sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729.
Wystȩpuja̧ one bardzo rzadko, jest ich tylko 255 wśród liczb mniejszych od 100 000 000.
1.19. Testy pierwszości
31
1.19.3 Test Millera-Rabina
Zakładamy, że jest nieparzyste (2 jest jedyna̧ parzysta̧ liczba̧ pierwsza̧). Najpierw sprawdzamy, czy jest potȩga̧ jakiejś liczby naturalnej. Dla od 2 do / sprawdzamy czy
, dla jakiegoś . W rozdziale o arytmetyce opisano jak za pomoca̧ binary search
stwierdzić, czy liczba jest potȩga̧ innej liczby. Jeżeli jest potȩga̧, to jest złożona.
Ponieważ jest nieparzyste, to możemy przedstawić w postaci
9
dla jakiegoś nieparzystego.
(jeżeli
8 , to
Losujemy "
. Sprawdzamy, czy
jest złożona).
63 . Jeżeli 63 , to koniec, stwierdzamy, że
Nastȩpnie obliczamy 63 , to obliczamy po kolei
jest pierwsza. Jeżeli 3
63
99 9 63
9
Zauważmy, że w tym cia̧gu każda liczba jest kwadratem poprzedniej. Jeżeli wśród tych
liczb nie ma jedynki, to z twierdzenia Fermata wynika, że jest złożona, bo wtedy
3 9
Jeżeli w tym cia̧gu jest jedynka, na przykład
3 . Jeżeli , to znależliśmy nietrywial
to patrzymy na poprzedni element ny pierwiastek z 1. Z twierdzenia 1.46 wynika, że jest to możliwe tylko wtedy gdy nie
, to orzekamy, że jest pierwsze.
jest pierwsze. Jeżeli Łatwo wiȩc widać, że jeżeli jest pierwsze, to test zawsze odpowie prawidłowo,
niezależnie od losowania. Wiadomo też, że jeżeli jest złożona i nie jest potȩga̧ licz
by pierwszej, to z prawdopodobieństwem wiȩkszym niż ' wykryjemy to (dowód tego
faktu wybiega poza zakres tej ksia̧żki i pomijamy go).
W praktyce stosujemy wszystkie trzy testy na raz. Maja̧c nieparzysta̧ liczbȩ , najpierw sprawdzamy, czy dzieli siȩ ona przez kilka kolejnych liczb pierwszych
9 99 9
Dobór zależy od tego jak duże liczby sprawdzamy. W ten sposób eliminujemy duża̧
czȩść liczb. Zauważmy, że obliczaja̧c iloczyn tych liczb
i sprawdzaja̧c, czy
siȩ przez która̧ś z tych liczb.
&
możemy za jednym razem sprawdzić, czy
dzieli
32
Rozdział 1. Teoria liczb
Po przejściu pierwszego testu stosujemy test drugi, a gdy liczba go przejdzie stosujemy test trzeci.
Ponieważ liczby Carmichaela sa̧ dość rzadkie, wiȩc drugi test wyeliminuje wiȩkszość
liczb złożonych.
Jeżeli chcemy wyklosować liczbȩ pierwsza̧ to losujemy nieparzysta̧ liczbȩ, a mastȩpnie
sprawdzamy, czy jest ona pierwsza. Jeżeli nie, to sprawdzamy nastȩpne liczby
91919 .
1.20 Zadania
1. Dla każdej z liczb:
że 63 .
,
,
2. W pierścieniu wykonaj działania
3. W pierścieniu
8
.
)
oraz
oraz
˛ równania: a)
rozwiaż
5. W pierścieniu rozwiaż
˛ równania: a)
-
˛ równania: a)
4. W pierścieniu rozwiaż
.
6. Dla liczb i spełniaja̧ce równanie 6
)
oblicz
(
10.
12. Ile dzielników ma liczba
8
, c)
oraz
oraz liczby całkowite i )
i
.
.
. Podaj elementy odwrotne do 5 i
.
istnieja̧ liczby spełniaja̧ce układ kongruencji:
16. Niech reszt , d)
.
14. Znajdź elementy odwrotne do wszystkich elementów dwracalnych w
?
13. Podaj tabliczkȩ dodawania i mnożenia w ciele
6w .
15. Dla jakich par reszt taka,˛
rozwiaż
˛ równania: a) 11. Podaj rozkład na czynniki pierwsze liczb
.
3 .
rozwiaż
˛ równania: a) , b) .
W pierścieniu
Znajdź całkowite rozwia̧zanie spełniaja̧ce równanie: 8. W pierścieniu
9.
, b)
.
.
7. Oblicz , b)
, b)
znajdź liczb˛e 63 63 9
bȩda̧ dowolnymi dodatnimi liczbami całkowitymi. Dla jakich par
istnieja̧ liczby spełniaja̧ce układ kongruencji:
63 63 9
1.21. Problemy
33
1.21 Problemy
1.21.1 Najwi˛ekszy wspólny dzielnik
jest najmniejsza̧ dodatnia̧ liczba̧ , dla której istnieje i Udowodnij, że
(
całkowite, takie że .
Udowodnij, że każda liczba postaci ( , dla i całkowitych, jest wielokrotnościa̧
, i na odwrót, każda wielokrotność
jest postaci ( , dla jakiś
i całkowitych.
Udowodnij, że poniższy algorytm poprawnie oblicza najwiȩkszy wspólny dzielnik
, jeżeli $ :
var a,b,p,q,r,:integer;
begin
readln(a,b);
p:=a;q:=b;
while q >0 do
begin
r:=p mod q;
p:=q; q:=r
end;
writeln(’NWD(’,a,’,’,b,’)=’,p)
end.
Zmodyfikuj powyższy program, tak aby oprócz
czynniki i , takie że 6
.
, obliczał także współ
1.21.2 Najmniejsza wspólna wielokrotno´
sc´
Niech
oznacza najmniejsza̧ wspólna̧ wielokrotność liczb i .
Udowodnij, że
inna̧ wspólna̧ wielokrotność liczb i .
dzieli każda̧
Pokaż, że
1.21.3 Liczby wzgl˛ednie pierwsze
Udowodnij, że jeżeli jest wzglȩdnie pierwsze z i , to jest wzglȩdnie pierwsze z
iloczynem tych liczb 6 .
Jako wniosek udowodnij, że jeżeli jest wzglȩdnie pierwsze z każda̧ z liczb 919 9 ,
to jest wzglȩdnie pierwsze z iloczynem tych liczb
9
34
Rozdział 1. Teoria liczb
1.21.4 Układ kongruencji
Istnieje inny sposób rozwia̧zywania układu kongruencji. Pokażemy go na przykładzie
układu
Najpierw szukamy dwóch liczb i
(1.8)
spełniaja̧cych warunki
63
63
63
63
63 63 Udowodnij, że rozwia̧zaniem układu (1.8) jest
Jak policzyć że
oraz 63
9
? Ponieważ 3 i 5 sa̧ wzglȩdnie pierwsze, wiȩc istnieja̧ i takie,
Pokaż, że jeżeli podstawimy dobrze.
63
´
1.21.5 Chinskie
twierdzenie o resztach
Z chińskiego twierdzenia o resztach wynika, że jeżeli
63
oraz 63
, to bȩdzie
, to funkcja
63 stanowi wzajemnie jednoznaczne odwzorowanie pomiȩdzy a iloczynem kartezjańskim .
możemy określić działania dodawania i mnożeNa iloczynie kartezjańskim nia w nastȩpuja̧cy sposób:
Łatwo można sprawdzić, że zbiór niem. Ponadto funkcja spełnia warunki
9
z tak określonymi działaniami, jest pierście
oraz .

Podobne dokumenty