令和5年度 秋期 高度試験 午前I 問1

テクノロジアルゴリズム

この問題は2023(R5)秋 高度試験共通 午前Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

逆ポーランド表記法(後置記法)で表現されている式 ABCD×+ABCD - \times + において、A=16A=16B=8B=8C=4C=4D=2D=2 のときの演算結果はどれか。逆ポーランド表記法による式 AB+AB+ は、中置記法による式 A+BA+B と同一である。

解答・解説を読む

正解: 選択肢

逆ポーランド表記法(後置記法) は、演算子を被演算子の後ろに記述する手法であり、コンピュータでの式の評価に用いられます。スタックというデータ構造を用いて、左から順に以下のように計算を進めます。

  1. ABCD×+ABCD - \times +A=16A=16B=8B=8C=4C=4D=2D=2 を代入すると、式は 16 8 4 2  × +16\ 8\ 4\ 2\ -\ \times\ + となります。
  2. 左から順に読み込み、数値であればスタックに積みます(プッシュします)。
    • 状態: [16, 8, 4, 2]
  3. 演算子 - が現れると、直前の2つの数値(4422)を取り出し、424 - 2 を計算します。結果の 22 をスタックに積みます。
    • 状態: [16, 8, 2]
  4. 次の演算子 ×\times が現れると、直前の2つの数値(8822)を取り出し、8×28 \times 2 を計算します。結果の 1616 をスタックに積みます。
    • 状態: [16, 16]
  5. 最後の演算子 ++ が現れると、直前の2つの数値(16161616)を取り出し、16+1616 + 16 を計算します。結果の 3232 をスタックに積みます。
    • 状態: [32]

計算が完了し、最終的な結果は 3232 となります。

各選択肢の解説

  • : 正解です。上記の通り、演算結果は 3232 になります。
  • : 誤りです。中置記法で (16+8)×24(16 + 8) \times 2 - 4 などを誤って評価した可能性がありますが、4646 にはなりません。
  • : 誤りです。演算の順序を誤り、16+(8×4)=4816 + (8 \times 4) = 48 などと計算してしまった場合の結果と考えられます。
  • : 誤りです。各計算手順を取り違え、最終的に 9494 を導出した等の計算ミスが考えられます。