はじめに
幽灯子/基本情報技術者副専門官私たちが学校で習う算数の式、たとえば 3 + 5 という書き方。実はこれ、数式の書き方としては「いくつかある方法のうちのひとつ」に過ぎません。
世の中には ポーランド表記法(前置記法) という、ちょっと変わった数式の書き方があります。一見すると暗号のように見えますが、仕組みを知れば意外とシンプル。コンピュータの世界では今でも広く使われている、とても実用的な表記法です。
この記事では、数学やプログラミングの知識がなくても理解できるように、ポーランド表記法をやさしく解説します。
ふだん私たちが使っている書き方 ── 中置記法



まず、比較のために普段の書き方を確認しましょう。
3 + 5
10 - 2
4 × 3
これは 中置記法(ちゅうちきほう) と呼ばれています。演算子(+や-などの記号)が数字と数字の あいだ(中) に置かれるから「中置」です。私たちにとっては一番なじみ深い書き方ですね。
ポーランド表記法とは ── 演算子を「前」に置く





ポーランド表記法では、演算子を数字の 前 に書きます。だから「前置記法(ぜんちきほう)」とも呼ばれます。
具体的に見てみましょう。
| ふだんの書き方(中置記法) | ポーランド表記法(前置記法) |
|---|---|
| 3 + 5 | + 3 5 |
| 10 – 2 | – 10 2 |
| 4 × 3 | × 4 3 |
やっていることは同じです。ただ「+」や「-」の 位置が変わっただけ です。
声に出して読むと、こんな感じになります。
+ 3 5→「足す、3と5を」- 10 2→「引く、10から2を」
日本語の語順に近い感覚で「何をするか(動詞)」を先に言って、そのあとに「対象(数字)」が続く、と考えるとわかりやすいかもしれません。
名前の由来



ポーランド表記法という名前は、1924年にこの表記法を考案した ポーランドの論理学者ヤン・ウカシェヴィチ に由来しています。
そのため「ウカシェヴィチ記法」と呼ばれることもあります。
複雑な式はどう書く?



ここからが面白いところです。次の式を考えてみましょう。
(3 + 5)× 2
ふだんの書き方だと、カッコ () を使って「先に 3+5 を計算してね」と指示する必要がありますよね。
ポーランド表記法で書くと、こうなります。
× + 3 5 2
読み方は 右から順にグループ化 していくとわかりやすいです。
- まず
+ 3 5→ 3 + 5 = 8 - 次に
× 8 2→ 8 × 2 = 16
ここで注目してほしいのが、カッコが一切登場しない ということです。演算子の位置だけで計算の順番が決まるので、カッコが不要になるのです。これがポーランド表記法の最大のメリットです。
もうひとつ例を見てみましょう。
ふだんの書き方:(1 + 2)×(3 + 4)
ポーランド表記法:× + 1 2 + 3 4
分解すると次のようになります。
+ 1 2→ 1 + 2 = 3+ 3 4→ 3 + 4 = 7× 3 7→ 3 × 7 = 21
逆ポーランド表記法(後置記法)── 兄弟のような存在





ポーランド表記法には「逆」バージョンもあります。その名も 逆ポーランド表記法(RPN: Reverse Polish Notation)。こちらは演算子を数字の 後ろ に置きます。
| ふだんの書き方 | ポーランド表記法(前置) | 逆ポーランド表記法(後置) |
|---|---|---|
| 3 + 5 | + 3 5 | 3 5 + |
| (3 + 5) × 2 | × + 3 5 2 | 3 5 + 2 × |
逆ポーランド表記法は、かつて HP(ヒューレット・パッカード)社の関数電卓 に採用されたことで有名です。エンジニアや科学者の間で根強い人気がありました。
どこで使われているの?



ポーランド表記法やその逆バージョンは、意外と身近なところで活躍しています。
プログラミング言語の内部処理 — コンピュータがプログラムの中に書かれた数式を処理するとき、内部的にポーランド表記法や逆ポーランド表記法に変換していることがあります。カッコの処理が不要になるため、コンピュータにとって効率がよいのです。
Lisp系プログラミング言語 — Lisp(リスプ)というプログラミング言語は、ポーランド表記法にとても近い書き方をします。たとえば 3 + 5 は (+ 3 5) と書きます。1958年に生まれた歴史ある言語ですが、人工知能の研究などで現在も使われています。
関数電卓 — 先述のHP社の電卓のように、逆ポーランド表記法を採用した電卓は今でも愛用者がいます。慣れると通常の電卓より素早く複雑な計算ができるため、プロの間では根強い支持があります。
まとめ
ポーランド表記法は、数式を書くときに演算子を前に置くシンプルなルールです。たったそれだけの工夫で、カッコが不要になり、計算の順番が曖昧にならなくなります。
| 表記法 | 演算子の位置 | 例(3+5) | カッコ |
|---|---|---|---|
| 中置記法(ふだんの書き方) | 真ん中 | 3 + 5 | 必要 |
| 前置記法(ポーランド表記法) | 前 | + 3 5 | 不要 |
| 後置記法(逆ポーランド表記法) | 後ろ | 3 5 + | 不要 |



ふだんの生活で使う場面はあまりないかもしれませんが、コンピュータの世界では欠かせない考え方です。「数式にはいろんな書き方がある」と知っておくだけでも、プログラミングや論理学への入り口がぐっと広がるはずです。










コメント