Ordre des opérations

Un article de Wikipédia, l'encyclopédie libre.
Ordre des opérations

En mathématiques, la priorité des opérations ou ordre des opérations précise l'ordre dans lequel les calculs doivent être effectués dans une expression complexe.

Les règles de priorité sont :

  1. les calculs entre parenthèses ou crochets sont prioritaires sur les calculs situés en dehors. La barre horizontale de fraction ou de racine joue le rôle d'une parenthèse ;
  2. l'exponentiation est prioritaire sur la multiplication, la division, l'addition et la soustraction ;
  3. la multiplication et la division sont prioritaires sur l'addition et la soustraction ;
  4. dans les parenthèses, on effectue les multiplications et divisions de gauche à droite. Même chose ensuite pour les additions et soustractions[1].

Exemples[modifier | modifier le code]

Dans une successions d'additions et de soustractions, on peut effectuer les calculs de gauche à droite

2 − 0,5 + 1,5 = (2 - 0,5) + 1,5 = 1,5 + 1,5 = 3

mais d'autres regroupements sont possibles

2 − 0,5 + 1,5 = 2 + (−0,5 + 1,5) = 2 + 1 = 3
2 − 0,5 + 1,5 = 2 + 1,5 − 0,5 = 3,5 − 0,5 = 3

