--ホーム--
|
RPNとスタックそれでは,RPNとスタックについて説明します.もしHP48GシリーズあるいはHP49G電卓を持っていたら,実際にキーを押しながらこの説明を見てください. 電卓のENTERキーHP電卓には,ENTERキーというものがあります.もちろん,普通の関数電卓にもENTERと書かれたキーがあることもあります.ただ,普通の関数電卓ではイコールキーの場合もあります.しかし,RPN電卓では,イコール「=」代入演算子とENTERキーは全く別のものです.そして,RPN電卓を単純な電卓として使う時は「イコールキー」を使いません.ただし,方程式その他高度な機能を使うときは数式を入力するためにイコールを用いることがあります. では,ENTERキーはどのように使うのでしょうか.ここで,先ほど説明したRPNを思い出してください.
1 2 +
1 + 2を計算するとき,1と2の区切りを示す必要があります.この区切りを表すのがENTERキーです.この計算をHP電卓で行う場合は,
[1] [ENTER] [2] [ENTER] [+]
と入力します.[2]の後の[ENTER]は入力しなくても構わないのですが,RPNとスタックの関係を一通り説明するまでは[ENTER]を省略せずに説明します.ここで,スタックの概念を用いるとこれからの説明が理解しやすくなります.まず,[ENTER]は,直前に入力した数をスタックに入れることを意味します.このことを図に示すと,次のようになります. まず,(a)は何もスタックに入っていない状態です.ここで,[1] [ENTER]と押すと,1がスタックに入ります.これが,(b)の状態です.次に,[2] [ENTER]と押すと,2がスタックに入ります.これが(c)の状態で,スタックには1と2が入っています. 次に,[+]を押したときについて説明します.足し算は二項演算(二つの数の演算)なので,スタックから2つ数を取り出します.まず,2が取り出されます.これが(d)の状態です.さらに,1が取り出されます.これが(e)の状態です.そして,この二つを足して結果を得ます.結果はスタックに格納されます.これが(f)の状態です.この,結果がスタックに格納されるというのがRPN電卓の重要なポイントです. この動きは,HP48GシリーズやHP49Gを使っているとよくわかります.そこで,この例について表示がどのようになるか見てみましょう.まず,[1]と押します.すると, 2: 1: 1〈 となります.そして,[ENTER]を押すと, 2: 1: 1 となります.「1:」のようにコロンで示されているのは,スタックそのものです.次に,[2]と押します.すると, 2: 1: 1 2〈 となります.そして,[ENTER]を押すと, 2: 1 1: 2 となります.液晶の表示は,先ほどの図と上下を逆にした順序になっています.すなわち,下側(数字の小さい)のものから順にスタックから取り出されます.あるいは,先にスタックに入ったものほど数字が大きいということもできます.さて,ここで[+]を押してみます.すると, 2: 1: 3 となります.スタックから1と2の両方が取り出されます.そして,1+2の計算結果だけがスタックに入ります. 演算子の前のENTERさきほど,演算子の直前のENTERは省略できると書きました.入力するキーの数が少ないほど計算は速いので,実際には省略できるENTERは押さないようにします.実は,そのほうが日本語の思考により近くなります.まず,1 + 2で説明します.この場合,
[1] [ENTER] [2] [+]
と入力します.[2]の後の[ENTER]が省略されています.ここで,「1と2を足す」という思考過程とキー入力を比較してください.怪しいくらいに一致しています.次に,(3 + 5) / (6 - 7)について説明します.キー入力は,
[3] [ENTER] [5] [+] [6] [ENTER] [7] [-] [/]
となります.「3と5を足して6と7の差で割る」でどうでしょう.数式を見ながら,あるいはどのような計算をしたいのか頭の中で考えながら計算する時,余計な思考を必要としません.これがRPNの電卓ユーザーから見た最大の利点の一つです.計算が複雑になればなるほど,数式通り入力よりもキーを押す回数が減るはずです. |