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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Lecţia 9Secvenţa de lecţii care urmeazǎ se referǎ la subiectul important al algoritmiloraritmetici. Se va dezvolta acest subiect pânǎ la întelegerea sistemului de criptareRSA cu cheie publicǎ.Primalitate si factorizareSǎ admitem cǎ se dǎ un numǎr – fie acela 307131961967 – si se cere rǎspunsulla întrebarea: este prim sau nu? Nu este prima datǎ când (vi) se pune o astfel deîntrebare. Cum se poate hotǎrî dacǎ un numǎr dat este prim?Existǎ, desigur, cel putin un algoritm <strong>pentru</strong> asta:algorithm prime(x)y:=2repeatif x mod y = 0 then return(false)y:=y+1until y=xreturn(true)Prin x mod y se întelege restul împǎrtirii întregi a lui x prin y, cu y nenul.Acest algoritm determinǎ corect dacǎ numǎrul natural x > 2 este prim. El esteimplementarea definitiei unui numǎr prim prin explorarea exhaustivǎ a tuturordivizorilor posibili, de la 2 la x – 1. Dar acesta nu este un algoritm de prea mareutilitate: el ar fi nepractic pânǎ si <strong>pentru</strong> exemplul relativ modest propus,numǎrul cu 12 cifre de mai sus si, cum vom vedea, criptografia modernǎ cere canumere cu câteva sute de cifre sǎ fie testate <strong>pentru</strong> primalitate. Algoritmulnecesitǎ un numǎr de pasi proportional cu x ceea ce nu este deloc bine.Un alt algoritm mai rapid:algorithm fasterprime(x)y:=2repeatif x mod y = 0 then return(false)y:=y+1until y*y≥xreturn(true)Acum e ceva mai bine. Algoritmul acesta verificǎ toti divizorii posibili pânǎ larǎdǎcina pǎtratǎ a lui x. Si asta este suficient, deoarece dacǎ x are un alt divizordecât 1 si el însusi, se ia în considerare cel mai mic dintre ei, fie acela y. Atunci,x = y.z, cu z un întreg care este tot un divizor al lui x diferit de 1 si de el însusi.Si întrucât y este divizorul cel mai mic, z ≥ y. Urmeazǎ cǎ y.y ≤ y.z = x si y nu77

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

Saved successfully!

Ooh no, something went wrong!