Arithm´etique Algorithmique
Arithm´etique Algorithmique
http://www.math.univ-lyon1.fr/~roblot/ens.html
Arithm´etique Algorithmique
Partie II
Arithm´etique rapide
Arithm´etique Algorithmique
1Op´erations de base sur les entiers longs
2Polynˆomes `a coefficients dans Z/2wZ
3Multiplication rapide par la m´ethode de Karatsuba
4Multiplication rapide par FFT
5Division euclidienne rapide par la m´ethode de Newton
Arithm´etique Algorithmique
Op´erations de base sur les entiers longs
Op´erations de base sur les entiers longs
Entiers longs. Soit w1, on encode l’entier Nen utilisant des
nombres de wbits (nombres entiers entre 0 et 2w1). On ´ecrit
N= (1)s
l
X
i=0
ai2wi avec s∈ {0,1}et ai∈ {0, . . . , 2w1}.
On repesente Npar (s·2w1+l+ 1, a0, . . . , al).
Cette repesentation est unique si al6= 0 et de taille Ow(log(N)).
Exemple. 1 est represent´e par (2w1+ 1,1).
Restriction. On doit avoir 2w·2w11+ 1 N2w·2w111.
Taille maximale pour 32 bits : 68 719 476 735 bits 8 GB
Taille maximale pour 64 bits : 5,9·1020 bits 6,8·1010 GB
Arithm´etique Algorithmique
Op´erations de base sur les entiers longs
Op´erations de base sur les entiers longs
Addition de deux entiers de mˆeme signe (et de mˆeme longueur).
N= (1)s
l
X
i=0
ai2wi et M= (1)s
l
X
i=0
bi2wi
Algorithme.
(1) Faire t00
(2) Pour i= 0 `a l, faire
ciai+bi+ti,ti+1 0
Si ci2w, alors faire cici2w,ti+1 1
(3) Si tl+1 = 1 alors poser cl+1 1 et retourner (s+l+ 2, c0, . . . , cl+1),
sinon retourner (s+l+ 1, c0, . . . , cl).
Complexit´e. O(l) = O(log N) op´erations sur des mots de wbits.
De ce point de vue, l’algorithme est optimal.
1 / 34 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !