13.07.2015 Views

Matematici discrete pentru CS - Departamentul Automatica ...

Matematici discrete pentru CS - Departamentul Automatica ...

Matematici discrete pentru CS - Departamentul Automatica ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• y ≤ x/2. Atunci primul argument y în apelul recursiv urmǎtor este deja maimic decât x cu un factor de 2 si astfel în apelul recursiv urmǎtor va fi chiarmai mic;• x ≥ y > x/2. Atunci în douǎ apeluri recursive primul argument va fi x mod y,care este mai mic decât x/2.Asadar, în ambele cazuri primul argument descreste printr-un factor de cel putin2 la fiecare apel recursiv. Astfel, dupǎ cel mult 2n apeluri recursive, unde n estenumǎrul de biti în x, recursia se va opri (de notat cǎ de fiecare datǎ primulargument este un numǎr natural)□De observat cǎ partea a doua a demonstratiei de mai sus aratǎ numai cǎ numǎrulde apeluri recursive în timpul calculului este O(n). Putem face aceeasi afirmatie<strong>pentru</strong> durata calculului dacǎ presupunem cǎ fiecare apel necesitǎ o duratǎconstantǎ. Deoarece fiecare apel include o comparatie de întregi si o operatiemod(ulo) pare rational a considera durata aceasta constantǎ. Într-un model decalcul mai realist trebuie totusi sǎ facem acest timp dependent de dimensiunilenumerelor implicate: astfel comparatia ar necesita O(n) operatii elementare (pebiti) si operatia mod, care este în fapt o împǎrtire, va necesita O(n 2 ) operatii<strong>pentru</strong> un total de O(n 2 ) operatii în fiecare apel recursiv (Aici n este numǎrulmaxim de biti în x si y, care este exact numǎrul de biti în x). Astfel, într-unasemenea model, durata calculelor cu algoritmul lui Euclid este în realitateO(n 3 ).Aritmetica modularǎUn exemplu: calculul zilei din sǎptǎmânǎ. Se presupune cǎ secventa zilelorsǎptǎmânii (luni, marti, miercuri, joi, vineri, sâmbǎtǎ, duminicǎ) este aplicatǎ pesecventa de numere (0, 1, 2, 3, 4, 5, 6) astfel încât luni este 0, marti este 1 etc.În cazul cǎ azi este joi = 3, dacǎ e de calculat ce zi a sǎptǎmânii va fi peste 10zile, intuitiv am rǎspunde cu restul împǎrtirii la 7 a lui 3 + 10 = 13, care este 6,adicǎ duminicǎ. De fapt, pare a fi cam fǎrǎ sens în acest context a aduna unnumǎr ca 10 si mai la îndemânǎ ar putea fi sǎ gǎsim restul lui modulo 7, sianume 3, apoi sǎ adunǎm acest 3 la 3 <strong>pentru</strong> a gǎsi 6.Dar dacǎ se continuǎ cu alte salturi de 10 zile? Dupǎ 5 asemenea salturi am gǎsi3 + 3*5 = 18, care dǎ 4 mod 7, adicǎ vineri.Acest exemplu aratǎ cǎ în unele împrejurǎri are sens sǎ lucrǎm într-o artimeticǎlimitatǎ, restrânsǎ de un numǎr anumit (aici 7), adicǎ sǎ facem aritmeticǎ prinstabilirea <strong>pentru</strong> fiecare numǎr, numǎrul modulo 7 sǎ spunem, si sǎ repetǎmaceasta <strong>pentru</strong> rezultate s.a.m.d. În afarǎ de eficienta datǎ de mentinerearezultatelor si valorilor intermediare la un nivel valoric scǎzut, aceastǎ tratareare aplicatii importante în criptografie, cum se va vedea mai departe.Se pot scrie ecuatii în acest gen de aritmeticǎ. Ecuatiile sunt scrise, de exemplu,sub forma4 + 10*5 = 40 mod 780

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!