いつモノコト

クセが強い!? 「逆ポーランド電卓キット」を組み立てた

先日、「電卓の組み立てキットが登場した」というニュース記事が目に入りました。電卓の組み立てキット自体は珍しくは無いのですが、件のものは「逆ポーランド式」(!)の電卓だというのです。

逆ポーランド式の電卓というのは、「逆ポーランド記法」という特殊な入力方式を採用している電卓で、一般的な電卓に慣れている身からすると非常に“クセの強い”アイテムと言えます。

今回、逆ポーランド電卓の組み立てキットを出したのは、「TOKYO FLIP-FLOP」というインディーズメーカー。販売は「家電のケンちゃん」で行なわれています。名前はズバリ「ホビーRPN電卓」。これは面白そうだと購入してみることに。価格は4,290円でした。

逆ポーランド記法(RPN=Reverse Polish Notation)は、数値を先に入力しておいて、演算子は後から入力するやり方です。良く言われるメリットは、足し算の後にかけ算が来るような式(例:1+2×3)でも、自然と掛け算から先に計算できるために、カッコ(関数電卓の場合)やメモリー機能を使わなくても良いというものです。結果的にボタンを押す回数が少なくなり、速く計算できることもあり、「逆ポーランド電卓に慣れると他の電卓は使えなくなる」と言う人までいるようです。

逆ポーランド電卓は、主にヒューレット・パッカード(HP)が製品化しており、国内でも入手は可能です。しかしながら、これだけ電卓が普及している日本でも、そうしたものが存在することすら一般には知られていないのでは無いか? というマイナーなアイテムです。

ハンダ付けは少なく初心者向き

なにはともあれ、まずはキットを組み立てていこうと思います。1枚のプリント基板にいくつかのパーツをハンダ付けして、前後をアクリル板で覆うという作業です。

キットの中身。部品点数は少なめ

このキットではICやボタン、電源スイッチは最初からハンダ付けされているので、ユーザーがハンダ付けするのはディスプレイ部分と電池ホルダーだけです。

ハンダ付けを伴うキットの中でも組立は簡単な方なので、小学生の子供さんでもできると思います。組み立てたら付属のボタン電池(CR2032)を入れて完成です。

ボタンは最初からハンダ付けされている
裏面のICも実装済み
基板はしっかりと強度のあるものでした
まず、ピンヘッダを半分に分割します
分割したうちの1つだけ、短い側のリードをカットします。これはディスプレイの支えになります
支えになる方のピンヘッダですが、飛び出していたリードをヤスリ掛けしました。組み立てガイドには書かれていませんが、こうするとディスプレイと基板が平行になります
ピンヘッダのハンダ付けに際して、テープで仮止めします。左右を間違えないようにします
ピンヘッダーは樹脂の部分が熱に弱いので、特に短時間でハンダ付けしましょう
ディスプレイの左側をハンダ付け。右側は適当な接着剤で支えのピンヘッダーにくっつけます
電池ホルダーをハンダ付けします。ハンダ付け中は熱くなるので手で保持せず、やはりテープを使います
電池ホルダーを付ければ、ハンダ付けは終了
素の状態で動作を確認。その後アクリル板を取り付ければ完成です

組立が終わったら電源スイッチを入れて「0.00」が表示されればOK。試しに、円周率の近似値が出てくるとある式を計算してみましょう。

103993÷33102

これを逆ポーランド電卓では下のように入力します。

[103993] [Ent] [33102] [÷]

冒頭の写真の様に円周率が表示されました。なお、一般電卓のAC(オールクリア)に相当するのは、[Ent]の長押しとなっています。

ディスプレイはOLED。自発光なので視認性が良い

慣れれば簡単な逆ポーランド入力

このように、逆ポーランド電卓では「2+3=」というのを「2 Ent 3 +」と入力します。「2と3を先に入れておいて、後からそれらを足す」という風にするのです。最後の演算子を入力すると答えが出るので、イコールキーを押す必要はありません。そのため、逆ポーランド電卓にはイコールキーが無いのです。その代わり、Enterキー(本機ではEnt表記)があるのが特徴で、これは数と数を区切るイメージのキーです。

電卓における逆ポーランド入力については、塩田紳二氏の記事に詳しいので、参考にしてください。

「世界最小クラスの逆ポーランド電卓」を謳うだけあって、名刺よりもずっと小さい
完成品の背面

