Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2008-01-11 07:08:59.
Revizia anterioară   Revizia următoare  

Teorema chineza a resturilor - generalizari si aplicatii

Scurta istorie

<p>Se considera un numar de obiecte. Impartindu-le in grupuri de cate trei, raman doua negrupate. Impartindu-le in grupuri de cate cinci, raman trei. Impartindu-le in grupuri de cate sapte, raman doua. Cate obiecte sunt? Aceasta este problema enuntata de matematicianul chinez Sun-Tsu in secolul al IV-lea al erei noastre. El a demonstrat ca toate numerele naturale de forma 23 + 105 • k reprezinta solutiile acestei probleme. Din pacate nu putem sti daca a dezvoltat o metoda generala pentru a rezolva astfel de sisteme de ecuatii modulare. Aceasta este tema tratata in articolul care urmeaza.</p>

Definitie

<p>Pentru inceput, sa consideram sirul n = n 1 , n 2 , ..., n k , ale carui elemente sunt, luate doua cate doua, prime intre ele.</p>
<p>*Teorema chineza a restului* (t.c.r.) afirma ca exista o corespondenta biunivoca intre orice numar a \in Z n si multimea ordonata de resturi ale lui a modulo n i , i \in {1, 2, ..., k}. Cu alte cuvinte, operatiile in Z n pot fi aplicate echivalent atat pe numere cat si pe multimile ordonate corespunzatoare resturilor modulo n i .<p>
<p>Pentru orice a, b \in Z n, notam a i = a mod n, respectiv b i = b mod n, generand corespondentele  a \leftrightarrow {a 1 , a 2 , ..., a k } respectiv b \leftrightarrow {b 1 , b 2 , ..., b k }. Conform teoremei chineze a restului, pentru orice operator  \circ \in {+, -, * }, a \circ b \leftrightarrow {(a 1 \circ b 1) mod n 1 , (a 2 \circ b 2 )mod n 2 , ..., (a k \circ b k ) mod n k } ramane o corespondenta valida.</p>
<p>Problema care se iveste imediat este conversia dintr-o forma in alta. Transformarea unui numar in multimea corespunzatoare este imediata. Partea mai dificila este operatia inversa, iar aceasta este problema care va fi tratata in continuare.</p>
<p>Pentru determinarea numarului x\inZ n , corespunzator multimii {a 1 , a 2 , ..., a k }, este suficienta rezolvarea sistemului de ecuatii modulare:</p>

<p>  x \equiv a 1 (mod n 1 )

  x \equiv a 2 (mod n 2 )

  ...

  x \equiv a k (mod n k )
</p>

<p>Deoarece avem de a face cu o corespondenta biunivoca, conform teoremei, exista un singur x \in Z n care satisface sistemul de mai sus. Procedeul prin care se determina aceasta valoare nu este deosebit de complicat:
</p>

  • se noteaza n = n 1 • n 2 • ... • n k si M i = n / n i (deoarece oricare doua valori n i si n j sunt prime intre ele, avem intotdeauna cmmdc(M i, n i ) = 1);
  • se calculeaza x i , i \in {1, 2, ..., k} cu proprietatea M i • x i \equiv 1 (mod n i ); cu alte cuvinte, avem x i = M i -1 mod n i ;
  • se determina x = (a 1 • M 1 • x 1 + a 2 • M 2 • x 2 + ... + a k • M k • x k) mod n.

<p>Sa demonstram mai intai ca acesta valoare x satisface sistemul. Este necesar ca pentru orice i \in{1, 2, ..., k}, x \equiv a i (mod n i ).</p>

<p>Mai exact, trebuie sa fie satisfacuta egalitatea ((a 1 • M 1 • x 1 + a 2 • M 2 • x 2 + ... + a k • M k • x k ) mod n) mod n i = a i , \forall i \in {1, 2, ..., k}.</p>

<p>Datorita faptului ca n i | n, avem (a 1 • M 1 • x 1 + a 2 • M 2 • x 2 + ... + a k • M k • x k ) mod n i = a i . Stim ca M i = n / n i, \forall j \neq i, M j mod n i = 0, deci \forall j \neqi, (a j • M j • x j) mod n i = 0. Este suficient sa demonstram ca (a i • M i • x i ) mod n i = a i \Leftrightarrow(a i • (M i • x i ) mod n i ) mod n i = a i . Folosind M i • x i \equiv 1 (mod n i) ajungem la egalitatea evidenta
a i = a i (q.e.d.)</p>

<p>Mai ramane de verificat daca valoarea x este unica. Fie x ' o alta solutie; avem x < n si x ' < n. Daca x \equiv a i (mod n i ) si x ' \equiv a i (mod n i ), \forall i \in {1, 2, ..., k}, presupunand ca x ' < x, avem x ' - x \equiv 0 (mod n i ), \forall i \in {1, 2, ... k}.</p>

<p>Datorita faptului ca numerele n i sunt relativ prime, rezulta ca x ' - x = k • n, k \in Z * , deci x ' - x \geqn, ceea ce contrazice ipoteza initiala. Asadar, solutia este unica, asa cum poate fi dedus si din t.c.r.</p>

<p>Mai mult, verificand daca se pastreaza corespondenta in cazul aplicarii operatorilor, demonstrarea t.c.r. poate fi usor incheiata.</p>

<p>
Pentru calcularea inversului modular al unui numar din Z n , de obicei se foloseste algoritmul

extins al lui Euclid
. Evident, pentru ca acest invers sa existe, trebuie sa avem cmmdc(a, n) = 1. Aplicam algoritmul extins al lui Euclid si determinam x si y astfel incat a • x + n • y = 1 si obtinem a -1 = x mod n; pentru a verifica observam ca egalitatea a -1 = x mod n este echivalenta
cu a • (x mod n) \equiv 1 (mod n) care, la rândul sau, este echivalenta cu a • x \equiv 1 (mod n). Aceasta ultima afirmatie este evident adevarata deoarece avem a • x + n • y = 1.
Pentru valori mici ale lui n, este recomandata preprocesarea "bruta" a inverselor tuturor
numerelor a din Z n prime cu n, folosind doua structuri repetitive imbricate.
</p>

  • acest articol trebuie imbunatatit