逆ポーランド記法(reverse Polish notation)
- テクノロジ系
- 基礎理論
- 基本情報
- 応用情報
- 重要度 ★★★☆☆
演算子を、計算する2つの数の後ろに書く記法。かっこを使わずに計算の順番を表せる。
もう少し詳しい説明
逆ポーランド記法は、演算子を、計算する2つの数の後ろに書く記法です。後置記法とも呼びます。
ふだんの書き方(中置記法)と並べると、こうなります。
| ふだんの書き方 | 逆ポーランド記法 |
|---|---|
| A + B | A B + |
| (A + B) × C | A B + C × |
| A + B × C | A B C × + |
2行目と3行目を見比べてください。ふだんの書き方では、かっこがあるかないかで計算の順番が変わります。逆ポーランド記法では、かっこがなくても、並び順だけで計算の順番が決まります。
どうやって計算するのか
逆ポーランド記法は、スタック(後に入れたものから先に取り出す入れ物)を使うと、左から順に読むだけで計算できます。
ルールは2つだけです。
- 数が来たら、積む
- 演算子が来たら、上の2つを取り出して計算し、答えを積む
「3 4 + 5 ×」を計算してみます。
+ が来た時点で、上の2つ(3 と 4)を取り出して足し、7 を積み直しています。× も同じで、7 と 5 を取り出して掛けています。
最後に1つだけ残った 35 が答えです。ふだんの書き方にすると (3 + 4) × 5 で、確かに35になります。
先読みも、かっこの対応を探す必要もありません。 左から1つずつ読むだけで済むので、コンピュータが式を計算するときの形として使われます。
ふだんの書き方から直す手順
かっこの内側から、演算子を後ろへ移していくのが確実です。
(A + B) × (C − D) で試します。
- 左のかっこ (A + B) → A B +
- 右のかっこ (C − D) → C D −
- この2つを × でつなぐので、× を最後に置く → A B + C D − ×
かっこがない式では、掛け算・割り算を先にまとめます。A + B × C なら、先に B × C を「B C ×」にしてから、A と足すので「A B C × +」です。
逆から直す手順
逆ポーランド記法をふだんの書き方に戻すときも、スタックの手順がそのまま使えます。数の代わりに式の一部を積むと考えます。
「A B C × +」なら、A・B・C を積み、× で B と C を取り出して「B × C」を積む。+ で A と「B × C」を取り出して「A + B × C」。これが元の式です。
前に書く記法もある
演算子を前に書く記法をポーランド記法(前置記法)と呼びます。A + B は「+ A B」です。考案した数学者がポーランドの人だったことから、この名前が付きました。その後ろ向き版なので「逆」ポーランド記法です。
| 記法 | 演算子の位置 | A + B の書き方 |
|---|---|---|
| ポーランド記法(前置) | 前 | + A B |
| 中置記法 | あいだ | A + B |
| 逆ポーランド記法(後置) | 後ろ | A B + |
応用情報では、式を木の形(構文木)で表して、たどる順番によってどの記法になるかを問われることもあります。左の枝・右の枝・自分の順に書き出すと、逆ポーランド記法になります。
覚え方:演算子は、材料がそろってから
逆ポーランド記法は、計算に使う2つの数がそろってから、演算子を書く書き方です。
料理でいえば、材料を並べてから「混ぜる」と書く順番です。だから、演算子が出てきた時点で、その前に数が2つ以上積まれていなければおかしい。選択肢を読むときは、演算子の位置で、積まれている数が足りているかを確かめれば、崩れた並びを見抜けます。
試験ではこう出る
科目A(旧・午前)の基礎理論分野で出ます。多いのは、ふだんの書き方の式を逆ポーランド記法に直させる問題と、その逆の問題です。スタックを使った計算の途中経過を問う形もあります。応用情報では、構文木をたどって得られる記法を問う形や、スタックの最大の深さを答えさせる形に広がります。
解くときは、スタックの中身を1手ずつ書き出すのが確実です。演算子のところで数が2つそろっていなければ、その選択肢は誤りです。直す問題では、かっこの内側から順に演算子を後ろへ移してください。外側から手を付けると、どの演算子がどの2つにかかっているのかを見失います。
関連する用語
- スタック
- 後に入れたものから先に取り出すデータ構造。逆ポーランド記法の計算に使う
- 中置記法
- 演算子を2つの数のあいだに書く、ふだんの書き方。A + B の形
- ポーランド記法
- 演算子を2つの数の前に書く記法。+ A B の形で、前置記法とも呼ぶ
- 構文木
- 式の組み立てを木の形で表したもの。たどる順番を変えると各記法が得られる
- 計算量
- データが増えたときに処理時間がどう伸びるかの指標
ミニクイズ
式 (A + B) × (C − D) を逆ポーランド記法で表したものはどれか。
正解は 3番:A B + C D − ×
逆ポーランド記法では、演算子を、それが計算する2つの数の後ろに書きます。(A + B) は「A B +」、(C − D) は「C D −」になり、最後にこの2つを掛けるので、× を末尾に置いて「A B + C D − ×」です。「A B C D + − ×」は、先に C と D を足してしまう並びで、かっこの意味が変わっています。「+ A B × − C D」は演算子を前に書くポーランド記法の形に近く、並びも崩れています。「A B + × C D −」は、× の時点で積まれている数が1つしかないため、計算できません。
最終更新:2026-09-21