Processing math: 17%

Teoria liczb II

strict warning: Only variables should be passed by reference in /usr/share/drupal6/modules/book/book.module on line 559.

Arytmetyka modularna


Liczby przystające modulo n>0 to takie dwie liczby a,bZ, dla których różnica ab jest wielokrotnością n. Fakt ten zapisujemy jako a nb. Innymi słowy, a nb jeśli a i b mają te same reszty w dzieleniu przez n.

Obserwacja 11.

Dla dowolnych a,b,c oraz n>0 zachodzi:

  • a na,
  • a nb wtedy i tylko wtedy, gdy b na,
  • jeśli a nb i b nc to a nc.

Powyższe własności świadczą o tym, że przystawanie n modulo n jest relacją równoważności na zbiorze Z. Dlatego czasem relacja ta nazywana jest równością modulo n. Okazuje się też, że relacja n jest zgodna z działaniami arytmetycznymi: dodawania, odejmowania i mnożenia, a więc jest kongruencją ze względu na te działania.

Obserwacja 11.2

Dla dowolnych a,b,c,d oraz n>0 mamy:

  • jeśli a nb i c nd, to a+c nb+d,
  • jeśli a nb i c nd, to ac nbd,
  • jeśli a nb i c nd, to ac nbd.

Podane w dwu poprzednich obserwacjach własności relacji równości modulo n pozwalają na wprowadzenie działań w zbiorze ilorazowym Z/n, tzn. w zbiorze klas równoważności. {[a]n:aZ}, poprzez:

  • [a]n+[b]n=[a+b]n,
  • [a]n[b]n=[ab]n,
  • [a]n[b]n=[ab]n,

Ponieważ w każdej klasie [a]n jest jakaś liczba spośród 0,1,2,,n1, a mianowicie reszta z dzielenia liczby a przez n, to wygodniej jest po prostu mówić o arytmetyce (modularnej) na zbiorze tych reszt {0,1,2,,n1} i pisać np.:

  • 3+5 62,
  • 35 64,
  • 35 63.

Tak więc, dla n>0 możemy zidentyfikować zbiór ilorazowy Z/n ze zbiorem Zn={0,n1} reszt modulo n. Po wprowadzeniu do tego zbioru działań arytmetycznych dostajemy pierścień, przemienny z jedynką Zn=({0,n1},+,). Pierścień ten nie zawsze jest jednak ciałem. Istotnie, nie zawsze możemy skracać w mnożeniu czynnik zachowując kongruencję. Dla przykładu: 22=4 610=25, ale 2. Okazuje się, że w równości modulo n możemy skracać czynniki względnie pierwsze z n .

Obserwacja 11.3 [Reguła skracania]

Dla n>0 , jeśli ad\ \equiv_{n}bd i d\perp n , to a\ \equiv_{n}b .

Dowód

Ponieważ {\sf NWD}\ (d,n)=1 , rozszerzony algorytm Euklidesa gwarantuje istnienie x,y\in \mathbb{Z} takich, że xd+yn=1 , czyli dx\ \equiv_{n}1 . Mnożąc teraz obie strony ad\ \equiv_{n}bd przez x , otrzymujemy adx\ \equiv_{n}bdx , czyli a=a1 \equiv_n adx \equiv_n bdx \equiv_n b1=b .

Przykład

  • 15=3\cdot5\equiv_7 10\cdot5=50 oraz 5\perp7 implikuje 3\equiv_7 10 ,
  • 8=2^3\equiv_3 2 oraz 2\perp3 implikuje 4=2^2\equiv_3 1 .

Chcąc móc skracać w pierscieniu \mathbb{Z}_n dowolne niezerowe czynniki wymagamy, by wszystkie liczby 1,2,\ldots,n-1 były względnie pierwsze z n . To nic innego, jak wymaganie, by n było liczbą pierwszą.

Obserwacja 11.4

Pierścień \mathbb{Z}_n=({\{ {0,\ldots n-1} \} },+,\cdot) jest ciałem, wtedy i tylko wtedy, gdy n jest liczba pierwszą.

Rozwiązywanie równań modularnych

Oczywiście w ciele, każde równanie postaci ax=b ma dokładnie jedno rozwiązanie x , o ile a\neq 0 . Zobaczmy czy są, jak wyglądają i jak otrzymać rozwiązania x równania modularnego postaci ax\equiv_n b w liczbach całkowitych x , gdzie a,b\in \mathbb{Z} oraz a\neq 0 .

Obserwacja 11.5

Dla a,b \in \mathbb{Z}, a\neq 0 rozwiązania równania modularnego z jedną niewiadomą x :

ax\ \equiv_{n}b ,

zależą od wielkości {\sf NWD}\ (a,n)=1 w następujący sposób:

  • jeśli {\sf NWD}\ (a,n)=1 ,

