RPNとは、逆ポーランド記法(Reverse Polish Notation)のことで、数式やプログラムを記述する方法のひとつです。
例えば、一般の数式で「2と3を足す」という演算は、
2 + 3
となりますが、逆ポーランド記法では、
2 3 +
となります。「+」という演算子を、被演算子の2と3の後ろに配置します。
逆ポーランド記法は日本語の文法に似ており、「2と3を足す」という読み順通りに記述していけばいいのです。
もう少し複雑な数式にしてみます。
(6 + 2)÷((5 − 3)× 2)
これを、逆ポーランド記法で記述すると、
6 2 + 5 3 − 2 × ÷
「6と2を足したものを、5から3を引いたものに2を掛けたもので割る。」
ほら、演算の内容を日本語にしたそのままでしょ?
そして、逆ポーランド記法ではカッコが不要なんです。
この逆ポーランド記法を入力方式とした電卓が、RPN電卓です。
ただ、上記の式をそのまま電卓のキーとして入力すると、6と2が62になってしまいます。
一般の数式では被演算子と被演算子の間に必ず演算子が入るので、演算子が区切ってくれますが、逆ポーランド記法では、被演算子と被演算子の間を区切る何かしらの記号(デリミタ)が必要です。
では、どうするかというと・・・
RPN電卓ではこの区切りを入力するために「ENTER」キーがあります。
上記の式(6 + 2)÷((5 − 3)× 2)を一般の電卓と、RPN電卓でどのように入力するか比較してみます。
一般の電卓の場合。機種によって若干違うと思いますが、概ねこんな感じでしょうか。
[5] [−] [3] [=] [×] [2] [=] [M+] [6] [+] [2] [=] [÷] [MR] [=]
RPN電卓の場合。(ENTERキーをENTと記します)
[6] [ENT] [2] [+] [5] [ENT] [3] [−] [2] [×] [÷]
RPN電卓は[ENT]キーが必要ですが、メモリーと[=]キーが必要ありません。
上記の例では、打鍵数が一般電卓は15回ですがRPN電卓は11回で済みます。
しかし一番重要なのは、RPN電卓では演算の内容、つまり「何をどうしたいか」をそのまま(数式のまま)入力すればいいのに対し、一般の電卓では、×÷と+−の演算優先順位やメモリーの制限(加減のみ)を考慮し、頭の中で計算順序(入力順序)を入れ替えて入力しなければなりません。
実際の仕事や生活で、数式を目の前にしてそれを電卓で計算する機会はそうそうなく、
ほとんどの場合、とっさに計算が必要になり、頭の中で数式を組み立てると思います。
そんな状況で、二重や三重のカッコなんて使ってられますか?
(そんな複雑な計算、日常ではしねーよ。ってのは無しで。)
RPN電卓が[=]キーを必要としないのは、
演算子を入力した時点で演算結果が確定・表示されるからです。
また、メモリーキーを必要としないのは、
内部に「スタック」というデータ構造を持つレジスタ(メモリー領域)があるからです。
ここで、スタックの話をすると長くなっちゃいますので、下記サイトをご覧下さい。
さて、このようなすばらしい機能を持つRPN電卓ですが、
残念ながら、電機店やホームセンターでは普通に売っていません。
そもそも、ほとんどのメーカーが作っていません。
日本で購入できるのは、HP(ヒューレット・パッカード)社製のみといってもいいくらいです。もちろんHP製の電卓でも、RPN電卓はその一部のみです。(購入検討する場合は確認して下さい)
私の持ってる電卓はこれです。
私が購入したのは2008年の始めころで、「日本語ガイド」はついていませんでした。マニュアルは英語です。
仕事柄関数電卓は必要だったのですが、それまで使っていた電卓が調子悪くなり、
買い換えを検討していたころに、HP電卓35周年記念モデルとしてこれが発売されました。
それまでは普通の電卓を使っていたので、RPN電卓の購入には正直迷いました。当時8000円位したし。
しかし今ではもう、普通の電卓には 戻れない体にっ!! いやん
上記の機種なら、安いところ探せば6000円程度で購入できるみたいですが、
それでも、じゃ試してみるか!って金額ではないですよね?
「RPN電卓のすすめ」と銘打ってしまったので、とりあえず簡単に試せる方法をいくつかご紹介します。
パソコンでやってみよう
Macをお持ちの方はOSX標準の、「計算機.app」にRPNモードがあるので試してみて下さい。
メニューバーの[表示]→[RPNモード]をクリックすると、RPNモードになります。
スタックは実質無限。画面上の表示は4段ですが、表示部をスクロールすることにより
深いところのレジスタまで確認できます。
Windowsの方は「RPN 電卓 フリーソフト」などでググって下さい。Macより多くのアプリが見つかるはずです。
スマホでやってみよう
iPhoneをお持ちの方は、とりあえずアプリで試してみてはいかがでしょうか?
App Storeで「RPN」で検索するとたくさん出てきますが、ここで、いくつかご紹介します。
(Androidについては、私はわからないのですが、探せばあるはずです。)
ちなみに、私が使用しているのはこれです。
関数はもちろん、統計計算や単位換算、金融計算も出来る高機能なアプリですが、金額も高めですし、高機能故に複雑ですので、「RPNを試す」という目的には不向きです。
iPhone購入後、真っ先に探して入れたアプリですが、その後バージョンアップがなく、アイコンもRetinaディスプレイに対応してません。
ご紹介にあたっての選定基準は以下の2つだけ。
・無料(記事作成時)かつ、広告表示がないもの。
・スタック表示。出来れば4段、少なくとも2段表示できるもの。
RPN初心者が一番戸惑うのはスタックです。しかしスタックを理解すればRPN電卓を理解したも同然です。
スタックの状態を逐一確認できるのは、RPNを理解する上で早道だと思います。
4段スタックで、4段表示。3つのメモリーと、二乗、ルート、%くらいしか機能がありません。
HP製のHP42Sという関数電卓をエミュレートしたアプリです。
4段スタックで、2段表示。無料でありながら高機能なプログラム電卓。
ほぼ無限スタック?。スクロールにより深いレジスタも確認できる。
表示部はスクロールだけでなく、ピンチアウト/ピンチインでズームできる。
これによりスタックは3〜4段くらいが見やすい。
プログラムは出来ないが、一般的な関数はほぼ網羅。
ほぼ無限スタック?。スクロールにより深いレジスタも確認できる。
四則演算しかできない電卓ですが、スタック内でドラッグによりレジスタの位置を移動できる異色な機能が特徴。
とりあえず数値を放り込んどいて、後で計算順序に応じて並べ替えるとかもできる。
RPN電卓を試していただくにあたって、2つだけお願いがあります。
・1週間とか、せめて3日間とか出来るだけ長いスパンで試用する。
・RPN電卓を試用中は、普通の電卓は使わない。
子供のころから慣れ親しんだ中置記法数式が体に染みついて、
最初はどうしても計算をするときに「2足す3」という数式前提の思考をしてしまいます。
10分とか1時間程度の試用では、「2に3を足す」という論理的思考にうまく切り替えられず、思考→キー入力のダイレクトインというRPN最大のメリットを感じずに終わってしまうと思います。
また、試用中に普通の電卓を使うと、やはり数式前提の思考に逆戻りしてしまいます。
とはいえ、最初は計算結果が合っているかどうか不安になると思いますので検算に使うぐらいはいいでしょう。しかし、できる限り検算は他の人にやってもらうなどして、なるべくRPN電卓オンリーにして下さい。
慣れないうちは、やはり間違います。
そういうときは大抵 びっくりするような計算結果が出ます。
しかし、その苦悩を乗り越えた先には、何とも言えぬ甘美な世界が・・・
(電卓ごときに、なんでそんな苦労せなあかんねん。ってのは無しで。)