else(d, a, b) := extended-gcd(y, x mod y)return((d, b, a – (x div y)*b))De observat cǎ acest algoritm are aceeasi formǎ ca algoritmul gcd de bazǎdiscutat mai devreme; singura diferentǎ este cǎ acum transferǎm de la un pas laaltul si numerele a, b. Se poate parcurge de mânǎ algoritmul <strong>pentru</strong> intrarea (x,y) = (35, 12) din exemplul numeric de mai sus si se poate verificacorectitudinea rezultatului dat de algoritm <strong>pentru</strong> a, b.Sǎ vedem acum de ce algoritmul lucreazǎ. În cazul de bazǎ (y = 0) este returnatvaloarea c.m.m.d.c. d = x ca si înainte, împreunǎ cu valorile a = 1 si b = 0 caresatisfac ecuatia ax + by = d. Dacǎ y > 0 se calculeazǎ mai întâi recursiv valorile(d, a, b) astfel cad = gcd(y, x mod y) si d = ay + b(x mod y)Ca si în analiza algoritmului vanilla, cunoastem cǎ acest d va fi egal cu gcd(x,y). Astfel prima componentǎ a tripletului returnat de algoritm este corectǎ.Dar celelalte douǎ componente? Sǎ le spunem A si B. Care vor fi valorile lor?Ei bine, din specificarea algoritmului ele trebuie sǎ satisfacǎ relatiad = Ax + ByPentru a realiza cât trebuie sǎ fie A si B, trebuie rearanjatǎ o ecuatie de mai susdupǎ cum urmeazǎ:d = ay + b(x mod y) = ay + b(x – ⎣ x / y⎦y) = bx + (a – ⎣ x / y⎦b)yÎn faza a doua, s-a utilizat faptul cǎ x mod y = x – ⎣ x / y⎦y (de verificat!). Princompararea ultimei variante cu ecuatia de imediat mai sus se vede cǎ trebuieluat A = b si B = a – ⎣ x / y⎦b. Este exact ceea ce face algoritmul si aceastaconchide verificarea de corectitudine pe care am întreprins-o.Deoarece algoritmul extins al celui mai mare divizor comun, extended-gcd,are exact aceasi structurǎ recursivǎ ca si versiunea vanilla, durata lui de lucru vafi aceeasi pânǎ la un factor constant (care reflectǎ timpul crescut <strong>pentru</strong> un apelrecursiv). Astfel, încǎ o datǎ durata de calcul pe numere de n biti va fi O(n)operatii aritmetice si O(n 3 ) operatii pe biti. Prin combinarea acestui adevǎr cudiscutia de mai devreme asupra inverselor, se vede cǎ <strong>pentru</strong> orice x, m cugcd(m, x) = 1 se poate calcula x – 1 mod m în aceleasi limite de timp.84
Lecţia 10PrimalitateStudiem acum complexitatea a douǎ probleme de calcul foarte importante sifoarte legate una de alta.PRIMALITATEA: Fiind dat un întreg, este el prim?FACTORIZAREA: Fiind dat un întreg, care sunt factorii primi ai acestuia?Evident, calitatea de a fi prim a unui numǎr întreg (primalitatea) nu poate fi maidificil de stabilit decât factorizarea lui, deoarece dacǎ se cunoaste cum sestabileste un factor, ar trebui hotǎrît sǎ se cunoascǎ si cum se face testareaprimalitǎtii. Ceea ce este surprinzǎtor si fundamental – si baza criptografieimoderne – este cǎ primalitatea este usoarǎ în timp ce factorizarea este dificilǎ!Cum se stie, primalitatea poate fi rezolvatǎ trivial într-un timp O(x) – de faptsunt de testat numai factorii pânǎ la x . Dar, e limpede, ambii acesti algoritmisunt exponentiali – exponentiali în numǎrul n de biti ai lui x, o mǎsurǎ maiprecisǎ si mai plinǎ de sens a dimensiunii problemei (vǎzut asa, timpul de rularea algoritmului devine O(2 n ) si O(2 n/2 ), respectiv). În fapt, urmarea acestei linii(de testare a din ce în ce mai putini factori) nu duce nicǎieri: deoarecefactorizarea este dificilǎ, singura sperantǎ de a gǎsi un algoritm rapid <strong>pentru</strong>primalitate este de a cǎuta unul care sǎ decidǎ dacǎ un numǎr n este prim fǎrǎ adescoperi un factor al lui n în cazul în care rǎspunsul este negativ.Imediat, este descris un astfel de algoritm. Acest algoritm se bazeazǎ pe faptulurmǎtor relativ la exponentierea modulo un-numǎr-prim.Teorema 10.1 (Mica teoremǎ a lui Fermat): Dacǎ p este numǎr prim, atunci<strong>pentru</strong> orice a ≠ 0 mod p are loc a p – 1 = 1 mod p.Demonstratie: Se considerǎ toate numerele nenule modulo p, Φ = {1, 2, …, p –1}. Acum, dacǎ se ia un a din aceastǎ multime si dacǎ se multiplicǎ toate acestenumere prin a modulo p, se obtine o altǎ multime Φ a = {a.1, a.2, …, a.(p – 1)},toate mod p. Afirmǎm cǎ toate cele p – 1 numere din Φ a sunt distincte si înconsecintǎ Φ a = Φ. Ca demonstratie, dacǎ a.i = a.j mod p, atunci, prinmultiplicarea ambilor membri cu a – 1 mod p (deoarece p este prim si a ≠ 0 modp se stie cǎ a are un invers) se obtine i = j. Prin urmare, produsele ∏∏x∈Φx six∈ Φx sunt egale, adicǎa(a.1).(a.2)….(a.(p – 1)) = 1.2….(p – 1) mod pAcum, prin multiplicarea egalitǎtii cu 1 –1 mod p, apoi cu 2 –1 mod p s.a.m.d.pânǎ la (p – 1) –1 mod p se obtine teorema.□85
- Page 5 and 6:
C U P R I N SLecţia 1 9Scopul curs
- Page 7:
Probabilitǎti conditionate. Evenim
- Page 11 and 12:
Este foarte important a observa cǎ
- Page 13 and 14:
în al doilea rând se relevǎ posi
- Page 15 and 16:
Propozitia (6) este conjectura lui
- Page 17 and 18:
Demonstratii prin aplicarea de regu
- Page 19 and 20:
Demonstratie: Se va demonstra contr
- Page 21 and 22:
este a presupune opusul, contrarul
- Page 23 and 24:
Lecţia 2Aceastǎ lectie acoperǎ s
- Page 25 and 26:
Asadar, prin principiul inductiei,
- Page 27 and 28:
3. Pentru fiecare set de n + 1 iMac
- Page 29 and 30:
Teorema 2.5: ∀ n∈ N, orice regi
- Page 31 and 32:
Lecţia 3Aceastǎ lectie acoperǎ a
- Page 33 and 34: • Pasul inductiv: se demonstreaz
- Page 35 and 36: P(n) este falsǎ. Prin definitie st
- Page 37 and 38: Teorema 3.6: Pentru orice numǎr na
- Page 39 and 40: Lecţia 4Aceastǎ lectie completeaz
- Page 41 and 42: • Cazul de bazǎ: demonstratia pe
- Page 43 and 44: Teorema 4.3: Pentru orice arbore t,
- Page 45 and 46: 1. Ipoteza inductivǎ aratǎ cǎ pe
- Page 47 and 48: Lecţia 5Divide-et-impera si merges
- Page 49 and 50: a obtine o versiune sortatǎ a list
- Page 51: fiecare nivel? La nivelul rǎdǎcin
- Page 54 and 55: Pentru orice proprietate P, dacǎP(
- Page 56 and 57: suficiente). Aceastǎ argumentatie
- Page 58 and 59: metodele de a reduce dimensiunea ac
- Page 60 and 61: ∧ si ∨ , ceea ce se constatǎ p
- Page 62 and 63: Jocul MinesweeperRegulile jocului M
- Page 64 and 65: • Existǎ exact o minǎ rǎmasǎ.
- Page 66 and 67: Ca exerciţiu, a se încerca demons
- Page 68 and 69: U(k, n) înseamnǎ cǎ cel mult k d
- Page 70 and 71: Acum, suma contine n + 1 termeni, a
- Page 72 and 73: Teorema 8.6: Pentru orice propoziti
- Page 74 and 75: (a) Graf care aratǎ conectivitatea
- Page 77 and 78: Lecţia 9Secvenţa de lecţii care
- Page 80 and 81: • y ≤ x/2. Atunci primul argume
- Page 82 and 83: Acest algoritm utilizeazǎ faptul c
- Page 86 and 87: Teorema 10.1 sugereazǎ un test de
- Page 89 and 90: Lecţia 11Criptografie si RSACripto
- Page 91 and 92: gǎseascǎ x-ul corect - dar asta i
- Page 93 and 94: (mod pq) este una din solutiile pos
- Page 95 and 96: Alice semneazǎ în esentǎ orice m
- Page 97 and 98: Lecţia 12Grafuri - introducereDefi
- Page 99 and 100: Dacǎ e = (u,v), arcul e se numeste
- Page 101 and 102: Grafuri specialeDefinitia 12.10: Un
- Page 103 and 104: Operatii cu grafuriW 4subgraf al lu
- Page 105 and 106: matricea de adiacentǎ este⎡ 0 0
- Page 107 and 108: dedecabcabEle pot fi aranjate sǎ a
- Page 109 and 110: ababd c dcNumǎrul si dimensiunile
- Page 111 and 112: 3 (a,c) 5d 10 (a,c)4 6a 1 8 2 z0
- Page 113 and 114: Un exemplu: Care este circuitul cel
- Page 115 and 116: Definitia 12.30: Un arbore cu rǎd
- Page 117 and 118: • Se opreste operatia când s-au
- Page 119 and 120: La începutul jocului sunt pe masǎ
- Page 121 and 122: Lecţia 13Introducere în probabili
- Page 123 and 124: 7. Mâini la poker. Amestecarea urm
- Page 125 and 126: Acum se pot atribui probabilitǎti
- Page 127 and 128: o bilǎ? Este usor de calculat: se
- Page 129 and 130: Lecţia 14Probabilitǎti conditiona
- Page 131 and 132: Urmeazǎ acum alte câteva exemple
- Page 133 and 134: Cazul de bazǎ este n = 1 si coresp
- Page 135 and 136:
evenimentul care produce la a doua
- Page 137 and 138:
Pr[A i ] Pr[A j ] = (1/6) 2 = 1/36
- Page 139 and 140:
Lecţia 15Douǎ aplicatii killerIat
- Page 141 and 142:
A 1 ∩A 2 ] este probabilitatea ca
- Page 143 and 144:
petrecere. Câti trebuie sǎ invita
- Page 145 and 146:
Aceasta poate fi interpretatǎ astf
- Page 147 and 148:
destul de bunǎ pentru k 0 . În re
- Page 149 and 150:
Lecţia 16Variabile aleatoare si me
- Page 151 and 152:
adicǎ numǎrul asteptat (media) de
- Page 153 and 154:
numǎrul de ori în care ceva anume
- Page 155 and 156:
Lecţia 17Câteva distributii impor
- Page 157 and 158:
Încercǎm sǎ colectionǎm un set
- Page 159 and 160:
care tinde cǎtre λ pe mǎsurǎ ce
- Page 161 and 162:
Lecţia 18Dispersia unei variabile
- Page 163 and 164:
problema pasilor aleatori de mai su
- Page 165 and 166:
Înainte de a demonstra inegalitate
- Page 167 and 168:
Lecţia 19Variabile aleatoare indep
- Page 169 and 170:
mǎsurǎrii unei valori cum este p
- Page 171 and 172:
Aceastǎ teoremǎ nu va fi demonstr
- Page 173 and 174:
Lecţia 20Jocul Minesweeper si prob
- Page 175 and 176:
Primul pas este cel al identificǎr
- Page 177 and 178:
probabilistic dat mai devreme. Sing
- Page 179 and 180:
Este limpede cǎ expresia aceasta e