to istnieje nieskończenie wiele rozwiązań; wszystkie one są postaci x=x_0+kn , gdzie 0\leq x_0 < n jest jakimś rozwiązaniem, a k\in\mathbb{Z} ,

  • jeśli {\sf NWD}\ (a,n)=d>1 ,

to równanie ma rozwiązanie wtedy i tylko wtedy, gdy również d|b . W tym przypadku rozwiązania równania ax\ \equiv_{n}b pokrywają się z rozwiązaniami równania \frac{a}{d}x\ \equiv_{\frac{n}{d}}\frac{b}{d} .

Ponadto,

  • ponadto, jeśli 0\leq a,b < n , to rozwiązanie 0\leq x_0 < n

równania ax\ \equiv_{n}b , lub jego brak, można wskazać wykonując O(lg^3{n}) operacji bitowych.

Dowód

Zauważmy najpierw, że jeśli a',b' są resztami z dzielenia odpowiednio a i b przez n , to rozwiązania równań ax\ \equiv_{n}b i a'x\ \equiv_{n}b' są takie same. Istotnie, wynika to natychmiast z tego, że a'x\ \equiv_{n}ax oraz b'\ \equiv_{n}b . Możemy więc przyjąć, że 0\leq a,b < n . Ponadto odnotujmy, że z tych samych powodów, jeśli x_0 spełnia równanie, to spełnia je również każda liczba postaci x_0+kn , gdzie k\in\mathbb{Z} .

Załóżmy najpierw, że {\sf NWD}\ (a,n)=1 . Rozszerzony algorytm Euklidesa gwarantuje istnienie y,z takich, że 1\ \equiv_{n}ya+zn \equiv_n ya . Łatwo teraz sprawdzić, że reszta x_0 z dzielenia yb przez n jest rozwiązaniem. A więc i wszystkie liczby postaci x_0+kn , są również rozwiązaniami. Pozostaje pokazać, że wszystkie rozwiązania są takiej właśnie postaci. Niech więc ax\equiv_n b\equiv_n ax_0 . Ponieważ a\perp n , to a możemy skrócić otrzymując x\ \equiv_{n}x_0 , co implikuje że x=x_0+kn , dla pewnej liczby całkowitej k .

Niech teraz {\sf NWD}\ (a,n)=d>1 . Najpierw pokażemy, że jeśli równanie ax\ \equiv_{n}b ma rozwiązanie, to d|b . Rzeczywiście, jeśli ax_0\ \equiv_{n}b dla pewnego x_0 , to n|ax-b , a więc i d|ax-b . Ale d|a , więc d|b . Na odwrót, gdy d|b , to liczby a,b,n są podzielne przez n . Niech więc a'=a/d , b'=b/d i n'=n/d . Wtedy {\sf NWD}\ (a',n')=1 i, na mocy pierwszego punktu, równanie a'x\ \equiv_{n'}b' ma nieskończenie wiele rozwiązań. Pozostaje pokazać, że są to te same rozwiązania, co dla równania ax\ \equiv_{n}b . Niech więc n'|a'x-b' . Wtedy n=dn'|d(a'x-b') = ax-b . Gdy zaś ax\ \equiv_{n}b , to ax=b+kn dla pewnego k\in\mathbb{Z} . A zatem da'x=db'+kdn' i, po wydzieleniu przez d>1 , dostajemy a'x=b'+kn' , czyli a'x\ \equiv_{n'}b' .

Na podstawie dowodu poprzednich dwu punktów wiemy więc, że by rozwiązać równanie ax\ \equiv_{n}b wystarczy:

  • policzyć d:={\sf NWD}\ (a,n) oraz współczynniki y,z takie, że ya+zn=d ,
  • jeśli d=1 , to x_0 =yb \ {\sf mod} \ n jest poszukiwanym rozwiązaniem,
  • jeśli d>1 i d\not| b , to równanie nie posiada rozwiązań,
  • jeśli d>1 i d|b , to y\frac{b}{d} jest szukanym rozwiązaniem.

W pierwszym punkcie rozszerzony algorytm Euklidesa pracuje w czasie O(\lg^3{n}) , bo a,b < n . W kolejnych punktach wykonywane są jedynie podstawowe operacje arytmetyczne, a więc wykonywanych jest O(\lg^2{n}) operacji bitowych. Podsumowując, aby znaleźć rozwiązanie rozważanego równania (bądź stwierdzić ich brak) wystarczy O(\lg^3{n}) operacji bitowych.

Wniosek 11.6

Jeśli p jest liczbą pierwszą, to równania postaci ax\ \equiv_{p}b dla dowolnych 0 < a < p i 0\leq b < p zawsze mają rozwiązanie i można je znaleźć wykonując O(lg^3{p}) operacji bitowych.

