Bonjour,

Si je dois calculer a^{17} (a étant un réel) j'ai plusieurs possibilités :

Dans tous les cas je déclare une variable en plus,b.

1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
b = a * a * a * a * ... (17 fois)
2)
(d est une variable entière)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
b = 1
d = 1
 
faire tant que d < 17
{
   b = (b * a)
   d = d + 1
}
3)
(d est une variable entière)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
b = a
d = 0
 
faire tant que d < 4
{
   a = a * a
   d = d + 1
}
a = a * b
La solution utilisant le moins possible de mutliplication est la solution n° 3.
Dois-je donc en déduire qu'il s'agit de l'algorithme le plus "efficace" ? (je n'ai encore jamais reçu de définition précise de l'efficacité d'un algorithme mais bon ...)

merci