目次(まとめ)
- 私たちが普段使っている数式は「中置記法」で書かれている
- コンピュータにとって理解しやすい数式は「後置記法」で書かれたもの
- 「スタック」を用いて「後置記法」を解釈できる
- 参考文献
こんにちは、みっちゃんです。
今回の記事では、私たちが普段目にしている数式を、コンピュータにわかりやすい形に変換するための「逆ポーランド記法」について紹介します。
私たちが普段使っている数式は「中置記法」で書かれている
私たちは普段、以下のような数式を使っています。
$$1+2$$
このように演算記号である「+」を項(数字)の間に置く書き方を「中置記法」と呼びます。
私たちは、この書き方しか知らないということもあり、「中置記法」という言葉に馴染みがないと思います。
しかし、この「中置記法」はコンピュータには理解しにくい書き方です。
例えば、以下のように複雑な数式があるとします。
$$1+2×3$$
わたしたちは、「足し算より先に掛け算を行う」ということを数式を眺めれば一瞬に理解することができます。
しかし、コンピュータは、数式の全体像をみることができず、理解にとまどってしまいます。
コンピュータにとって理解しやすい数式は「後置記法」で書かれたもの
「中置記法」に対して「後置記法」という書き方があります。
その名のとおり、演算記号を項(数字など)の後ろに置く書き方です。
例えば、(1+2)は(12+)となり、
$$1+2×3$$
は、
$$123×+$$
という風に書きます。
コンピュータには理解しやすいのですが、わたしたちにとっては理解しづらいですね。
「スタック」を用いて「後置記法」を解釈できる
「後置記法」で書かれた数式は「スタック」を用いて理解することができます。
ここでは例として、(123×+)について考えたいと思います。
コンピュータは、数式の先頭文字から「スタック」にプッシュしていきます。
ステップ1:1をプッシュ
ステップ2:2をプッシュ
ステップ3:3をプッシュ
ステップ4:"×"という演算記号が出てきたので、プッシュしておいた2つの数字を取り出して掛け合わせる→"6"を取得
ステップ5:6をプッシュ
ステップ6:"+"という演算記号が出てきたので、プッシュしておいた2つの数字を取り出して足し合わせる→"7"を取得
結果的に、数式の答えは「7」となるわけです。
参考文献
きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社