Adhérer ou faire un don

Les algorithmes de Monsieur Jourdain

Michel Fréchet

Par ma foi, il y a plus de quarante ans que je dis de l’[algorithmique] sans que j’en susse rien, et je vous suis le plus obligé au monde de m’avoir appris cela.

D’après « le Bourgeois gentilhomme »

de MOLIÈRE, scène VI, acte II

ALGORITHME, cette notion figure maintenant dans les programmes de seconde et très certainement dans celui des classes suivantes. Que de « bruit et de fureur » autour de cette soi-disant nouveauté ! De nombreux articles ont paru dans les revues spécialisées, donnant à penser que l’algorithmique est une science bien compliquée, nécessitant des langages spécifiques et l’utilisation de logiciels.

Ce petit texte veut montrer qu’il n’en est rien. Historiquement, le premier algorithme dont nous ayons connaissance figure dans les Éléments d’EUCLIDE. Le mot même d’algorithme a été fabriqué à partir du nom du mathématicien arabe AL KHUWARIZMI (780 - 850).

LE PETIT ROBERT donne comme définition : ALGORITHME : Ensemble des règles opératoires propres à un calcul – Calcul, enchaînement des actions nécessaires à l’accomplissement d’une tâche.

Lorsque j’étais en stage pratique durant mon année de CPR, c’était il y a bien longtemps (plus de trente ans !), mon conseiller pédagogique, Michel CHAVIGNY, m’a fait découvrir que lorsqu’on enseigne des mathématiques, l’algorithmique peut être d’un grand secours : elle permet de décomposer chaque calcul en éléments simples et ainsi d’en expliquer la mécanique.

Écritures algébriques

Certains se souviennent peut-être des calculatrices HEWLETT-PACKARD© à « notation polonaise inverse ». Pour faire (a + b), il fallait entrer successivement a, b, puis l’opération +. En fait, n’est-ce pas ce que nous faisons réellement ? Avant d’effectuer l’opération entre deux nombres, nous devons avoir ces deux nombres : 2 + 3 = 5 signifie que les deux nombres 2 et 3 sont additionnés.

Pour faire (a + b) × (c + d), voici l’ordre des entrées :

$$ a, \ \ \fbox {enter}, \ \ b, \ \ +, \ \ c, \ \ \fbox {enter}, \ \ d, \ \ +, \ \ \times$$

Pour utiliser ces calculatrices, il fallait donc analyser l’écriture algébrique, pour donner l’ordre des opérations à effectuer.

N’est-ce pas ce que l’on apprend au collège lorsqu’on introduit les parenthèses ?

Donnons l’algorithme de (a + b) × (c + d) en numérotant les opérations :

$$\left( a \overset{1}{+} b \right) \overset{3}{\times} \left( c \overset{2}{+} d \right)= a \ \ b \ \ \overset{1}{+} c \ \ d \ \ \overset{2}{+} \ \ \overset{3}{\times} $$

Multiplication de deux nombres relatifs

Voici un algorithme qui détaille la multiplication de deux nombres relatifs du point de vue de leur signe. C’est l’occasion de donner la signification des symboles. L’ovale représente le début et la fin de l’algorithme.

Le rectangle arrondi représente le titre et les variables utilisées.

Le rectangle indique une instruction.

Le losange représente un test à deux sorties.

Ainsi a et b étant deux nombres relatifs :

Addition de deux nombres relatifs

Voici un algorithme représentant l’addition de deux nombres relatifs

Résolution de l’équation du second degré

Texte d’AL KHUWARIZMI

AL KHUWARIZMI nous a laissé de nombreux résultats sur la résolution de certaines équations de degré 2 ou plus. En voici un :

Un carré et vingt et un en nombre sont à dix racines.

1. Divise en deux les racines, ce qui donne 5.

2. Multiplie 5 par lui-même, tu obtiens 25.

3. Retire les 21 ajoutés au carré, il reste 4.

4. Extrais la racine, cela donne 2.

