Documente Academic
Documente Profesional
Documente Cultură
Valoarea
Ea poate fi implementat folosind operaii pe numere mari: nmulire ntre un numr mare i
un numr mic, mprire a dou numere mari.
Iat i cteva recurene:
Recuren este liniar. Aadar putem spune c avem complexitate O(N) pentru calcula
aceast valoare. Practic, ntruct acest numere cresc foarte repede sunt necesare operaii cu
numere mari (n acest caz, nmuliri i mpriri ntre un numr mare i un numr mic).
Dac avem de calculat valoarea combinrilor pentru mai multe perechi N, K putem folosi i
urmtoarea recuren
Aceasta este cea care st la baza triunghiului lui Pascal. Considernd C ca fiind o matrice cu
N linii i K coloane, un element al su se construiete nsumnd dou elemente de pe linia
anterioar, cel de deasupra i cel aflat deasupra i o poziie mai n stnga.
1
1
1
1
2
1
1
3
3
1
1
4
6
4
1
1
5
10
10
5
1
Sunt o mulime de relaii ntre elementele triunghiului lui Pascal. Iat cteva:
0
1
2
3
4
5
putem efectua calculele ntruct valoarea facorialelor crete foarte rapid i ar aprea depiri.
Vom proceda n felul urmtor: Realizm descpmpunerea n factori primi pentru N!. Pentru
aceasta ne folosim de urmtorul rezultat:
Numrul prim p apare n descomputerea n factori primi a lui N factorial de e ori unde
e=
Astfel, vom constui un vector P cu numerele primemai mici dect N. Construim apoi un vector
E astfel: E[i] = puterea la care apare P[i] n descompunerea n factpri primi a lui N. Valorile lui E
le calculm aplicnd rezultatul anterior pentru fiecare valoare din P.
De exemplu, pentru N = 10, obinem cei 2 vectori asociai descompunerii n factori primi ai lui
N! astfel:
P
2
3
5
7
E
8
4
2
1
Putem aplica procedeul anterior pentru K! i (N-K)! dar valorile calculate le scdem din
elementele lui E.
Pentru a obine rezultatul rmne doar s construim valoarea ce are descompunerea n factori
primi memorat n elementele lui E. Sunt necesare doar operaii de nmulire modular care se
realizeaz uor.
Costurile utilizrii acestei metode sunt:
-
).
A * A-1 = 1 (modulo P)
Iat cteva exemple. Pentru P = 7
A
A-1
Explicaie
0
Nu
Nu putem vorbi despre
exist
1/0
1
1
(1 * 1) mod 7 = 1
2
4
(2 * 4) mod 7 = 8 mod 7
=1
3
5
(3 * 5) mod 7 = 15 mod
7=1
4
2
(4 * 2) mod 7 = 8 mod 7
=1
5
3
(5 * 3) mod 7 = 15 mod
7=1
6
6
(6 * 6) mod 7 = 36 mod
7=1
Astfel: (3 / 2) modulo 7 = (3 * 4) modulo 7 = 5
Exist cteva rezultate matematice foarte utile n algritmic atunci cnd este necesar
calcularea invers modularului.
se numete
indicatorul lui Euler i reprezint numrul de valori mai mici dect N i prime ntre ele cu N. De
exemplu,
= 2,
Pentru a calcula
= 4.
se utilizeaz urmtorul rezultat:
, unde
primi a lui N. Se observ c pentru a calcula aceast valoare modulo, putem mai nti s
mprim pe N la factorii primi ai si i abia apoi s efectum operaiile modulo care sunt doar
nmuliri (scderile cu 1 se trateaz ur).
Aadar, revenind la teorema lui Euler obinem:
modulo N, adic
este
invers modularul lui A, modulo N. Pentru a calcula puterea sunt necesare doar operaii de
nmulire modular. Se folosete exponenierea logaritmic.
Costurile utilizrii acestei metode sunt:
-
Calcul
n multe cazuri, N este prim. Pentru a calcula invers modularul lui A n raport cu N ne folosim
de rezultatele anterioare astfel (n primul rnd, dac A este un numr modulo N, se garanteaz
ca A i N sunt prime ntre ele):
(toate numerele mai mici dect N sunt prime ntre ele cu N).
Astfel, invers modularul lui A n raport cu N este