(mais on n'effectuera pas : 2 − (0,5 + 1,5) = 2 − 2 = 0)

Dans un calcul tel que 7 + 2 × 6, priorité est donnée à la multiplication :

7 + 2 × 6 = 7 + 12 = 19

(et on n'effectuera pas ainsi : (7 + 2) × 6 = 9 × 6 = 54, comme on serait tenté de le faire par lecture de gauche à droite).

L'usage de parenthèses permet donc de créer une exception aux priorités opératoires (multiplications et divisions prioritaires sur les additions et soustractions).

Ainsi, un calcul comme (7 + 2) × 6 s'effectue ainsi :

(7 + 2) × 6 = 9 × 6 = 54.

Ces quatre règles se complètent les unes les autres : ainsi le calcul 50 × 2 − [ 3 + 4 × (11 − 6 + 3) − 1 ] s'effectue ainsi :

A = 50 × 2 − [ 3 + 4 × 8 − 1 ] (priorité aux calculs entre parenthèses 11 − 6 + 3)
A = 100 − [ 3 + 4 × 8 − 1 ] (priorité à la multiplication 50 × 2 sur la soustraction précédant les crochets)
A = 100 − [ 3 + 32 − 1 ] (priorité à la multiplication au 4 × 8 sein des crochets)
A = 100 − 34 (priorité à la somme 3 + 32 − 1 entre crochets)
A = 66 (différence finale)

Une calculatrice scientifique prend en compte cet ordre des opérations mais effectuera les additions et soustractions mêlées ainsi que les produits et divisions mêlées dans l'ordre d'apparition des opérandes.

Cas particuliers[modifier | modifier le code]

Exponentiation et négation[modifier | modifier le code]

Diverses conventions régissent l'opérateur de soustraction unaire. En mathématiques écrites ou imprimées, l'expression −32 est interprétée comme 0 − (32) = − 9.

Certaines applications et langages de programmation, notamment Microsoft Excel (mais aussi d'autres tableurs comme LibreOffice) et le langage de programmation bc, les opérateurs unaires ont une priorité plus grande que les opérateurs binaires. Ainsi le moins unaire est prioritaire sur l'exponentiation et donc, dans ces langages −32 est interprété comme (−3)2 = 9[2]. Cela ne s'applique pas à l'opérateur binaire −. Par exemple, alors que les formules =-2^2 et =0+-2^2 renvoient 4 sous Microsoft Excel, la formule =0-2^2 renvoie −4. Dans les cas où il est possible que la notation soit mal interprétée, une opération binaire peut être renforcée en spécifiant explicitement le 0 précédent (comme dans 0-2^2 plutôt que juste -2^2), ou en ajoutant des parenthèses pour clarifier le sens attendu.

Mélange d'additions et soustractions sans parenthèse[modifier | modifier le code]

Il est fréquent de voir, dans les manuels, le conseil d'effectuer les calculs dans l'ordre de la gauche vers la droite[3],[4]. Mais ce conseil ne peut pas avoir valeur de règle nécessaire puisque d'autres ordres de calculs sont possibles[5]. En particulier, le calcul d'une succession d'additions peut s'effectuer dans l'ordre de son choix en associant les termes au gré de la fantaisie de chacun et souvent dans l'objectif de simplifier les calculs.

Ainsi, la somme 112 + 95 + 8 + 5 a tout intérêt à s'effectuer par regroupements des termes 112 + 8 = 120 et 95 + 5 = 100 plutôt que de la gauche vers la droite.

Il en est de même pour une succession d'additions et de soustractions dès lors que la soustraction est transformée en addition de l'opposé.

Ainsi, l'expression 112 − 95 + 8 − 5 + 100 peut être lue comme 112 + opp(95) + 8 + opp(5) +100 et s'effectuer par regroupement des termes opp(95) + opp(5) = opp(100), puis opp(100) + 100 = 0 puis 112 + 8 =120.

L'intérêt de la règle de gauche à droite est sa simplicité et le fait qu'elle évite les associations fautives comme le serait, dans l'exemple précédent, l'association 95 + 8.

Mélange de divisions et de multiplications[modifier | modifier le code]

Un mélange de multiplications et divisions se calcule selon la convention "de la gauche vers la droite", sens de lecture utilisé par la majorité des pays du monde. Ainsi 80÷4×2 se lira (80÷4) × 2. Cela permet à la multiplication de conserver sa commutativité et de pouvoir réécrire ce calcul 2×80÷4 sans changer son résultat. De même remplacer la division par la multiplication inverse et réécrire ce calcul 80 × 0.25 × 2 là non plus ne changera pas son résultat.

Une ambiguïté semble survenir dans l'utilisation du symbole slash symbol / au sein d'expressions comme 3/2x[6] qu'on lira couramment 3/(2x). Il semble alors que la multiplication notée par la juxtaposition, aussi nommée multiplication implicite est interprétée comme ayant une priorité supérieure à la division, et donc 3/2x, pouvant être vu comme 3 ÷ 2x, devient égal alors à 3 ÷ (2x), et non à (3 ÷ 2)x qui serait le cas si on appliquait la convention "de la gauche vers la droite".

Il s'agit en fait d'une erreur d'interprétation. Ces nombres comme 2x ou encore 3√5. sont des nombres qui s'expriment sous forme de multiplication mais où la multiplication, qui fait partie intégrante du nombre, ne fait alors pas partie du calcul.

Ainsi cette opération 3/2x est en fait une simple division unique du nombre "3" par le nombre "2x" et en aucun cas cette façon de voir, largement utilisée dans la communauté scientifique, ne peut servir de référence ou de modèle dans le calcul de 3/2(1+2) où ici 2(1+2), qui devrait s'écrire en réalité 2×(1+2), est bel et bien un calcul à effectuer et ne peut pas s'assimiler au nombre "2x".

Bien entendu celui qui veut écrire (3/2)x se tournera naturellement vers l'écriture 3x/2.

Exponentiations successives[modifier | modifier le code]

Si l'exponentiation est indiquée par un empilement de symboles en exposant, la règle usuelle est d'aller du haut vers le bas[7] :

abc = a(bc)

ce qui typiquement n'est pas égal à (ab)c.

Toutefois, quand l'opérateur est noté par un caret (^) ou une flèche (↑), il n'y a pas de convention universelle[8]. Par exemple, Microsoft Excel le langage de programmation MATLAB évaluent a^b^c comme (ab)c, mais Google (moteur de recherche) et WolframAlpha comme a(bc). Ainsi 4^3^2 est évalué à 4096 dans le premier cas et à 262144 dans le second.

Divisions successives[modifier | modifier le code]

Une ambiguïté similaire se produit dans le cas de divisions successives. Par exemple, l'expression 10 ÷ 5 ÷ 2 peut être interprétée comme

10 ÷ ( 5 ÷ 2 ) = 4

ou comme

( 10 ÷ 5 ) ÷ 2 = 1

Dans ce cas, la convention "opérations de gauche à droite" qui est la référence arithmétique résout l’ambiguïté en faveur de cette dernière expression. De même l'habitude mathématique de combiner les facteurs et de représenter la division comme une multiplication par l'inverse supprime aussi cette ambiguïté.

Arbre arithmétique[modifier | modifier le code]

Arbre arithmétique de l'expression 50 × 2 − [ 3 + 4 × (11 − 6 + 3) − 1 ] et étapes de calcul de l'expression

Un arbre d'expression arithmétique est un arbre dont les feuilles sont des nombres et dont les nœuds contiennent une opération arithmétique (somme, différence, produit, quotient, exponentiation,...)[9]. Toute expression arithmétique bien formée peut se résumer en un arbre arithmétique. Au sommet de l'arbre se trouve le dernier calcul à effectuer, les noeuds de niveau inférieur sont les avant-derniers calculs à effectuer, ainsi de suite jusqu'à arriver aux feuilles. Il s'agit donc de lire les priorités à l'envers.

Ainsi, dans l'exemple précédent : 50 × 2 − [ 3 + 4 × (11 − 6 + 3) − 1 ], le dernier calcul à effectuer est une soustraction entre 50 × 2 et 3 + 4 × (11 − 6 + 3) − 1. L'arbre de l'expression est alors la concaténation de l'arbre de 50 × 2 et de l'arbre de 3 + 4 × (11 − 6 + 3) − 1. L'arbre se construit de propre en proche. Le calcul s'effectue ensuite en partant des feuilles et en remontant jusqu'à la racine.

La représentation en arbre peut favoriser une vision structurelle d'une expression algébrique[10] et mettre en évidence les priorités opératoires.

De l'écriture avec parenthèses à l'écriture sans parenthèse[modifier | modifier le code]

En mathématiques, les opérations de base, addition, soustraction, multiplication, division, exponentiation sont binaires, c'est-à-dire, qu'à deux éléments, on associe un troisième appelé résultat de l'opération. Dans une expression complexe, il est normalement nécessaire de retrouver ces associations par paires. Les parenthèses permettent de déterminer avec précision les paires concernées lorsque la priorité des opérations n'est pas appliquée. Ainsi une écriture sous la forme ne permet pas d'identifier les paires concernées et peut être l'écriture incomplète de

avec et

Les parenthèses définissent un ordre de calcul consistant à calculer d'abord les parenthèses les plus intérieures.

Mais l'expression incomplète pourrait tout autant être celle de :

(si on prenait comme convention l'ordre de lecture)
ou autres…

Entre la présence complète de toutes les parenthèses et l'écriture ambiguë sans aucune parenthèse, il a fallu définir certaines règles.

Associativité[modifier | modifier le code]

Les premières sont héritées des propriétés d'associativité des lois utilisées. C'est le cas de l'addition et de la multiplication.

Ainsi les calculs de

et

donnant le même résultat, on autorise la suppression des parenthèses, le calcul

pouvant s'effectuer dans l'ordre de son choix. Il en est de même de l'écriture a + b + c qui s'effectue dans l'ordre de son choix.

Il n'en est pas de même pour des mélanges d'additions et de soustractions. Ainsi les calculs de

(a − b) + c

et de

a − (b + c)

ne donnent pas le même résultat. La convention, là, est de voir dans une soustraction l'addition de l'opposé. Une écriture comme a − b + c est alors une abréviation autorisée de a + (−b) + c.

Une telle convention n'est pas aussi explicite pour des mélanges de divisions et de multiplications. Les calculs de

(a:b).c

et de

a:(b.c)

ne donnent pas le même résultat. L'expression a:b.c est parfois interprétée comme (a:b).c mais cette interprétation est loin d'être universelle. Ainsi certaines calculatrices[11] continuent à effectuer le calcul de

1:2a comme 1:(2a)

et celui de

1:2×a comme (1:2)×a

L'écriture sous forme fractionnaire, présentant un délimitant fractionnaire, évite toute ambiguïté de ce genre et limite l'usage de la parenthèse :

(a:b).c s'écrit alors ,
et l'écriture a:(bc),

Le cas de la puissance, à cause de sa disposition spatiale, pose un problème légèrement différent : le calcul de (a^b)^c n'a pas même valeur que a^(b^c). La présence d'un délimitant spatial permet en partie de lever l'ambiguïté : l'expression

est une traduction sans parenthèses de la seconde expression. La première expression, elle, nécessite la présence des parenthèses ou bien un début de calcul

Niveau opératoire[modifier | modifier le code]

Il existe ensuite des niveaux opératoires qui précisent, en cas d'absence de parenthèses, les calculs à effectuer en premier : il s'agit de calculer d'abord les puissances, ensuite les produits et quotients et enfin les additions et les soustractions. Les parenthèses pouvant être remplacées par des indications de positions comme pour les fractions ou les exposants, ou des barres comme pour les racines.

Ainsi par convention l'écriture de départ,

a + b.c − d + e

ne présente plus aucune ambiguïté avec ces nouvelles conventions et ne peut valoir que le résultat de la somme suivante :

a + (b.c) + (−d) + e

et une expression comme

ne peut se lire que sous la somme suivante

Lorsque le calcul à effectuer ne respecte pas cet ordre d'exécution, les parenthèses sont alors là pour indiquer les priorités non conventionnelles. Ainsi, l'expression

a+b.c+d

étant interprétée comme

a + (bc) + d,

le produit de deux sommes doit comporter les parenthèses

(a + b).(c + d)

Mise en place historique des priorités[modifier | modifier le code]

René Descartes, précurseur dans la notation symbolique.

Les premières écritures des formules mathématiques furent rhétoriques, c'est-à-dire sous forme de phrase. Le modèle de référence est le texte mathématique euclidien[12], celui mis en place dans les éléments d'Euclide en 300 av. J.-C. Dans celui-ci, l'ordre des opérations est explicite. Il n'y a pas confusion possible entre les deux phrases suivantes :

  • Ajoute à la première quantité, le produit de la seconde par la troisième.
  • Ajoute les deux premières quantités puis multiplie le résultat par la troisième.

ni aucune ambiguïté dans la phrase

  • Prends la racine carrée de la somme des deux termes.

Mais, lors de la mise en place du calcul symbolique à la fin du XVIe siècle et tout au long du XVIIe siècle, se pose alors le problème de l'écriture d'expressions mathématiques complexes. Les deux textes précédents pouvant se traduire l'une et l'autre par la même notation symbolique

a + bc

et le troisième texte s'écrivant comme

a+b

pouvait aussi se traduire par « prends la racine carrée de a et ajoute-lui b ».

La recherche s'est donc portée sur l'étude des délimitants. Ceux-ci avaient pour but de préciser quelles étaient les opérations principales et secondaires et comment devaient se regrouper les termes. Ces délimitants furent de plusieurs types. Les principaux sont

  • le vinculum : une barre horizontale placée sous ou au-dessus de l'expression à regrouper. Cette syntaxe permet de distinguer les deux sens
et
de l'expression précédente. On trouve trace de ce vinculum dans la barre de la racine carrée puisque le troisième texte se traduit encore de nos jours par
  • le point
  • la parenthèse

Ainsi une expression qui se lit de nos jours

(a + b).c,

s'écrivait

a + b..c

et l'on trouve chez Descartes[13] des expressions comme

√.3+√2.

signifiant actuellement

Ces délimitants ou signes d'agrégation furent particulièrement étudiés par Leibniz qui les appelle des signes de comprehensio.

D'autres moyens d'agréger plusieurs contenus consistaient à les positionner sur des lignes différentes. On retrouve notamment cette habitude dans l'écriture spatiale des fractions où le positionnement par rapport à la ligne d'écriture sert de délimiteur confirmé par la barre de fraction, sorte de vinculum. Ainsi l'expression que Descartes écrit sous la forme

sera traduite par Leibniz[14], favorable à l'écriture linéaire,

((a + (b : c)):(e + (f : g))

On peut à ce sujet signaler l'importance de la position spatiale pour la lecture des priorités dans une expression comme

qui doit être lue

alors que

doit être lue

Descartes utilise grandement la notation spatiale pour regrouper par exemple les termes à l'intérieur d'un produit, ainsi on peut lire chez lui des expressions[15] comme

,

Le cas particulier de l'exponentiation doit être évoqué pour son rôle positionnel non symétrique : dans une écriture comme

3ab+2,

la position de b+2 sur la ligne de l'exponentiation vaut comme signe d'agrégation et l'expression ne peut pas être confondue avec

3ab+2.

En revanche, le fait que 3 et a soient tous les deux placés sur la ligne de calcul ne permet pas pour autant de les agréger et, de manière implicite, dès les premières exponentiations, chez Descartes, seul le premier terme à gauche de la puissance est concerné[16].

En toute théorie, toute expression mathématique complexe devrait contenir autant de délimitants que nécessaire pour lever toute ambiguïté. Ainsi une écriture comme

3a2b+5

devrait s'écrire

écriture qui, certes, ne présente aucune autre interprétation, mais ne brille pas par la clarté de sa lecture.

La suppression de certains délimitants, comme dans l'exemple de l'exponentiation évoqué précédemment, apparaît naturellement chez les premiers auteurs comme Descartes ou Leibniz. Ainsi dans la résolution de l'équation du second degré que Descartes écrit[17]

et dont il propose comme solution

,

celui-ci omet délibérément les délimitants

et

sans que soient jamais indiquées les règles de priorité qui régissent ce type de calcul.

Il faut probablement voir dans cette absence de délimitant une interprétation quant à la nature des objets manipulés. Cette interprétation en termes d'unité se retrouve déjà dans des textes rhétoriques. Quand les traducteurs d'Euclide[18] écrivent, concernant le partage entre moyenne et extrême raison

« Si une ligne est coupée entre raison extrême et moyenne, le carré du plus grand segment ajouté à la moitié du tout est égal à cinq fois le carré de la moitié »

— Les éléments, Livre XIII, proposition 1.

il n'y a pour eux aucune ambiguïté. Le mathématicien moderne, cherchant à écrire sous forme algébrique une telle expression et appelant x le plus grand segment et L la ligne se trouverait devant deux interprétations pour ce texte :

  • le carré du plus grand segment (x2) ajouté à la moitié du tout (L/2) est égal à cinq fois le carré de la moitié (5(L/2)2)
  • Le carré du « plus grand segment ajouté à la moitié du tout » ((x+L/2)2) est égal à cinq fois le carré de la moitié (5(L/2)2)

Pour Euclide et ses lecteurs, en revanche, il n'existe aucune ambiguïté, la première interprétation n'ayant aucun sens à leurs yeux. Le carré du plus grand segment étant une aire, et la moitié du tout étant une longueur, il n'y a aucun sens à ajouter une aire et une longueur et seule la seconde interprétation est correcte[19].

De même, quand Descartes écrit

,

le membre de gauche reste pour lui une aire et tout autre agrégation du second membre que celle couramment admise, ne pourrait conduire à une aire. Enfin le 1/2 devant a est davantage vu comme une fraction qu'une multiplication, on prend la moitié de a. De même, il n'y a pas moyen d'agréger différemment

sans que l'expression perde sa qualité d'aire.

Descartes donc, et ses successeurs, ont établi de manière implicite les règles de priorité opératoire qui sont utilisées actuellement. L'usage des parenthèses n'intervenant que pour déroger à ces priorités ou lever une ambiguïté sur le contenu.

La convention qui aurait privilégié l'ordre d'écriture, c'est-à-dire qui aurait consisté à effectuer les opérations dans leur ordre d'apparition, de la gauche vers la droite, sauf contrordre signalé par des délimiteurs, aurait chargé inutilement des expressions comme . Elle aurait, de plus, installé un ordre prioritaire (ce qui est à gauche est plus aggloméré que ce qui arrive à droite) qui serait entré en conflit avec les propriétés de commutativité (ce qui est à gauche peut passer à droite)

D'autres priorités ont tenté de voir le jour comme la notation polonaise inversée au début de XXe siècle mais elles n'ont pas résisté à trois siècles de conventions et de publications.

En informatique[modifier | modifier le code]

En informatique, le concept de priorité des opérations porte en anglais le nom operator precedence.

Il porte aussi sur les opérateurs logiques : ainsi le « et » (logique) est prioritaire sur le « ou » (logique).

Certains langages informatiques comme le langage C ne possèdent que des opérateurs dont la fonction et la priorité sont prédéfinies. D'autres langages comme Haskell et Perl 6 permettent au programmeur de définir de nouveaux opérateurs dont ils doivent aussi spécifier la priorité.

Bibliographie[modifier | modifier le code]

  • Michel Serfati, « Ambiguïté de l'ordre et signes délimitants », dans La Révolution symbolique (ISBN 2-84743-006-7).
  • [GPC 2014] « Quelques réflexions sur les priorités opératoires », dans Annie Bourdil, Miquela Catlla, Florence Larue, Françoise Savioz, Bertrand Toquec, Bernard Vidal et Yves Chassin (responsable), Groupe premier cycle - Éléments 2, IREM de Toulouse, (lire en ligne), p. 5-27.

Notes et références[modifier | modifier le code]

  1. Cette règle n'est parfois pas nécessaire (voir GPC 2014, p. 10)
  2. « Formula Returns Unexpected Positive Value », Support.microsoft.com, (consulté le )
  3. (en) « Bibliothèque virtuelle. La priorité des opérations », sur www.alloprof.qc.ca (consulté le )
  4. GPC 2014, p. 9.
  5. GPC 2014, p. 10.
  6. John A. Ball, Algorithms for RPN calculators, Cambridge, Massachusetts, USA, Wiley-Interscience, John Wiley & Sons, Inc., , 1re éd., 330 p. (ISBN 0-471-03070-8), p. 31
  7. Frank W. J. Olver (dir.), Daniel W. Lozier (dir.), Ronald F. Boisvert (dir.) et Charles W. Clark (dir.), NIST Handbook of Mathematical Functions, National Institute of Standards and Technology (NIST), U.S. Department of Commerce, Cambridge University Press, , 951 p. (ISBN 978-0-521-19225-5, Math Reviews 2723248, lire en ligne).
  8. Exponentiation Associativity and Standard Math Notation Codeplea. 23 Aug 2016. Retrieved 20 September 2016.
  9. « Arbres et expressions arithmétiques », sur Laboratoire de recherche en informatique.fr,
  10. Hamid Chaachoua, Jana Trgalova, Christophe Vuidez et Jean-François Nicaud, « Une nouvelle représentation en arbre des expressions algébriques dans le micromonde d'algèbre Aplusix. », Petit x, no 84,‎ , p. 27-45 (lire en ligne), p.29
  11. La TI-80 par exemple.
  12. Michel Serfati, La révolution symbolique : La constitution de l'écriture mathématique [détail des éditions], p. 24.
  13. Dans Excerpta mathematica, ouvrage non daté mais antérieur à sa Géométrie (cf Michel Serfati, La révolution symbolique : La constitution de l'écriture mathématique [détail des éditions], p. 89).
  14. Lettre à Jean Bernoulli, 1696, in Mathematische Schriften, vol 2.
  15. Descartes, Géométrie p. 348.
  16. Michel Serfati, La révolution symbolique : La constitution de l'écriture mathématique [détail des éditions], p. 104.
  17. Géométrie, Descartes, p 302.
  18. François Peyrard, Les œuvres d'Euclide, ou Thomas Heath, The thirteen Books of the Elements . Le traducteur D. Henrion, présente, quant à lui, une traduction moins ambiguë.
  19. La seconde interprétation donne pour la valeur x : x = (√5 − 1)/2.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Lien externe[modifier | modifier le code]