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)
2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 b = a * a * a * a * ... (17 fois)
(d est une variable entière)
3)
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 }
(d est une variable entière)
La solution utilisant le moins possible de mutliplication est la solution n° 3.
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
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
Partager