中置記法と逆ポーランド記法
逆ポーランド記法(Reverse Polish Notation, RPN)は、数式を表現する方法の一つです。普段私たちが使っている通常の数式(中置記法)とは異なり、カッコを使わずに数式を簡潔に表現できるのが特徴です。
逆ポーランド記法とは?
逆ポーランド記法では、演算子(+、-、×、÷など)を「演算対象の後ろ」に書きます。
例:
通常の中置記法(普段使う書き方)では、こう書きます
3 + 4
逆ポーランド記法では、演算子を後ろに移動してこうなります
3 4 +
もう少し複雑な例も見てみましょう。
中置記法
(3 + 4) × 5
逆ポーランド記法
3 4 + 5 ×
逆ポーランド記法の計算方法
逆ポーランド記法の式はスタック(stack)という仕組みを使って計算します。スタックは「後入れ先出し」(Last In, First Out)の特徴を持つデータ構造です。
スタックについては、こちらの記事を参考にしてください。
計算手順を具体例で見てみましょう。
逆ポーランド記法の式 3 4 + 5 × を計算してみます。
最初にスタックを準備: スタックは空っぽの状態からスタートします。
左から順に式を読む:
3 → スタックに入れる → スタック:[3]
4 → スタックに入れる → スタック:[3, 4]
+ → 演算子が出たので、スタックの上2つを取り出して計算:
3 + 4 = 7 → スタックに結果を入れる → スタック:[7]
5 → スタックに入れる → スタック:[7, 5]
× → 演算子が出たので、スタックの上2つを取り出して計算:
7 × 5 = 35 → スタックに結果を入れる → スタック:[35]
結果を確認: 最終的にスタックに残った値が答えです。この場合、答えは 35 です。
逆ポーランド記法のメリット
逆ポーランド記法には、以下のようなメリットがあります。
カッコが不要
中置記法ではカッコを使って計算の順序を明示する必要がありますが、逆ポーランド記法ではカッコを使わずに書けます。これにより、式がシンプルになります。
計算が簡単
逆ポーランド記法は計算機やプログラムに適しています。スタックを使うだけで順序通りに計算できるので、複雑な解析が不要です。
人為的なミスが減る
中置記法では、カッコを閉じ忘れるなどのミスが起こりがちですが、逆ポーランド記法ではその心配がありません。
実用例
逆ポーランド記法は、特にコンピュータ科学やプログラミングの分野でよく使われます。
古い計算機(HP電卓など)
HPの一部の電卓では、逆ポーランド記法が採用されています。コンパイラやインタプリタ
プログラミング言語で書かれたコードを実行可能な形式に変換するときに、逆ポーランド記法が利用されることがあります。データベースクエリ
一部のデータベースでは、内部的に逆ポーランド記法でクエリを処理する場合があります。
まとめ
逆ポーランド記法は、シンプルで効率的な数式表現方法です。はじめは不思議に感じるかもしれませんが、スタックを使った計算方法を理解すれば、すぐに使いこなせるようになります。