共通テスト(情報) 過去問
令和6年度(2024年度)本試験
問4 (<旧課程>情報関係基礎(第1問) 問4)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

共通テスト(情報)試験 令和6年度(2024年度)本試験 問4(<旧課程>情報関係基礎(第1問) 問4) (訂正依頼・報告はこちら)

次の文章(c)を読み、問いに答えよ。

c  箱A・B・Cがある。箱Aは空で、箱Bにはリンゴが一つ、箱Cにはミカンが一つ入っている。箱Bと箱Cに入っている果物を3回の操作で入れ替えたい。ただし、1回の操作では一つの果物を別の箱に移動させることしかできず、一つの箱には果物が一つしか入らない。「箱Bのリンゴを箱Aに移動」から始めた場合の操作順は、「箱Bのリンゴを箱Aに移動」→「( エ )」→「( オ )」となる。

( エ )にあてはまるものを1つ選べ。
  • 箱Aのリンゴを箱Bに移動
  • 箱Aのリンゴを箱Cに移動
  • 箱Bのリンゴを箱Aに移動
  • 箱Bのミカンを箱Cに移動
  • 箱Cのミカンを箱Aに移動
  • 箱Cのミカンを箱Bに移動

正解!素晴らしいです

残念...

この過去問の解説 (2件)

01

この問題は、箱の内容を入れ替えるパズルです。初期状態は「箱A:空、箱B:リンゴ、箱C:ミカン」で、箱BとCの中身を入れ替えることが目標です。ただし1回の操作で1つの果物しか動かせず、各箱には果物が1つしか入れられないため、空の箱(箱A)を一時的な置き場所として使います。第1操作「箱BのリンゴをAへ移動」後の状態は「箱A:リンゴ、箱B:空、箱C:ミカン」です。次に箱Bが空なので「箱CのミカンをBへ移動」すると「箱A:リンゴ、箱B:ミカン、箱C:空」となります。最後に「箱AのリンゴをCへ移動」すると「箱A:空、箱B:ミカン、箱C:リンゴ」が完成し、目標通りBとCが入れ替わります。よって(エ)は「箱CのミカンをBへ移動」です。

選択肢1. 箱Aのリンゴを箱Bに移動

第1操作後の状態は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱AのリンゴをBへ移動」すると「箱A:空、箱B:リンゴ、箱C:ミカン」となり、元の状態に戻ってしまいます。目標の入れ替えにつながりません。正しくありません。

選択肢2. 箱Aのリンゴを箱Cに移動

第1操作後は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱AのリンゴをCへ移動」しようとしても、箱Cにはすでにミカンが入っており、1箱に1果物しか入れられないルールに反します。実行できない操作です。

選択肢3. 箱Bのリンゴを箱Aに移動

第1操作後は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱BのリンゴをAへ移動」しようとしても、第1操作後の箱BはすでにEmpty(空)です。リンゴは存在しないため実行できません。

選択肢4. 箱Bのミカンを箱Cに移動

第1操作後は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱BのミカンをCへ移動」しようとしても、この時点で箱BはEmpty(空)であり、ミカンは存在しません。実行できません。

選択肢5. 箱Cのミカンを箱Aに移動

第1操作後は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱CのミカンをAへ移動」しようとしても、箱Aにはすでにリンゴが入っており、1箱1果物のルールに反します。実行できません。

選択肢6. 箱Cのミカンを箱Bに移動

第1操作後は「箱A:リンゴ、箱B:空、箱C:ミカン」です。「箱CのミカンをBへ移動」すると「箱A:リンゴ、箱B:ミカン、箱C:空」となり、最後に「箱AのリンゴをCへ移動」で「箱A:空、箱B:ミカン、箱C:リンゴ」が完成します。目標が達成できる正しい操作です。正解の選択肢です。

まとめ

空の箱を「一時的な置き場所」として使う考え方がポイントです。1箱1果物のルールがあるため、2つの箱の中身を直接入れ替えることはできません。空の箱を仲介させることで3回の操作で入れ替えが完成します。手順を追って状態を確認しながら考えましょう。

参考になった数0

02

箱Cにリンゴ、箱Bにミカンが入っている状態にすることが目標です。

まず、問題文に「箱Bのリンゴを箱Aに移動」から始める、とありますので、その指示に従っていきます。(図1と図2)

次にできることは、箱Cのミカンを箱Bに移動することです。(やれることは、これしかありません!)(図3)。そして最後に箱Aのリンゴを箱Cに移動すると箱Cにリンゴ、箱Bにミカンが収まり、目標達成となります。(図4)

これより、解答欄(エ)には、「箱Cのミカンを箱Bに移動」の選択肢の番号が入ります。

 

選択肢1. 箱Aのリンゴを箱Bに移動

最初の操作で箱Bのリンゴを箱Aに移動しているので、「箱Aのリンゴを箱Bに移動」すると、最初の状態に戻りますが、これで2回操作(移動の作業)したことになります。3回の操作しかできませんから、あと1回で箱Cにリンゴ、箱Bにミカンが入っている状態にすることは不可能です。よって、間違いです。

選択肢2. 箱Aのリンゴを箱Cに移動

箱Cには、もともとミカンが入っています。一つの箱には果物が一つしか入らないので、「箱Aのリンゴを箱Cに移動」することはできません。よって、間違いです。

選択肢3. 箱Bのリンゴを箱Aに移動

最初の操作で箱Bのリンゴを箱Aに移動しているので、箱Bには、何も入っていません。よって、「箱Bのリンゴを箱Aに移動」することは不可能です。よって、間違いです。

選択肢4. 箱Bのミカンを箱Cに移動

最初の操作で箱Bのリンゴを箱Aに移動しているので、箱Bには、何も入っていません。よって、「箱Bのミカンを箱Aに移動」することは不可能です。よって、間違いです。

選択肢5. 箱Cのミカンを箱Aに移動

最初の操作で箱Bのリンゴを箱Aに移動しているので、箱Aにはリンゴが入っています。一つの箱には果物が一つしか入らないので、「箱Cのミカンを箱Aに移動」することはできません。よって、間違いです。

選択肢6. 箱Cのミカンを箱Bに移動

冒頭の説明で述べた理由により、正しい選択肢です。

まとめ

箱に入ったリンゴとミカンを入れ替える問題でしたが、プログラミングの際に、2つの変数の値を交換する(値を入れ替える)ときも、全く同じ作業となります。片方の果物を一時的に入れておく、もう一つの箱を使用することがポイントです。

参考になった数0