さて、ここで例題として次の式を計算することにします。

6-[9÷(4×3)+2]=3.25

以下は、一般的な電卓(関数電卓では無い)の操作例です。メモリー機能を2度使う必要があり煩雑です。

[4] [×] [3] [M+] [9] [÷] [MRC][MRC] [+] [2] [M+][6] [-] [MRC] [=]

一方逆ポーランド電卓では、式の前方から順に入力できる上にキータッチが少なく、次のように押すだけで計算できます。

[6] [Ent] [9] [Ent] [4] [Ent] [3] [×] [÷] [2] [+] [-]

こうしたやり方で計算できるのは、逆ポーランド電卓が「スタック」と呼ばれるメモリー(データ構造)を実装しているからです。スタックの動作原理についてここでは詳しく触れませんが、数字を「後入れ先出し」で扱い、途中の計算結果も自動的に残って再利用できるようになっています。この動きを把握することが逆ポーランド電卓を使う上での第一歩です。

といっても、スタックの振る舞いも逆ポーランド入力もさほど難しいものでは無く、慣れてしまえばなんてこと無く使えます。筆者もすぐマスターできました。ちなみに今回の電卓は、HPが伝統的に採用していたのと同じ4段(X/Y/T/Z)のスタックを備えています。

ディスプレイは10桁(少数点やマイナス記号も含む)表示のタイプですが、それを超える大きな数(または小さな数)になると指数形式で表示されます。試したところ、指数部分は300を越えるあたりまで表示され、かなり大きな(小さな)数も扱えるようです。しかし、最初から指数形式で入力することはできません。

指数形式の表示例(3.003×10^307)。指数部が表示されると、そのぶん仮数部の有効数字が減っていきます

余談ですが、「1÷3×3」([1] [Ent] [3] [÷] [3] [×])の答えはちゃんと「1」になりました。というのも、一部では「0.99999…」になってしまう機種もあるため一応確認した次第です。

“異文化”に触れる面白さ

今回のキットは「ホビー」と冠しているように、趣味や学習用となっています。基本的な四則計算は可能ですが、メモリー機能やルート機能が無かったりと簡易版という位置づけだそうです。

逆ポーランド電卓としてみると、HP製にあるようなスタック操作の機能がありません。例えばスタックの中身をローテーションする機能(以前に入力した数値や答えの呼び出しなどに使う)、XレジスタとYレジスタの中身を入れ替える機能(引く数と引かれる数の入れ替えなどに使う)、直前のXレジスタの中身を呼び出す機能(演算キーを押し間違えたときの訂正などに使う)といった機能が無いため、実用的に使うのはなかなか難しそうです。

また電卓自体としては、ある程度力を入れて押さないといけないタクトキーなので、素早く数値を打ち込むことも困難です。しかし、この小さなアイテムを持ち歩いて使えば、きっとよい話のネタになるのではないでしょうか。

心臓部には米Atmelのマイクロコントローラーが使われていました

現在、逆ポーランド式の電卓は数を減らしつつありますが、ファンはそれなりにいるようです。近年SwissMicrosという会社はHPの互換品ともいえる電卓を相次いでリリースしました。一般的な電卓の操作に慣れている身からすると、逆ポーランド電卓はまさに“異文化”なのですが、新しい(古い?)ものに触れて「こういうものもあるんだ!」と思いを巡らせるのは楽しいものです。

ちなみに、逆ポーランド記法を使ったスタックの操作はプログラミングでも必要になる知識で、基本情報技術者試験でも出題されます。実機を使って動きを確認するのも良さそうです。

ただ、「電卓に4,000円オーバーを払うのは……」という人もいるでしょう。逆ポーランド電卓は、スマホアプリとしてもたくさんリリースされています。例えば、オープンソースで開発されている「Free42」は無料で広告も出ません。かつての名機とされる「HP 42S」をクローンしたもので、4段のスタックレジスタを搭載しています。手っ取り早く逆ポーランド電卓を使ってみるなら、こうしたアプリを試すのも面白いでしょう。

Android版のFree42。本格的な関数電卓アプリで、スマホとPCの各OSに対応している

1981年生まれ。2006年からインプレスのニュースサイト「デジカメ Watch」の編集者として、カメラ・写真業界の取材や機材レビューの執筆などを行う。2018年からフリー。