Przykład

Rozwiążemy równanie 3x\equiv_7 4 .

  • {\sf NWD}\ (3,7)=1 , czyli równanie ma nieskończenie wiele rozwiązań,
  • 1=1\cdot7-2\cdot3 ,

czyli zbiór rozwiązań to {\{ {-2\cdot4+7k: k\in\mathbb{Z}} \} }={\{ {7k-1:k\in\mathbb{Z}} \} } .

A następnie równanie 3x\equiv_{12}4 .

  • {\sf NWD}\ (3,12)=3 , ale 3\not| 4 , czyli równanie nie ma rozwiązania.

Wreszcie rozważmy równanie 9x\equiv_{21}12 .

  • {\sf NWD}\ (9,21)=3 oraz 3|12 , czyli równanie ma nieskończenie wiele rozwiązań,
  • 3=1\cdot21-2\cdot9 ,

czyli zbiór rozwiązań to {\{ {-2\cdot\frac{12}{3}+ \frac{21}{3}k : k\in\mathbb{Z}} \} }={\{ {13+7k : k\in\mathbb{Z}} \} } .

Czasem jedną kongruencję wygodnie jest zamienić na układ kongruencji wykorzystując następującą własność.

Obserwacja 11.7

Niech a,b,m,n\in\mathbb{Z} , gdzie m,n>0 i m\perp n . Wtedy a\ \equiv_{mn}b jest równoważne temu, że równocześnie a\ \equiv_{m}b i a\ \equiv_{n}b .

Dowód

Jeśli a\ \equiv_{mn}b , to mn|a-b . A więc oczywiście m|a-b i n|a-b , co jest równoważne z a\ \equiv_{m}b i a\ \equiv_{n}b . Dla dowodu implikacji odwrotnej, że jest ona trywialna dla a=b i wobec tego przyjmijmy (bez straty ogólności), że a>b . Załóżmy też, że m|a-b i n|a-b . Ponieważ m\perp n , to rozkłady liczb m i n nie mają wspólnych czynników pierwszych. Natomiast rozkład a-b musi zawierać wszystkie liczby pierwsze z rozkładów m i n w odpowiednio wysokich potęgach. To dowodzi, iż mn|a-b , czyli a\ \equiv_{mn}b .

Poprzednia obserwacja prowadzi do twierdzenia powszechnie znanego jako Chińskie Twierdzenie o Resztach. Udowodnił je chiński matematyk Sun Tzu w III wieku n.e. ( nie mylić z Sun Tzu, myślicielem, filozofem, autorem Sztuki wojny).

Twierdzenie 11.7 [Chińskie twierdzenie o resztach]

Niech n_1,\ldots,n_k\in\mathbb{N}-{\{ {0} \} } będą parami względnie pierwsze, tzn. n_i\perp n_j dla i\neq j . Wtedy dla dowolnych a_1,\ldots,a_k istnieje dokładnie jedna liczba 0\leq x < n_1\cdot\ldots\cdot n_k taka, że:

\begin{align*} x & \equiv_{n_1} & a_1,\nonumber \\ x & \equiv_{n_2} & a_2,\nonumber \\ & \vdots & \\ x & \equiv_{n_k} & a_k.\nonumber \end{align*}

Dowód

Niech N=n_1\cdot\ldots\cdot n_k . Dla liczby a rozważmy ciąg \overline{a}=(a_1,\ldots,a_k) reszt z dzielenia a odpowiednio przez n_1,\ldots,n_k .

Niech teraz 0\leq a < b < N . Gdyby \overline{a}=\overline{b} , to

\begin{align*} a & \equiv_{n_1} & b, \\ a & \equiv_{n_2} & b, \\ & \vdots & \\ a & \equiv_{n_k} & b. \end{align*}

Z drugiej strony n_1\ldots n_i \perp n_{i+1} , więc stosując wielokrotnie Obserwację 11.7 otrzymujemy i\ \equiv_{N}j , czyli N|j-i , co jest niemożliwe wobec 0 < j-i < N . Sprzeczność ta pokazuje, że liczby ze zbioru {\{ {0,1,\ldots,N-1} \} } mają różne ciągi reszt. Oznacza to, że ciągów postaci \overline{a} jest dokładnie N , czyli tyle ile wszystkich możliwych ciągów w \mathbb{Z}_{n_1}\times\ldots\times\mathbb{Z}_{n_k} . Tym samym przyporządkowanie \mathbb{Z}_N \ni a \mapsto \overline{a} \in \mathbb{Z}_{n_1}\times\ldots\times\mathbb{Z}_{n_k} jest bijekcją, co kończy dowód twierdzenia.

