はじめに
ようこそ、rpn入門の講座へ。
小学生の頃からずっと、計算してきた順序とまったく違う計算方法があるとしたら驚きませんか。この講座ではそんなrpnの世界に飛び込んでいきます。今の時点では、rpnというと何だかわけのわからない感じだと思いますが、きっとあなたのお役に立てることだろうと思います。是非、一緒にrpnを学んでいきましょう。
RPNってなに
RPNは、Reverse Polish Notation(逆ポーランド記法)の略で、「1」や「2」の数値の後に「+」や「-」の演算記号が配置されるユニークな記法です。数式の書き方も非常にスマートで、呼び方はアール・ピー・エヌといいます。
名前の由来は考案者がポーランド人であることに因っています。ただ、最初に逆ポーランド記法が考案されたわけではなく、ポーランド人の論理学者ヤン・ウカシェーヴィチが先に発案したポーランド記法が元になっています。それをコンピュータで処理しやすいように改変したのが逆ポーランド記法です。
※ヤン・ウカシェーヴィチ(Jan Łukasiewicz) 1878/12/21 - 1956/2/13 (明治11年~昭和31年)
逆ポーランド式の書き方は少しずつ説明していくので、雰囲気だけ感じ取ってほしいのですが、まずはrpnの使い方を簡単に説明しましょう。
rpnは逆ポーランド記法の数式を扱うソフトウェアの電卓です。この講座はrpnの機能紹介を兼ねて、逆ポーランド記法を使った計算について説明していくものです。
rpnの使い方
rpnには2つの使い方があります。使い方の1番目はDOSのコマンドライン上で直接逆ポーランド式を計算する方法で、1回だけの(その場限りの)計算にはとても便利です。
1番目の使い方(コマンドラインでの計算)
>rpn 2 3 + ← コマンドラインから直接計算5
2と3を足した答えが5であることが表示されています。そして、2番目はrpnを起動した状態で逆ポーランド式を計算する方法。計算したい逆ポーランド式が複数個ある場合などの繰り返し計算に有利になります。
2番目の使い方(標準入力での計算)
>rpn ← rpnを起動してから計算2 3 +
5
2 3 -
-1
^Z ← ^Z(Ctrlキーを押しながらZキーを押す)で終了
エンターキーを押す
2と3を足して5、2から3を引いて-1が表示されていますね。
rpnの計算結果の見方
ほとんどの場合、rpnの計算結果は下記のa)のようになります。たまに計算結果がとても小さな数の場合はb)のように、とても大きな数の場合はc)のような科学表記になります。科学表記は初めはとっつきにくいですが、眺めていると自然に分かってきます。
>rpn 1 3 / ⇒ --- ....... a)
0.333333 3
-5
>rpn 1 30000 / ⇒ 3.33333 × 10 ....... b)
3.33333e-05
6
>rpn 3000000 ⇒ 3 × 10 ....... c)
3e+06
以下のように、e-05やe+06が10の指数と対比していることが分かってしまえば簡単ですね。
e-05 ⇒ 10 e+06 ⇒ 10
科学表記は通常の計算ではあまり出てくることがないので気にすることはありません。実際、この講座でもめったに出てきません。もし、今後の講座で見慣れないrpnの計算結果が出てきたら、この場所に戻って対比を確認してみてください(rpn入門(中級編)の表示形式にも詳しい説明があります)。
rpnには機能がいっぱい
rpnには数多くの機能が詰めこまれています。一度に覚えようとすれば大変ですが、実際にrpnを少しずつ使っていけば知らないうちに慣れているので大丈夫です。
月にロケットを飛ばすような厳密な精度や複雑なプログラムを求めないのなら、rpnは簡便に使えるデータ処理電卓として活躍できますし、今後の講座に示される例題を試すことで、その便利さと強力さを実感できると思います。是非、逆ポーランド電卓の可能性を感じ取ってください。
”逆”ポーランド記法があるなら、ポーランド記法もあるのかという疑問が湧きますが、実際に存在します。というよりポーランド記法が先で、その後にコンピュータへの利用を考えて逆ポーランド記法に改良されました。名前の由来は発明者がポーランド人だったからですが、ポーランド記法は「+」や「-」が数字の前に置かれる記法でした。つまり、「1+2」は「+ 1 2」になります。対して、rpnが扱う逆ポーランド記法は「1 2 +」のように数字の後に「+」「-」記号が置かれます。逆ポーランド記法の”逆”はポーランド記法に対して”逆”という意味だったのです。そして、面白いことに逆ポーランド記法には括弧がありません。数式の頭から順に式を解釈していくことで、自然に答えが算出できてしまうからです。逆説的に言えば、式の優先順位をユーザが勝手に決められるということになります。
『今回の問題』………………………………………………………………………
以下の数式で、逆ポーランド式を選べ。
(1) 1 + 2
(2) 1 2 +
(3) (1 + 2) × (3 + 4)
(4) (1 2 +) × (3 4 +)
…………………………………………………………………………………………
本講座に出てくる後置記法式および逆ポーランド式は電卓ソフトである「rpn」が使用可能な構文を対象にしています。四則演算記号以外の逆ポーランド式の構文は全てrpnの独自文法です。