« Initiation au Lua avec Scribunto/Gestion de l'environnement » : différence entre les versions
Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-d'avoir +d’avoir) |
m Robot : Remplacement de texte automatisé (-qu'il +qu’il) |
||
Ligne 16 :
==== Exposé du problème ====
Lorsqu'on fait un programme pour notre usage personnel, on sait généralement ce
Prenons un exemple :
Ligne 147 :
== Rapidité d'exécution d'un programme ==
En informatique, un programme, bien
Supposons que nous voulions écrire une fonction qui nous renvoie la valeur du polynôme p(x) = 7x<sup>4</sup>+5x<sup>3</sup>+3x<sup>2</sup>+x+2. Une première façon d'écrire cette fonction pourrait être :
Ligne 165 :
Cette façon d'écrire le programme, bien que fonctionnant parfaitement, n'est pas correcte. Pourquoi ?
En fait, lorsqu'on écrit '''frame.args[1]''', on fait appel à la valeur de x que nous a fourni l'utilisateur dans la commande #invoke et qui est donc quelque chose d'extérieur au programme. Allez chercher cette valeur met en œuvre des routines qui sont, à elles seules, des programmes
<syntaxhighlight lang="lua">
Ligne 180 :
</syntaxhighlight>
On pourrait, à ce niveau, être satisfait, de notre programme et penser que l'on a la meilleure façon possible de l'écrire. En fait, il n'en est rien ! Il est encore possible d'améliorer le temps d'exécution de la fonction '''p.poly'''. Cette façon d'écrire un polynôme, en informatique, n'est pas correcte. Si nous comptons les multiplications et les additions, nous voyons
<math>7x^4+5x^3+3x^2+x+2 = x(7x^3+5x^2+3x+1)+2 = x(x(7x^2+5x+3)+1)+2 = x(x(x(7x+5)+3)+1)+2</math>
Si nous comptons le nombre de multiplication et d'addition dans l'expression x(x(x(7x+5)+3)+1)+2, nous voyons
<syntaxhighlight lang="lua">
|