Chińskie Twierdzenie o Resztach podaje warunki wystarczające na istnienie rozwiązania układu równań modularnych (1). Nie podaje jednak metody jego uzyskania.

Konstrukcja rozwiązania.

Niech N_j=N/n_j , czyli N_j jest iloczynem wszystkich n_i poza n_j . Oczywiście, {\sf NWD}\ (n_i,N_i)=1 . Rozszerzony algorytm Euklidesa pozwala więc znaleźć liczby x_i takie, że N_ix_i\ \equiv_{n_i}1 . Połóżmy

\displaystyle x=\sum_{i=1}^k a_i x_i N_i.

Wtedy n_i dzieli wszystkie czynniki sumy poza i -tym, ponieważ n_i|N_j dla j\neq i . A więc, dla dowolnego i mamy:

x\equiv_{n_i}a_ix_iN_i\equiv_{n_i} a_i \cdot 1 =a_i.

To oznacza, że x jest rozwiązaniem układu równań modularnych (1).

Oszacujmy czas działania tego algorytmu. Niech l_1,\ldots,l_k będą długościami odpowiednio n_1,\ldots,n_k . Wtedy N ma długość co najwyżej l=l_1+\ldots+l_k . Kroki algorytmu można wykonać kolejno w czasie:

  • O(kl) na wyliczenie wszystkich iloczynów postaci N_i oraz całego iloczynu N ,
  • O(kl^3) na wyliczenie kolejnych współczynników x_i , czyli k -krotną aplikację rozszerzonego algorytmu Euklidesa dla liczb n_i, N_i\leq N ,
  • O(kl^2) na obliczenie x , czyli O(k) mnożeń i dodawań.

Podsumowując wszystkie kroki zostaną wykonane w czasie O(k\lg^3{N}) .

Przykład

Rozważmy układ równań:

\begin{align*} x & \equiv_3 & 2, \\ x & \equiv_{10} & 7, \\ x & \equiv_{11} & 10, \\ x & \equiv_7 & 1. \end{align*}

  • {\sf NWD}\ (3,10)={\sf NWD}\ (3,11)={\sf NWD}\ (3,7)={\sf NWD}\ (10,11)={\sf NWD}\ (10,7)={\sf NWD}\ (11,7)=1,

czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,

  • N=3\cdot7\cdot10\cdot11=2310 ,
  • N_1=\frac{2310}{3}=770 ,
  • N_2=\frac{2310}{10}=231 ,
  • N_3=\frac{2310}{11}=210 ,
  • N_4=\frac{2310}{7}=330 .

Zgodnie z procedurą czterokrotnie używamy rozszerzonego algorytmu Euklidesa otrzymując x_1,\ldots,x_4 :

  • {\sf NWD\ }(3,770)=1=257\cdot3-1\cdot770 , x_1=-1\equiv_3 2 ,
  • {\sf NWD}\ (10,231)=1=-23\cdot10+1\cdot231 , x_2=1 ,
  • {\sf NWD}\ (11,210)=1=-19\cdot11+1\cdot210 , x_3=1 ,
  • {\sf NWD}\ (7,330)=1=-47\cdot7+1\cdot330 , x_4=1 .

Pozostaje policzyć x :

\begin{align*} x & =2\cdot2\cdot770+7\cdot1\cdot231+10\cdot1\cdot210+1\cdot1\cdot330 \\ & =3080+1617+2100+330 \\ & =7127\equiv_{2310} 197. \end{align*}

A więc 197 jest najmniejszym dodatnim rozwiązaniem naszego układu równości.

Przykład

Rozważmy jeszcze jeden układ równań:

\begin{align*} x & \equiv_2 & 0, \\ x & \equiv_{13} & 12, \\ x & \equiv_{15} & 2. \end{align*}

  • {\sf NWD}\ (2,13)={\sf NWD}\ (2,15)={\sf NWD}\ (13,15)=1 ,

czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,

  • N=2\cdot13\cdot15=390 ,
  • N_1=\frac{390}{2}=195 ,
  • N_2=\frac{390}{13}=30 ,
  • N_3=\frac{390}{15}=26 ,
  • {\sf NWD}\ (2,195)=1=-97\cdot2+1\cdot195 , x_1=1 ,
  • {\sf NWD}\ (13,30)=1=7\cdot13-3\cdot30 , x_2=-3\equiv_{13} 10 ,
  • {\sf NWD}\ (15,26)=1=7\cdot15-4\cdot26 , x_3=-4\equiv_{15}11 .

Pozostaje nam obliczenie x :

\begin{align*} x & =0\cdot1\cdot195+12\cdot10\cdot30+2\cdot26\cdot11=4172\equiv_{390}=272. \end{align*}

Zatem 272 jest najmniejszym dodatnim rozwiązaniem naszego układu równań.