• Aucun résultat trouvé

Th´ eorie des Nombres - TD5 El´ ´ ements de complexit´ e algorithmique

N/A
N/A
Protected

Academic year: 2022

Partager "Th´ eorie des Nombres - TD5 El´ ´ ements de complexit´ e algorithmique"

Copied!
2
0
0

Texte intégral

(1)

Universit´e Pierre & Marie Curie Master de math´ematiques 1

Ann´ee 2011-2012 Module MM020

Th´ eorie des Nombres - TD5 El´ ´ ements de complexit´ e algorithmique

On appelle “op´eration ´el´ementaire” dans un anneauAla somme ou le produit de deux ´el´ements deA.

On appelle “op´eration binaire ´el´ementaire” la somme ou le produit de deux nombres s’´ecrivant avec un seul chiffre en base 2.

On ne s’int´eresse ici qu’`a la complexit´e temporelle (temps d’´ex´ecution de l’algorithme) et non `a la complexit´e spatiale (encombrement m´emoire).

Exercice 1 :

a) Montrer que le nombre d’op´erations binaires ´el´ementaires pour calculer “na¨ıvement” la somme de deux entiers de moins de n chiffres (´ecrits en binaire) est O(n).

b) Montrer que le nombre d’op´erations binaires ´el´ementaires pour calculer “na¨ıvement” le produit de deux entiers de moins de n chiffres (´ecrits en binaire) est O(n2).

c) Montrer que le nombre d’op´erations ´el´ementaires dansZpour calculer “na¨ıvement”n! estO(n).

Quel est le nombre d’op´erations binaires ´el´ementaires correspondant ?

d) Soient a, k, ntrois entiers. Montrer que le nombre d’op´erations ´el´ementaires modulokpour cal- culer “na¨ıvement” an modulo k est O(n) et que le nombre d’op´erations binaires ´el´ementaires est O(nlog(k)2). Proposer un algorithme plus efficace, montrer que le nombre d’op´erations

´

el´ementaires modulo k est alors O(log(n)) et que le nombre d’op´erations binaires ´el´ementaires est O(log(n) log(k)2)

Exercice 2 : (Algorithme de Karatsuba)

L’objectif de cet exercice est l’´etude d’un algorithme pour le produit des nombres entiers qui est plus rapide que la m´ethode na¨ıve. On fixeB ≥2 un entier.

a) Soientx, y∈Ndeux nombres entiers, dont l’´ecriture en baseB compte moins de nchiffres. Soit

n

2 ≤m < n. On ´ecrit x=x1Bm+x0 ety =y1Bm+y0 les divisions euclidiennes de x ety par Bm. Calculer le produitx.y en fonction desxi etyj.

b) Combien de multiplications de nombres de moins de m chiffres sont n´ecessaires au calcul de x.y? En d´eduire un algorithme de multiplication des entiers, et ´evaluer rapidement le nombre d’op´erations ´el´ementaires de cet algorithme. Le comparer `a l’algorithme na¨ıf.

c) Avec les notations pr´ec´edentes, v´erifier que x1y0+x0y1= (x1+x0)(y1+y0)−x1y1−x0y0. d) En d´eduire un nouvel algorithme pour calculerx.y, en effectuant moins de multiplications. ´Etablir

une formule de r´ecurrence pour le nombre d’op´erations ´el´ementaires, puis ´evaluer ce nombre et comparer `a l’algorithme na¨ıf (on pourra supposer pour commencer que n est une puissance de 2).

e) Que donne cet algorithme pour le calcul de an modulo k(voir exercice 1, question d)) ? Exercice 3 : (Transform´ee de Fourier rapide)

Soit k ≥ 0 et n := 2k. Soit A un anneau et ω ∈A tel que ωn = 1 et ωt−1 n’est pas diviseur de 0 pour 1≤t≤n−1. SoientF, G∈A[X], tels que deg(F.G)< n. On cherche un algorithme rapide pour calculerF.G∈A[X].

a) On d´efinit φ = φn : A[X] → An par φ(P) =: (P(1), P(ω), . . . , P(ωn−1)). L’objectif de cette question est de calculer efficacement φ(H), avec deg(H) < n. On ´ecrit H(X) = Pn−1

i=0 aiXi et on pose m := n2. On ´ecrit les divisions euclidiennes de H par Xm −1 et Xm+ 1 : H(X) = (Xm−1)Q0(X) +R0(X) etH(X) = (Xm+ 1)Q1(X) +R1(X).

1

(2)

i) Pour toutl∈Z, calculerH(ωl) en fonction deR0l) et R1l).

ii) Calculer les coefficients deR0 etR1 en fonction des ai. iii) On poseR1(X) :=R1(ωX). Calculer les coefficients deR1.

iv) Montrer que l’on peut calculerφn(H) `a partir deφm(R0) et φm(R1).

v) En d´eduire un algorithme pour calculerφ(H) et ´evaluer le nombre d’op´erations ´el´ementaires dans An´ecessaires.

b) On cherche maintenant `a utiliser la question a) pour calculer le produit F.G.

i) On note φela restriction de φaux polynˆomes de degr´e < n. Calculer la matrice de φedans les bases canoniques, et en d´eduire que φeest inversible et que son inverse se calcule en un nombre d’op´erations ´el´ementaires ´egal `a celui de la question a)v).

ii) En d´eduire un algorithme pour calculerF.G∈A[X], et montrer qu’il n´ecessiteO(nlog(n)) op´erations ´el´ementaires dansA.

c) On cherche maintenant `a multiplier efficacement des entiers de taillen= 2k. On suppose donn´e un nombre premier 2n < p < Kn (K est une constante fix´ee, ind´ependante de n) tel que p ≡ 1 [2n] et un g´en´erateur ζ de (Z/pZ). En d´eduire un algorithme de multiplication des entiers qui s’´ecrivent en binaire avec moins denchiffres. ´Evaluer le nombre d’op´erations binaires n´ecessaires, et comparer `a la m´ethode na¨ıve et `a l’algorithme de l’exercice 2.

d) En d´eduire un algorithme pour calculer an modulo k et ´evaluer sa complexit´e (voir exercice 1, question d) et exercice 2, question e)).

2

Références

Documents relatifs

a) Le coefficient constant du polynˆ ome minimal de α est un produit de conjugu´ es de α. Or il est entier, donc il est nul.. Par l’exercice 8, on sait que p ne divise pas f..

a) Montrer qu’un anneau factoriel est int´ egralement clos.. b) Soit A un anneau int´ egralement clos et K son corps

On utilise alors l’exercice 10 pour en d´ eduire que f n’est pas divisible par 3 (puisque Z [θ − d] = Z[θ]).. Notons K son corps des fractions. On peut supposer que a et b

a) Montrer qu’un anneau factoriel est int´ egralement clos.. b) Soit A un anneau int´ egralement clos et K son corps

On pouvait aussi raisonner plus directement (sans la r´ eciprocit´ e quadratique) en r´ eduisant l’´ equation modulo 4, pour obtenir l’´ equation x 2 + y 2 ≡ 3 [4].. Or n

Comparer cette estimation avec celle donn´ ee par le th´ eor` eme de Minkowski pour de petites et de grandes valeurs de

Universit´ e Pierre &amp; Marie Curie Master de math´ ematiques 1. Ann´ ee 2013-2014

[r]