5. Retire-la de la moitié de la racine, c’est à dire 5, il reste 3.

6. C’est la racine du carré que tu cherches et le carré de 9.

7. Si tu le désires, ajoute cela à la moitié de la racine.

8. Ce qui donne 7, racine du carré que tu cherches et dont le carré est 49.

9. Si tu rencontres un problème qui se ramène à ce cas, examine sa justesse à l’aide de la soustraction.

10. Si tu ne le peux pas, tu obtiendras certainement (la solution) à l’aide de l’addition.

11. Parmi les trois cas, c’est le seul où l’on se sert de l’addition et de la soustraction.

12. Sache en outre, que si tu divises en deux la racine, que tu la multiplies par elle-même et que le produit soit plus petit que les dirhams ajoutés au carré, alors le problème est impossible.

13. Mais s’il est égal aux dirhams, la racine du carré est égale à la moitié de la racine sans qu’on ajoute quoi que ce soit.

IXe siècle (Traduction de la traduction de ROSEN, Londres, 1831)

N’avons-nous pas ici un « enchaînement des actions nécessaires à l’accomplissement d’une tâche » ?

En langage moderne :

Soit à résoudre : $x^2 + 21 = 10x$. Voici ligne à ligne le cheminement :

$$10 \div 2 = 5 \overset{2}{\rightarrow} 5\times 5=25 \overset{3}{\rightarrow} 25-21=4 \overset{4}{\rightarrow} \sqrt 4=2 \overset{5678}{\longrightarrow} (10\div 2)-2=3 \ et \ (10\div 2)+2= 7 $$

Le texte nous donne ensuite la démarche pour les autres problèmes qui se ramènent à ce cas (9), c’est-à-dire les problèmes de la forme $x^2+a=bx$ , avec évidemment a et b positifs. En effet, les anciens n’utilisent que les nombres que nous appelons positifs, ce qui explique que la soustraction ne donne pas toujours la solution (10). Le (11) correspond à notre discriminant positif (deux solutions), le (12) à notre discriminant négatif et le (13) au cas où notre discriminant est nul.

Construisons l’algorithme :

résolution moderne

Examinons maintenant l’algorithme de la résolution d’une équation du second degré vu en classe de première.

Exemple de boucle : l’algorithme d’Euclide

Nous avons signalé plus haut que le premier algorithme rencontré dans l’histoire des mathématiques figurait dans les Éléments d’EUCLIDE. C’est l’algorithme donnant le pgcd de deux nombres entiers.

a et b sont deux entiers naturels, avec a > b :

Ici, trois notions sont introduites :

• la notion de boucle : tant qu’un résultat attendu n’apparaît pas, on recommence les opérations. La boucle prend fin sitôt le résultat attendu obtenu.

• la notion d’affectation, signifiée ici par le symbole :=. Ce n’est pas une égalité. Ce symbole signifie que l’on remplace a par b dans a := b par exemple.

• la notion de compteur ou d’incrémentation, i est un entier qui augmente de 1, l’incrément, tant que le résultat attendu n’apparaît pas. De plus, il faut initialiser ce compteur, d’où la case i :=1.

Conclusion

J’espère que ce petit texte vous a convaincu de la simplicité de l’algorithmique. En fait, tout comme Monsieur JOURDAIN, un professeur de mathématiques fait de l’algorithmique sans le savoir. Nul besoin de connaître un langage, nul besoin d’utiliser un logiciel pour démarrer. Il suffit de savoir décomposer en éléments simples tout processus mathématiques, de trouver l’enchaînement des actions nécessaires à l’accomplissement d’une tâche.

Certes, quelques logiciels permettent de faire fonctionner l’algorithme afin d’y déceler des erreurs éventuelles. Comme les TICE en général, l’utilisation de l’informatique ou des calculatrices peut apporter un plus, mais je reste convaincu qu’elle n’est pas nécessaire.

(Article mis en ligne par Armelle BOURGAIN)