MATHZANI

RPN rules

Vous êtes ici : Accueil du site > Xtra math > RPN rules
  • Par : vp
  • Publié : 17 septembre 2009

La notation polonaise inversée

RPN stands for Reverse Polish Notation. Notation polonaise inverse (NPI) en français. C’est une manière de noter les calculs qui est employé par les calculatrices hp et certains langages de programation. Lorsqu’un élève a oublié sa calculette en DS, je me fais un malin plaisir en lui prêtant ma hp48SX.
- Le principe de base est qu’au lieu de taper "2+3=" on tape "2 3 +"
Ca parait tordu au premier abord mais cela a des avantages. En particulier aucune parenthèse n’est nécessaire. Il y a donc moins de touches à taper, on voit les résultats intermédiares du calcul, et c’est plus simple pour la calculette (moins de place mémoire nécessaire. Cet argument n’a plus beaucoup d’importance maintenant...). Voici un exemple plus long :
- Pour effectuer :

\left(\frac{3+2}{4+1}+6\right)\times 5
On tape usuellement :
((3+2)/(4+1)+6)*5

En NPI cela donne :
3 2 + 4 1 + / 6 + 5 *
Vous pouvez compter, cela fait 11 frappes de touches contre 17. NPI gagne. Les nombres tapés s’empilent les uns au dessus (ou en dessous) des autres sur une pile (stack in english) et quand on tape un opérateur (+, /, *, -) les deux nombres au dessus de la pile sont remplacés par le résultat. Avec l’exemple précédent les affichages successifs sont :
Touches frappées : 3 2 +4 1 + / 6 +5 *
Pile : niv1 3 2 5 4 1 5 1 6 7 5 12
Pile : niv2 3 5 4 5 1 7
Pile : niv3 5

En informatique on parle de liste LIFO (Last In, First Out) par opposition aux listes FIFO.
J’y vois un avantage pédagogique pour les notions de priorités des opérations et la notion de composition des fonctions. En effet lorsqu’on note :

\sqrt{x^2+3}

On lit "racine de x au carré plus trois". Déja il y a ambiguité sur la position du "+3", est-il sous la racine ? De plus cette formulation n’est pas logique puisqu’on commence par dire "racine" alors que c’est ce qu’on calcule en dernier. Il est plus clair de donner un "algorithme de calcul" comme :
Prend x, élève le au carré, ajoute 3 et prend la racine.
C’est comme cela qu’on le tape en NPI :

x\quad ^2\quad 3\  +\ \sqrt{.}
Exactement comme lorsqu’on décompose cette fonction de x en fonctions élémentaires :
x\mapsto x^2 \mapsto x^2+3\mapsto \sqrt{x^2+3}

Vous pouvez vous entrainer sur une calculette hp ou sur un des
nombreux émulateurs (tapez "hp emulator" sous Google), ou encore sur cet
applet javascript.

Pour les nostalgiques de la hp15C, signez la pétition :

Bring Back The HP 15C