Skip to content
Snippets Groups Projects
Commit fbecdf75 authored by Martin Mareš's avatar Martin Mareš
Browse files

Teorie čísel: Spell check

parent 165ebb09
Branches
No related tags found
No related merge requests found
...@@ -282,7 +282,7 @@ Pro každé $n>1$ a $x\perp p$ platí $x^{\varphi(n)}\equiv 1\pmod n$. ...@@ -282,7 +282,7 @@ Pro každé $n>1$ a $x\perp p$ platí $x^{\varphi(n)}\equiv 1\pmod n$.
\proof \proof
Uvažme množinu $H = \{x^0, x^1, x^2, \ldots\}$ (násobíme modulo~$n$). Uvažme množinu $H = \{x^0, x^1, x^2, \ldots\}$ (násobíme modulo~$n$).
Jelikož~$x$ je invertibilní prvek a ty jsou uzavřené na násobení, Jelikož~$x$ je invertibilní prvek a ty jsou uzavřené na násobení,
je~$H$ podmnožínou~$\Zsn$. Dokážeme, že je dokonce podgrupou. je~$H$ podmnožinou~$\Zsn$. Dokážeme, že je dokonce podgrupou.
Jelikož $x^i$ mohou nabývat jen konečně mnoha hodnot, musí se nějaká Jelikož $x^i$ mohou nabývat jen konečně mnoha hodnot, musí se nějaká
hodnota zopakovat. Uvažme první takové opakování, tedy nejmenší~$j$ hodnota zopakovat. Uvažme první takové opakování, tedy nejmenší~$j$
...@@ -305,7 +305,7 @@ Tím pádem je $\varphi(n) = jk$ pro nějaké~$k$, takže můžeme psát ...@@ -305,7 +305,7 @@ Tím pádem je $\varphi(n) = jk$ pro nějaké~$k$, takže můžeme psát
$x^{\varphi(n)} \equiv x^{jk} \equiv (x^j)^k \equiv 1^k \equiv 1$. $x^{\varphi(n)} \equiv x^{jk} \equiv (x^j)^k \equiv 1^k \equiv 1$.
\qed \qed
\subsection{Činská věta o~zbytcích} \subsection{Čínská věta o~zbytcích}
Nyní se zamysleme nad tím, jak najít číslo~$x$, které dává modulo~$N_1$ Nyní se zamysleme nad tím, jak najít číslo~$x$, které dává modulo~$N_1$
zadaný zbytek~$a_1$ a modulo~$N_2$ zbytek~$a_2$. Řešíme tedy soustavu kongruencí: zadaný zbytek~$a_1$ a modulo~$N_2$ zbytek~$a_2$. Řešíme tedy soustavu kongruencí:
...@@ -363,7 +363,7 @@ $N=N_1\cdot\ldots\cdot N_k$ a $a_i\in\Z_{N_i}$ pro $i=1,\ldots,k$. ...@@ -363,7 +363,7 @@ $N=N_1\cdot\ldots\cdot N_k$ a $a_i\in\Z_{N_i}$ pro $i=1,\ldots,k$.
Pak existuje právě jedno $x\in\Z_N$ takové, že $x\bmod N_i = a_i$ pro všechna~$i$. Pak existuje právě jedno $x\in\Z_N$ takové, že $x\bmod N_i = a_i$ pro všechna~$i$.
} }
\theoremn{Algebraicka formulace CRT}{ \theoremn{Algebraická formulace CRT}{
Nechť $N_1,\ldots,N_k$ jsou navzájem nesoudělná kladná čísla a Nechť $N_1,\ldots,N_k$ jsou navzájem nesoudělná kladná čísla a
$N=N_1\cdot\ldots\cdot N_k$. $N=N_1\cdot\ldots\cdot N_k$.
Pak funkce $f: \Z_N \rightarrow Z_{N_1} \times \ldots \times \Z_{N_k}$ Pak funkce $f: \Z_N \rightarrow Z_{N_1} \times \ldots \times \Z_{N_k}$
...@@ -372,7 +372,7 @@ je izomorfismus okruhů $Z_N$ a $Z_{N_1} \times \ldots \times \Z_{N_k}$. ...@@ -372,7 +372,7 @@ je izomorfismus okruhů $Z_N$ a $Z_{N_1} \times \ldots \times \Z_{N_k}$.
} }
\proof \proof
Pro $k=1$ jsou obě věty triviální, pro $k=2$ jsme je už dokazali. Pro $k=1$ jsou obě věty triviální, pro $k=2$ jsme je už dokázali.
Dále pokračujeme indukcí podle~$k$, přičemž případ pro $k=2$ použijeme Dále pokračujeme indukcí podle~$k$, přičemž případ pro $k=2$ použijeme
jako indukční krok. jako indukční krok.
\qed \qed
...@@ -429,14 +429,14 @@ a~tím pádem stejný počet čísel~$x$. ...@@ -429,14 +429,14 @@ a~tím pádem stejný počet čísel~$x$.
\endlist \endlist
Z~tohoto lemmatu plyne, že kdykoliv umíme číslo~$n$ faktorizovat (rozložit na součin Z~tohoto lemmatu plyne, že kdykoliv umíme číslo~$n$ faktorizovat (rozložit na součin
mocnin různých prvočísel), umíme efektivně spočitat $\varphi(n)$. Žádný efektivní způsob, mocnin různých prvočísel), umíme efektivně spočítat $\varphi(n)$. Žádný efektivní způsob,
který nepotřebuje faktorizaci, není znám. který nepotřebuje faktorizaci, není znám.
\section{Faktorizace versus prvočíselnost} \section{Faktorizace versus prvočíselnost}
Mezi základní algoritmické problémy teorie čísel patří \em{faktorizace} celých čísel Mezi základní algoritmické problémy teorie čísel patří \em{faktorizace} celých čísel
(rozklad na součin prvočísel) a testování, zda dané číslo je prvočíslem. Jakkoliv podobně (rozklad na součin prvočísel) a testování, zda dané číslo je prvočíslem. Jakkoliv podobně
tyto problémy vypadají, jejich obtíznost je zásadně různa. tyto problémy vypadají, jejich obtížnost je zásadně různá.
Faktorizace: Faktorizace:
...@@ -520,12 +520,12 @@ Je-li $n$ složené číslo, které není Carmichaelovo, Fermatův test ho usvě ...@@ -520,12 +520,12 @@ Je-li $n$ složené číslo, které není Carmichaelovo, Fermatův test ho usvě
\proof \proof
Spusťme algoritmus s~daným~$n$. Pokud narazíme na Euklidova svědka, rovnou odpovíme správně. Spusťme algoritmus s~daným~$n$. Pokud narazíme na Euklidova svědka, rovnou odpovíme správně.
Stačí tedy lemma dokazat pro $a$ rovnoměrně náhodně vybrané z~$\Zsn$. Stačí tedy lemma dokázat pro $a$ rovnoměrně náhodně vybrané z~$\Zsn$.
Uvažme podmnožinu $H\subseteq\Zsn$ čísel, která nejsou Fermatovými svědky. Tedy: Uvažme podmnožinu $H\subseteq\Zsn$ čísel, která nejsou Fermatovými svědky. Tedy:
$$ $$
H = \{ a\in\Zsn \mid a^{n-1}\bmod n = 1 \}. H = \{ a\in\Zsn \mid a^{n-1}\bmod n = 1 \}.
$$ $$
Dokážeme, že $H$ je podgroupu~$\Zsn$. Jistě platí $1\in H$. Pokud $a,b\in H$, Dokážeme, že $H$ je podgrupu~$\Zsn$. Jistě platí $1\in H$. Pokud $a,b\in H$,
máme $(ab)^{n-1} \equiv a^{n-1}b^{n-1} \equiv 1\cdot 1 \equiv 1$, takže $ab\in H$. máme $(ab)^{n-1} \equiv a^{n-1}b^{n-1} \equiv 1\cdot 1 \equiv 1$, takže $ab\in H$.
Podobně ověříme, že pro $a\in H$ je $a\inv\in H$. Podobně ověříme, že pro $a\in H$ je $a\inv\in H$.
...@@ -615,7 +615,7 @@ Izomorfismus v~jednom směru je funkce $e: x \mapsto g^x \bmod p$, v~druhém sm ...@@ -615,7 +615,7 @@ Izomorfismus v~jednom směru je funkce $e: x \mapsto g^x \bmod p$, v~druhém sm
její inverze, které se říká \em{diskrétní logaritmus.} její inverze, které se říká \em{diskrétní logaritmus.}
Zatímco mocniny modulo~$p$ dokážeme počítat efektivně (v~čase $\O(b^3)$), Zatímco mocniny modulo~$p$ dokážeme počítat efektivně (v~čase $\O(b^3)$),
diskrétní logaritmus nikoliv. Podobně jako u~faktorizace neznáme žádný polynomiální diskrétní logaritmus nikoliv. Podobně jako u~faktorizace neznáme žádný polynomiální
algorimus, ale známe zajímavé subexponenciální algoritmy a polynomiální kvantový algoritmus. algoritmus, ale známe zajímavé subexponenciální algoritmy a polynomiální kvantový algoritmus.
Často potřebujeme nějaký generátor najít. K~tomu se hodí otestovat, zda dané číslo~$g$ je generátorem. Často potřebujeme nějaký generátor najít. K~tomu se hodí otestovat, zda dané číslo~$g$ je generátorem.
...@@ -697,7 +697,7 @@ počet odmocnin. 0~má jen jednu (součinem nenulových prvků není nikdy~0). ...@@ -697,7 +697,7 @@ počet odmocnin. 0~má jen jednu (součinem nenulových prvků není nikdy~0).
Odmocniny prvku~$a$ jsou kořeny kvadratického polynomu $x^2-a$ a ty mohou Odmocniny prvku~$a$ jsou kořeny kvadratického polynomu $x^2-a$ a ty mohou
v~libovolném tělese existovat nejvýš~2. To v~kombinaci s~předchozím odstavcem dává, v~libovolném tělese existovat nejvýš~2. To v~kombinaci s~předchozím odstavcem dává,
že každy nenulový prvek má 0 nebo 2 odmocniny. že každý nenulový prvek má 0 nebo 2 odmocniny.
Každý nenulový prvek~$\Zp$ leží v~$\Zsp$, takže ho můžeme napsat jako mocninu nějakého Každý nenulový prvek~$\Zp$ leží v~$\Zsp$, takže ho můžeme napsat jako mocninu nějakého
generátoru~$g$. Polovinu~$\Zsp$ tvoří sudé mocniny $g^{2k}$ a ty jistě mají druhou generátoru~$g$. Polovinu~$\Zsp$ tvoří sudé mocniny $g^{2k}$ a ty jistě mají druhou
...@@ -718,7 +718,7 @@ dvě: 1 a~$-1$. Ovšem 1 to být nemůže, protože by se mocniny generátoru za ...@@ -718,7 +718,7 @@ dvě: 1 a~$-1$. Ovšem 1 to být nemůže, protože by se mocniny generátoru za
opakovat dřív, než by vygenerovaly celou~$\Zsp$. opakovat dřív, než by vygenerovaly celou~$\Zsp$.
\qed \qed
Jelikož diskrétní logaritmy je těžké počitat, bude se hodit efektivnější test Jelikož diskrétní logaritmy je těžké počítat, bude se hodit efektivnější test
na kvadratické zbytky: na kvadratické zbytky:
\theoremn{Eulerovo kriterium}{ \theoremn{Eulerovo kriterium}{
...@@ -786,7 +786,7 @@ vyjde nulové, pak najdeme dvě různá~$x$. ...@@ -786,7 +786,7 @@ vyjde nulové, pak najdeme dvě různá~$x$.
Toto lze zobecnit pro libovolné složené~$n$ a převést tak odmocňování modulo~$n$ Toto lze zobecnit pro libovolné složené~$n$ a převést tak odmocňování modulo~$n$
na odmocňování modulo prvočíselné faktory~$n$, pokud umíme $n$~faktorizovat. na odmocňování modulo prvočíselné faktory~$n$, pokud umíme $n$~faktorizovat.
Žádný efektivní způsob počitání diskrétních odmocnin bez faktorizace~$n$ není znám. Žádný efektivní způsob počítání diskrétních odmocnin bez faktorizace~$n$ není znám.
(Možnost, že $n$ může mít násobné faktory, s~dovolením nebudeme zkoumat.) (Možnost, že $n$ může mít násobné faktory, s~dovolením nebudeme zkoumat.)
\sectionstar{Rozbor Rabinova-Millerova testu} \sectionstar{Rozbor Rabinova-Millerova testu}
...@@ -837,7 +837,7 @@ takže řád musí být sudé číslo. Pro liché~$m$ tedy nemůže platit $a^m\ ...@@ -837,7 +837,7 @@ takže řád musí být sudé číslo. Pro liché~$m$ tedy nemůže platit $a^m\
ani $a^m\equiv_n\nobreak 1$. ani $a^m\equiv_n\nobreak 1$.
\qed \qed
Nyní se přesuneme ke~kroku~\itemref{rmmone}. Z~přechozího lemmatu víme, že pro některé volby čísla~$a$ v~algoritmu Nyní se přesuneme ke~kroku~\itemref{rmmone}. Z~předchozího lemmatu víme, že pro některé volby čísla~$a$ v~algoritmu
je $b_0\not\equiv 1$. Můžeme proto zvolit~$i$ ($0\le i<t$) takové, že $b_{i+1}\equiv a^{2^{i+1}m} \equiv 1$ je $b_0\not\equiv 1$. Můžeme proto zvolit~$i$ ($0\le i<t$) takové, že $b_{i+1}\equiv a^{2^{i+1}m} \equiv 1$
pro všechna možná~$a\in\Z_n$, ale $b_i\equiv a^{2^im} \not\equiv 1$ pro alespoň jedno takové~$a$. Jakmile dokážeme, pro všechna možná~$a\in\Z_n$, ale $b_i\equiv a^{2^im} \not\equiv 1$ pro alespoň jedno takové~$a$. Jakmile dokážeme,
že $b_i\not\equiv\pm 1$ pro alespoň polovinu z~možných~$a$, máme vyhráno. že $b_i\not\equiv\pm 1$ pro alespoň polovinu z~možných~$a$, máme vyhráno.
...@@ -848,7 +848,7 @@ existuje alespoň $\vert\Z^*_n\vert/2$ čísel $a\in\Z^*_n$ takových, že $a^{2 ...@@ -848,7 +848,7 @@ existuje alespoň $\vert\Z^*_n\vert/2$ čísel $a\in\Z^*_n$ takových, že $a^{2
} }
\proof \proof
Ještě jednou stejný trik s~podgroupou. Tentokrát zvolíme $G = \{ x\in\Z^*_n \mid a^{2^im} \equiv \pm1 \}$, Ještě jednou stejný trik s~podgrupou. Tentokrát zvolíme $G = \{ x\in\Z^*_n \mid a^{2^im} \equiv \pm1 \}$,
což je evidentně podgrupa~$\Z^*_n$, a~opět chceme dokázat, že alespoň jeden prvek leží mimo ni. což je evidentně podgrupa~$\Z^*_n$, a~opět chceme dokázat, že alespoň jeden prvek leží mimo ni.
Z~volby~$i$ víme, že existuje~$c$, pro něž $c^{2^im}\not\equiv 1$. Pokud $c^{2^im}\not\equiv -1$, máme vyhráno, Z~volby~$i$ víme, že existuje~$c$, pro něž $c^{2^im}\not\equiv 1$. Pokud $c^{2^im}\not\equiv -1$, máme vyhráno,
...@@ -863,7 +863,7 @@ a $d^{2^im} \equiv_{n/p^e} 1$. Proto $d^{2^im}$ nemůže být modulo~$n$ ani~1, ...@@ -863,7 +863,7 @@ a $d^{2^im} \equiv_{n/p^e} 1$. Proto $d^{2^im}$ nemůže být modulo~$n$ ani~1,
\sectionstar{Ještě jeden test prvočíselnosti} \sectionstar{Ještě jeden test prvočíselnosti}
Nakonec předvedeme ještě jeden algoritmus pro pravděpodobnostní testování prvočísel, Nakonec předvedeme ještě jeden algoritmus pro pravděpodobnostní testování prvočísel,
jehož korektost je snadné dokázat. Daní za jednoduchost důkazu ovšem bude to, že jehož korektnost je snadné dokázat. Daní za jednoduchost důkazu ovšem bude to, že
náš test může udělat chybu na~obě strany: jak prohlásit složené číslo za~prvočíslo, náš test může udělat chybu na~obě strany: jak prohlásit složené číslo za~prvočíslo,
tak prvočíslo za~složené. Bude fungovat následovně: tak prvočíslo za~složené. Bude fungovat následovně:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment