基礎理論|平成21年度 秋期 ITパスポート試験 問54
数字が書かれた箱を図のように積み上げてある。表に示す操作を,操作 1,操作 2,操作 3,操作 4 の順に行った場合,操作 4 が終わったときの箱の状態はどれか。
```
〔図〕積み上げた箱(上から下へ)
┌───┐
│ 4 │ ← 一番上
├───┤
│ 3 │
├───┤
│ 2 │
├───┤
│ 2 │
├───┤
│ 1 │ ← 一番下
└───┘
〔表〕
| 操作名 | 操作の内容 |
|---|---|
| 操作1 | 箱を上から二つ取り出し,取り出した箱に書かれた値を加算した値を書いた箱を新たに一番上に積む。 |
| 操作2 | 数字 3 を書いた箱を新たに一番上に積む。 |
| 操作3 | 箱を上から三つ取り出し,取り出した箱に書かれた値の平均値を求める。その平均値を書いた箱を新たに一番上に積む。 |
| 操作4 | 箱を上から二つ取り出し,取り出した箱に書かれた値の差の絶対値を求める。その絶対値を書いた箱を新たに一番上に積む。 |
〔選択肢の図〕いずれも積み上げた箱(上から下へ)
ア … 0
イ … 2 / 1
ウ … 4 / 2 / 1
エ … 1 / 2 / 2 / 1
```
- 箱が1つ。上から「0」
- ✓ これが正解箱が2つ。上から「2」「1」
- 箱が3つ。上から「4」「2」「1」
- 箱が4つ。上から「1」「2」「2」「1」
解説
取り出すのも積むのも一番上なので、順に追えば出ます。
積み上げた箱は、取り出すのも積むのも一番上だけです。この出し入れの形をスタックと呼び、後入れ先出しになります。初めの並びは、上から四、三、二、二、一の五つでした。初めの操作は、上の二つを抜いて足すことでした。四と三で七になり、それを積むので上から七、二、二、一です。二つ目の操作は、三を積むだけなので五つに戻ります。三番目の操作では、上から三つを抜いて平均を取ります。三と七と二を足すと十二で、三で割ると四になりました。積むと、上から四、二、一の三つになります。最後の操作では、抜いた二つの差の絶対値を積みます。四と二の差は二なので、これを積むと上から二、一の二つです。この形を挙げた肢が当たり、箱は二つだけ残りました。シラバスも、スタックをデータの持ち方の用語に挙げています。
ほかの選択肢はなぜ違うのか
- 箱が一つで、零だけが残ると述べた肢のほうです。最後まで取り出し続けたような形に見えます。ところが四つ目の操作でも、一つは積み直しました。下に残っていた一も、動かされていません。箱の数が合っていませんでした。
- 上から四、二、一の三つを挙げた肢というのが、こちらです。これは三つ目の操作を終えた時点の並びでした。設問が問うているのは、四つ目まで終えた後です。あと一手だけ進めれば、二と一の二つになります。途中で止めた形になっていました。
- 上から一、二、二、一の四つを挙げた肢が、こちらです。初めの並びに近い形で、四つが残っています。ところが操作を通すと、箱は減っていく側でした。取り出す数のほうが、積む数より多いからです。途中で数え違えると、この辺りに落ちます。
この問題に関係する言葉
- スタック
出典:平成21年度 秋期 ITパスポート試験 問54(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)