Retour à la page précédente

Quel est le nombre minimal de multiplications pour calculer xn dans chaque cas suivant :

 

n

15

16

23

33

53

min(n)

5

4

6

6

8

 

Explications (Inspiré de Donald Knuth The Art of Computer Programming)

Il y a deux méthodes classiques (on suppose quon peut garder en mémoire les résultats intermédiaires obtenus et donc les réutiliser sans les recalculer).

La méthode binaire :

Ecrivez n en base 2, puis remplacez dans lécriture trouvée chaque 1 par SX, chaque 0 par S. Supprimez le SX qui apparaît à gauche.

Interprétez lécriture obtenue comme le moyen de calculer x : S désigne la mise au carré et X la multiplication par x.

Par exemple 15 = 1111 en binaire donne SXSXSXSX ce qui sinterprète (à condition de commencer par la droite) comme :

x 15 = X(S(X(S(X(S(x)))))) soit x * (x * (x * x 2 ) 2 ) 2

Donc pour 15, la méthode binaire nécessite 6 multiplications b(15) = 6.

Remarque : avec cette méthode, on na besoin de mettre en mémoire que x et le résultat courant.

La méthode de factorisation

Elle consiste à utiliser une factorisation de n : n = p q où p est le plus petit facteur premier de n et q > 1. On calcule dabord x p quon élève ensuite à la puissance q.

Par exemple, pour x 15 on calcule x 3 en deux multiplications, puis on élève x 3 à la puissance 5 en trois multiplications, y 5 = y * (y 2 ) 2

Donc, par la méthode de factorisation, on calcule x 15 en 5 multiplications : f(15) = 5.

Les exemples proposés