逆ポーランド記法のまとめ
数式の3つの記法
学校で学ぶ数式や普通の電卓で使う数式は中置記法で表現されます。対して、逆ポーランドの電卓で使われるのは後置記法です。後置記法は逆ポーランド記法とも言われますが、英語での表現はReverse Polish Notitionになります。
算術記号を数値のどこに記述するかで、記法が異なります。中置記法、逆ポーランド記法(後置記法)、ポーランド記法(前置記法)の3つの記法をまとめると以下の図になります。
逆ポーランド記法はポーランド記法をコンピュータの処理に適したように改変したものです。中置記法 後置記法 前置記法
(逆ポーランド記法) (ポーランド記法)
============ ================== ================
1 + 2 1 2 + + 1 2
: : :
: : :
記号を 記号を 記号を
真ん中 最後に 最初に
に置く 置く 置く
(infix) (postfix) (prefix)
結局、3つの記法の違いは、算術記号の「+-×÷」を数値のどこに置くかによって決まることになります。
逆ポーランド記法の記述ルール
中置記法には算術記号に優先順位がありますが、後置記法(逆ポーランド記法)にはありません。従って、中置記法から逆ポーランド記法に変換するには「+-×÷」(パソコンでは「+-*/」)の優先順位に注意する必要があります。
変換するためのアルゴリズム(プログラム)もあるのですが、本ウェブサイトでは逆ポーランド記法で最初から数式を記述するので気にする必要はありません。頭の中から逆ポーランド記法で考えれば、数式の並び順はすぐにマスターできます。
実際、逆ポーランド記法は日本語の並びで考えると簡単に作れます。例を以下に示しましょう。
1 + 2 ⇒ 1 2 + 1に2を足す
1 + 2 - 3 ⇒ 1 2 + 3 - 1に2を足してから3を引く
1 * 2 + 3 ⇒ 1 2 * 3 + 1に2を掛けてから3を足す
1 + 2 * 3 ⇒ 1 2 3 * + 1に2と3を掛けたものを足す
【関連記事】
基礎コーナー/逆ポーランドってなに
基礎コーナー/四則演算で計算しよう
講座コーナー/rpn入門(初級編) 四則演算
逆ポーランド記法のメリット(日本語の並びと同じ)
以下の数式を見てください。これを電卓で計算するとなると結構、厄介です。
-----------------
(5 + 6)
括弧が使える関数電卓の場合は、ほとんど数式と同じ順番で計算できますが、M+とM-、MRCがある普通の電卓の場合はちょっと面倒です。場合によっては、計算の順序を変えながらメモリーキーを駆使することになるでしょう(一旦、紙に計算結果をメモすることも必要かも)。
対して逆ポーランド電卓の場合は、前述したように日本語で数式の順に読み上げていくようにすれば数式が出来上がります。
『1に2を足したものに3から4を引いたものを掛けて、5に6を足したもので割る』
複雑な数式でも左から右へ上から下へ計算するつもりで読んでいけば、自然に逆ポーランド記法になっています。慣れてしまえば、逆ポーランド電卓のほうが絶対に計算が楽になります。
以下が上記の数式に対応する逆ポーランド記法の計算式です。
逆ポーランド記法のメリット(キータッチが少ない)
M+やM-の使い方は一種の職人芸なので、括弧の使える関数電卓との比較をしてみましょう。以下に関数電卓と逆ポーランド電卓の計算式の比較を示します。
括弧の使える関数電卓 |
( 1 + 2 ) * ( 3 - 4 ) / ( 5 + 6 ) =
|
---|---|
逆ポーランド電卓 |
1 2 + 3 4 - * 5 6 + / ENTER
|
実際に、計算に要するキータッチ数を数えてみましょう。計算結果が同じなら、キータッチの少ないほうが快適ですよね。
- 括弧の使える関数電卓のキータッチ数
1 2 3 4 5 6 7 8 9 10 12 14 16 18
11 13 15 17
- 逆ポーランド電卓のキータッチ数
1 2 3 4 5 6 7 8 9 10 12
11
関数電卓が18回で逆ポーランド電卓が12回です。圧倒的に逆ポーランド電卓のほうがキータッチする数が少ないことが分かります(30%強)。これは数式が複雑であればあるほど、逆ポーランド記法のほうが有利であることを示しています。
有名な逆ポーランド記法式
ここに逆ポーランド記法で有名な式があります。以下の式なのですが、逆ポーランド電卓の製造メーカーの取扱説明書に記載されています。
--------------------
(8.33 - 7.46) * 0.32
√ { --------------------------------- }
4.3 * (3.15 - 2.75) - 1.72 * 2.01
普通の電卓なら面倒でやる気が起きないような複雑な数式ですが、逆ポーランドなら楽勝です。単に日本語の順番に口に出していけば、すぐに逆ポーランド記法式に変換できます。
日本語で書くとすれば『8.33に4から5.2を引いた値を掛けたものを、8.33から7.46を引いた値に0.32を掛けたもので割って分子の値とする。次に4.3に3.15から2.75を引いた値に4.3を掛けてから1.72に2.01を掛けた値を引いたもので割って分母の値として、分子を分母で割って最後に平方根をとる』ですね。これを逆ポーランド記法式にすると以下のとおり、スッキリ書けます。
次は…
逆ポーランド記法で書かれた数式を実際に計算するには… 逆ポーランド電卓のまとめ