fc2ブログ

まるでダメな男の日記

このブログでは趣味のゲームや読書感想など非生産的な駄文を書き連ねていく予定です。

第621回 逆ポーランド記法

Posted by ヒッター7777 on   0 comments   0 trackback

逆ポーランド記法 Reverse Polish Notation

 昨日の記事で出てきた「逆ポーランド記法(RPN)」であるが「逆」とある以上、「正」の「ポーランド記法」もあるわけです。
 「逆ポーランド記法」は後置記法、「ポーランド記法」は前置記法と呼ばれていますが、通常、日本人が使うのはそのどちらでもない中置記法です。

 1、+、1 というように数字の中間に演算子を入れる計算方法です。

 RPNの説明で行うと
 1_1+ という書き方になります。 

 中置記法で(2+3)*(4+5)はRPNでは、2_3 + 4_5 +* となります。
 (電卓の場合、上記の数字の間の”_”はENTERキーを使用します。)

 この方法で計算する電卓があります。
 ヒッターが使っていたヒューレット・パッカード社のものはもう売っていないので、最近のものを調べると「HP-35s 」という機種が安いですね。
 「hp Prime Graphing Calculator グラフ電卓」という上級者向けのものもあります。
 昔はプログラマブルなものは20万円近く、ヒッターの使っていたものでも5万円くらいしましたが、実売価格で1万円を切っているの1台買ってみようかと思っています。

 左がHP社の「HP-35s 」、右はヒッターが10年以上使っているCASIO「fx-991w」です。
HP-35s.pngFX--991w.png


 違いはわかりますね。「HP-35s 」には”=”キーが無いのです。

 さて、なぜRPNを使うのかというと、日本語で数式を考えてみましょう。

 (2+3)*(4+5)というのは「2と3を足したものと、4と5を足したものを掛ける」という数式です。
 あ~~ら、これはRPNで「2_3+4_5+* 」と同じ配列ですね。

 一応、括弧記号(デリミタ)を使う場合は
 ((2_3+)(4_5+)*)となり、かえって煩雑です。

 コンピューター・プログラミングをする人にはわかると思いますが、レジスター内で計算する際の簡略化ができるのです。

 y=ax+b というを数式を日本語にすると「yはaとxを掛けたものにbを足した総和である」
 RPNにすると「yax*b+=」となります。

 
 プログラミングや情報処理に興味のある方は、ネット上に色々とアルゴリズムに関する話が載っているので検索してみましょう(^^

関連記事
スポンサーサイト



Post comment

管理者にだけ表示を許可する

Trackback

trackbackURL:http://hitter7777.blog.fc2.com/tb.php/623-d60a8777