プログラミング的思考への練習問題【2】
コンピュータがなくてもプログラミング的思考を勉強できる素材。
今日は2問目になります。
トランプを準備します。
赤い札10枚
黒い札10枚
色がわかればなんでもよいのでトランプである必要もないのですが
身近に2色を表現できるのがトランプだったので。
【練習問題】
赤い札2枚と黒い札2枚の合計4枚あります。
裏返しに4枚を手に持ち、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
赤か黒かどちらかですね。たとえば赤が見えたとします。
今、手には3枚のカードを裏返しで持っています。
一番上の1枚を一番下へ入れます。
下に入れた後、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
赤か黒かどちらかですね。
この時、最初に表に出した色とは反対の色、ここでは黒を出したい。
今、手には2枚のカードを裏返しで持っています。
一番上の1枚を一番下へ入れます。
下に入れた後、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
赤か黒かどちらかですね。
この時、2回目の色とは反対の色、ここでは赤を出したい。
最後に1枚残っているので、表にすると、黒を出したい。
上記のすべてを実現する、カード4枚の初期配置はどうなっているか。
【解説】
赤黒赤黒と出したいのですが、単純に赤黒赤黒と並べてもこれはうまくいきません。
どうしてかっていうと、1枚表に出したら次の一枚は最下層に行ってしまうからです。
一番最初は表にしたら赤が出たという事ですから、一番上は赤ですね。
【カードの初期手持ちイメージ】
赤
○
△
□
【赤を出した後の手持ちイメージ】
○
△
□
【1枚を最下層に入れた後の手持ちイメージ】
△
□
○
その次は1枚を一番下に入れて3枚目を表に出すわけですから、3枚目(△)は黒になります。
【カードの初期手持ちイメージ】
赤
○
黒
□
【黒を出した後の手持ちイメージ】
□
○
という配置になります。
次は赤を出せばいいのですが、またここで1枚後ろにしますから
○
□
となります。よって○は赤となり□は黒となります。
ですから、答えは
赤
赤
黒
黒
となります。
簡単すぎでしょうが、と思いましたよね。
さて、本当の問題です。
【本当の問題】
赤い札10枚と黒い札10枚の合計20枚あります。
裏返しに20枚を手に持ち、一番上の1枚を場に表にして出します。
ここでは赤を出してください。
今、手には19枚のカードを裏返しで持っています。
一番上の1枚を一番下へ入れます。
下に入れた後、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
ここでは黒を出してください。
今、手には18枚のカードを裏返しで持っています。
一番上の1枚を一番下へ入れます。
下に入れた後、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
ここでは赤を出してください。
今、手には17枚のカードを裏返しで持っています。
一番上の1枚を一番下へ入れます。
下に入れた後、一番上の1枚を場に表にして出します。
表にして見えた色はなんでしょうか。
ここでは黒を出してください。
というように、交互に赤と黒を出していく時のカードの初期配置どうなるか
というのをやってみましょう。
単純にパズルの問題なんですが、論理的に考えていかないと解けません。
答えはまたどこかのタイミングで。