diff --git a/02-perfect/perfect.tex b/02-perfect/perfect.tex index a00c5be219db6f0b9c60264cc2488c0821032da7..b5efeb45387a096713eae7bd0d36669009a7642c 100644 --- a/02-perfect/perfect.tex +++ b/02-perfect/perfect.tex @@ -189,7 +189,7 @@ Pokud se sejde méně než~$\ell$, v~každé $\ell$-tici nějaká část chybí, takže z~žádné $\ell$-tice se nic nedozvíme. } -\subsection{Shamirovo schéma} +\subsection[shamir]{Shamirovo schéma} Efektivní konstrukci $(k,\ell)$-schémat popsal v~roce 1979 Adi Shamir. Začneme triviálním případem. diff --git a/07-teorie-cisel/teorie-cisel.tex b/07-teorie-cisel/teorie-cisel.tex index d7d991f04fbe424e07531c23ef6dc3e8bf2bac42..33b01f0b08dc13ee7d30c23c0d2439b4d6e1917e 100644 --- a/07-teorie-cisel/teorie-cisel.tex +++ b/07-teorie-cisel/teorie-cisel.tex @@ -376,6 +376,30 @@ Dále pokračujeme indukcí podle~$k$, přičemž případ pro $k=2$ použijeme jako indukční krok. \qed +Nám se ovšem bude hodit i konstruktivní důkaz, který nám umožní hledané~$x$ efektivně najít. + +\theoremn{Efektivní CRT}{ +$f\inv(a_1,\ldots,a_k)$ lze spočítat v~čase $\O(kb^2)$. +} + +\proof +Větu opět stačí dokázat pro $k=2$ a pak použít indukci. + +Inspirujeme se Lagrangeovou interpolací z~oddílu \secref{shamir}. +Pokud bychom znali čísla $u_1$ a~$u_2$ taková, že $f(u_1) = (1,0)$ +a $f(u_2) = (0,1)$, řešením je jejich lineární kombinace +$x = (a_1u_1 + a_2u_2) \bmod N$. +Jelikož $f$ je homomorfismus, je lineární. Proto platí: +$f(x) = a_1f(u_1) + a_2f(u_2) = a_1(1,0) + a_2(0,1) = (a_1,a_2)$. + +Zbývá si pořídit~$u_1$ ($u_2$~najdeme obdobně) +Nejprve si všimneme, že $f(N_2) = (v_1,0)$ pro nějaké~$v_1$. +Pokud je $v_1=1$, položíme $u_1=N_2$ a jsme hotovi. +Jinak najdeme multiplikativní inverzi~$w_1$ čísla $v_1$ modulo~$N_1$ +a položíme $u_1=w_1N_2$. Bude platit $f(u_1) = f(w_1N_2) = w_1f(N_2) += w_1(v_1,0) = (w_1v_1\bmod N_1,0) = (1,0)$. +\qed + \subsection{Eulerova funkce} Už jsme zavedli funkci~$\varphi(n)$, která udává, kolik prvků ze~$Z_n$ je nesoudělných s~$n$,