De la notation polonaise inverse

[Inversé]

Cher TT, j'ai constaté que beaucoup de gens ne connaissaient pas la RPN (Reverse Polish Notation) ou NPI en français.

Mais alors, qu'est-ce-que donc ?

Vous avez surement tous dû utiliser une calculatrice une fois dans votre vie. Et la plupart d'entres elles fonctionnent avec une notation algébrique.

En gros, pour calculer 2 + 2, vous tapez 2 + 2

Ben en RPN, vous tapez 2 2 +

Le principe est super simple, d'ailleurs coder un calculatrice RPN minimaliste prend 30 minutes max. Les avantages, pas forcément évidents au premier coup d'œil, sont pourtant ravageurs :
- plus besoin de parenthèses
- les calculs intermédiaires sont visibles en temps réel
- on appui sur moins de touches

Et oui, car pour que ça marche, la méthode repose sur ce qu'on appelle un pile, ou stack en anglais. (En gros, imaginez une pile d'assiette)

Exemples:
Notation algébrique : (2+4)(6+7)
Notation RPN : 2 4 + 6 7+

Le symbole arithmétique (ici +) s'applique toujours aux deux derniers nombre de la pile. Donc en faisant 2 4 +, on stocke 6 dans la pile, puis en faisant 6 7 + on stocke 13, et en faisant un * additionnel, on multiplie les 2 derniers éléments de la pile, à savoir 6 et 13, soit 78: le compte est bon

Dans la pratique, les calculatrices RPN physique (càd pas des programmes informatiques) n'acceptent que rarement la forme complète d'une expression RPN (2 4 + 6 7+ +), il faudra donc faire
2 ENTER (on empile le 2)
4 + (on ajoute 4 au dernier élément de la pile, pas besoin de faire ENTER)
6 ENTER (on empile 6)
7 + * (on ajoute 7 au dernier élément de la pile, on multiplie les deux derniers éléments de la pile)


Bref, vous l'aurez tous compris, le RPN, ca tue pas les ours, donc c'est bien.

Quand on saisie une expression RPN, il faut lire la notation algébrique de tête, parenthèse par parenthèse, avec les priorités usuelles

Ainsi 2(45+6)((5-4)+(12-4))
se décomposera en
45 6 + // somme de la parenthèse
2
// 2 fois, ici on a empilé 102
5 4- //on empile également cette soustraction
12 4- // et celle là
+ // et on les ajoute
* // pour multiplier le tout avec notre 102 restant dans la pile

Soit 918 :)

Bref, c'est malheureusement plus beaucoup utilisé en France car nos chères têtes blondes apprennent sur des notations algébriques, et qu'on veut pas saturer leurs ptites têtes, mais j'ai connu beaucoup de profs de maths qui m'ont confié préférer les calculatrices RPN aux algébriques.


Voilà, vous savez tout, pour plus de renseignements, google est là.

Vous vous coucherez moins bête ce soir :)

PS: le gros fabricant de calculatrice RPN et depuis toujours, c'est HP. Aujourd'hui ils proposent encore des modèles Full RPN, mais pas donné (minimum 60 euros), des modèles faisant les 2 (40 euros env pour une hp 33s), et malheureusement rien en dessous...

cho7 dit:

Bref, vous l'aurez tous compris, le RPN, ca tue pas les ours, donc c'est bien.



Effectivement c'est une bonne chose ...

pour le reste j'ai rien compris ... :roll:

Bof, c'est pas bien grave tu sais...

C'est un truc qui date de 90 ans, et qui concernent que les rares personnes qui utilisent encore une calculatrice ;)

Papa_ours21 dit:
pour le reste j'ai rien compris ... :roll:
C'est juste une convention d'écriture, qui est légèrement illisible.
Qu'on apprenne ça aux comptables, pourquoi pas, mais à part ça, je n'en voit pas l'intérêt ! (en effet, à quoi ça sert d'inverser la notation, il y a des choses bien plus importantes à apprendre quand on a 10 ans).

Blue dit:
Papa_ours21 dit:
pour le reste j'ai rien compris ... :roll:
C'est juste une convention d'écriture, qui est légèrement illisible.
Qu'on apprenne ça aux comptables, pourquoi pas, mais à part ça, je n'en voit pas l'intérêt ! (en effet, à quoi ça sert d'inverser la notation, il y a des choses bien plus importantes à apprendre quand on a 10 ans).


Beh en fait, c'est pas vraiment une convention d'écriture, puisqu'on continue d'écrire (sur papier) en notation algébrique. Mais quand on veut vérifier un calcul sur sa calculatrice, on lui parle en RPN, ça fait moins de travail car la notation est plus courte, et moins génératrice d'erreurs (calculs intermédiaires visibles, pas de parenthèse).

J'ai connu des profs qui se servaient même de calculatrices RPN comme support pédagogique

:oops: Je croyais que c'était un topic sur la note de Sebudju sur Metropolys :pouicboulet: :kingboulet:

bertrand dit::oops: Je croyais que c'était un topic sur la note de Sebudju sur Metropolys :pouicboulet: :kingboulet:


Et non, c'est juste une annexe au sujet sur la geek attitude :kingpouic:

oui en fait c'est un principe équivalent aux calculatrices que l'on trouve en compta en fait ...

du moins il me semble ...

Papa_ours21 dit:oui en fait c'est un principe équivalent aux calculatrices que l'on trouve en compta en fait ...
du moins il me semble ...


Oui, ce que HP appelle des calculatrices financières

Y'a une HP à la maison, et en effet, quand tu as pris l'habitude, c'est plus rapide.

Ca sert aussi et surtout en programmation, car la RPN évite les parenthèses, et limite le nombre d'opérations à efectuer par la machine. En première année décole, on avait codé un traceur de courbe qui prenait en entrée une expression algébrique et qui la passait en polonaise inverse pour effectuer ensuite les calculs nécessaires au tracé de la courbe.

Bon, sinon, pour les poètes, la polonaise inverse peut également se pratiquer nu avec une polonaise la tête en bas, mais c'est une autre histoire...

cho7 dit: (calculs intermédiaires visibles).


Je ne vois pas en quoi. En calcul algébrique aussi les calculs sont visibles, non ? (parce que des placements de quelque chose en pile, ça me fait plus penser au JCC qu'aux maths et je ne trouve clairement pas ça intuitif)

En calcul algébrique, les intermédiaires ne sont visibles que si tu fais Entrée à chaque fois... en polonaise inverse, il suffit de faire le signe pour que le calcul intermédiaire se fasse.

loic dit:Je ne vois pas en quoi. En calcul algébrique aussi les calculs sont visibles, non ? (parce que des placements de quelque chose en pile, ça me fait plus penser au JCC qu'aux maths et je ne trouve clairement pas ça intuitif)


Disons surtout que c'est utilisé comme méthode pour les processeurs, et que donc tout geek y est forcément confronté à un moment ou un autre.

Avec la notation algébrique, tu fais 3*2. La machine disposant d'une fonction de multiplication entre deux nombres, si elle lit dans cet ordre, elle empile 3, elle arrive sur , et elle n'a pas le 2e argument à multiplier.
Avec la polonaise inverse, la machine empile 3, 2, puis effectue la multiplication entre les deux derniers résultats de la pile.

Et c'est encore plus flagrant avec 3
(1+1). Arrivée au *, la machine ne peut même pas chercher le 2e argument derrière, puisque lui même est le résultat d'une addition. En polonaise inverse (3 1 1 + *), tu empiles 3, puis 1, puis 1, tu effectues ton addition entre les deux derniers éléments de la pile, donc tu dépiles les deux 1, et tu empiles un 2, puis enfin tu effectues ta multiplication entre les deux derniers éléments, le 2, et le 3 empilé depuis le début.

Bon, après, tu dois gérer de priorités entre des opérateurs, mais il faut rentrer plus en détail là.

Pour l'avoir beaucoup utilisé en prépa, c'est juste une question d'habitude. Personnellement, je trouve la logique très... logique... Je dirais que ça se rapproche d'une reflexion où on gèrerait les tâches en parallèle plutôt qu'en séquentiel...

Mais bon, peut-être que du coup, ça inspire plus les esprits matheux...

Juste un mot pour dire que j'apprécie beaucoup que Notation Polonaise Inversée donne Reverse Polish Notation.

Miam. :mrgreen:

Question stupide : mas HP 28S vient de rendre l'âme ... est-ce que toutes les HP utilisent encore cette notation polonaise inverse ou je risque de me retrouver avec une crappy calculatrice 2+2 = 4 ?

Non, pas toutes.
http://h10010.www1.hp.com/wwpc/pscmisc/ ... index.html
Voir les modèles financiers ou à partir de la gamme 33s
Dans tous les cas c'est précisé sur la fiche technique de chacune. Te fais pas avoir donc ;)
Ah, et ils en font aussi qui font les deux modes. Pour les scéptiques sans doute... ;)

C'est très intéressant et très étonnant de voir un post sur la notation polonaise inversée sur TT même si je ne vois pas trop l'utilité à court terme à part bien sûr comme culture scientifique.

Le seul endroit où on peut encore utiliser la notation polonaire inversée ou notation post-fixée, c'est quand on assiste à un cours de compilation en information mais c'est au moins du niveau maîtrise.

Mes étudiants en M1 informatique voient effectivement la notation polonaise inversée pour le traitement des expressions, mais je ne m'attendais pas à trouver un truc pareil dans les forums de TT. :pouicbravo:

Yep...

je ne crois pas que ce n'est QUE polonais. Je crois que le système mathématique russe fonctionne de la même manière.

Il s'agit d'une façon de penser les maths plus façon programmateur !

Blue dit:en effet, à quoi ça sert d'inverser la notation, il y a des choses bien plus importantes à apprendre quand on a 10 ans).


Tout à fait: jouer aux billes, courir dans la cour de récré, se péter les dents sur le bitume, tout ça quoi!!!