第155問の解答


1.問題 [やりとり算

マサルさんトモエさんが、コインを使ってゲームをしました。じゃんけんをして、勝った方は、負けた方の持っているコインの半分をもらえるというゲームです。

 最初、2人とも64枚ずつ持ち、6回勝負したところ、マサルさんコイン79枚になったそうです。(引き分けはありませんでした)

 では、マサルさんから見て、2人の勝負はどのような結果だったのでしょうか。

 「勝ち負け」として、例えば、「勝ち−負け−負け−負け−勝ち−勝ち」ならば、「100011」と答えてください。

2.解答例1(長野 美光さん、popopoさん、CRYING DOLPHINさん他多数)

一回じゃんけんする前2人コイン数x、y枚、じゃんけんした後コイン数x’、y’枚とします。

x枚持っているほうが勝ったことにすると、x’=x+y×1/2、y’=y×1/2となります。
このときx’−y’=x、y=y’×2を得るが、x’−y’=x>0より、x’>y’。

すなわち、じゃんけん後コイン数多い方じゃんけんを勝ったことになり、じゃんけん前コイン数一意的に決まります。

以上より、最終結果から逆にたどっていくと下記の通りとなるので、マサルさん「勝ち−勝ち−勝ち−負け−負け−勝ち」すなわち「111001」と分かります。

参考図1

答:111001

以上


3.解答例2(おりくん、kuri他)

2進数に関係しそうなことは容易に推測できますので、勝ち負けのパターン最終コイン数の結果を比較して、関連をみてみましょう。

問題を簡単にするため、最初のコイン数枚、じゃんけんする回数3回として、ケースごとの結果を下記に示します。ただし、最初はマサルさんが勝つものとします。

参考図2

上図より、最終コイン数(2進数)の1位を除く部分を逆にしたもの勝ち負けのパターンとなっています。

これから、マサルさん最終コイン数792進数にすると100111となるので、勝ち負けのパターン111001と予想されます。

これを検証してみましょう。
解答例1と同様にx、y、x’、y’の2進数表現を考えます。
例えば、x=98(1100012)、y=30(0011112に対して、が負けたとすると
 x’=x×1/2=49(1100012)、
 y’=y+x×1/2=(x+y)×1/2+y×1/2=64+y×1/2=79(0011112
より、負けた方右に1桁シフトし左にを加える勝った方は右にシフトし左にを加える計算になります。

従って、マサルさん最終コイン数79(10011112から見て、一番上位6回目勝ち、次の005回目、4回目負け、次の1113回目、2回目、1回目勝ちを意味することと分かります。

すなわち、1位を除いたものを逆にしたもの勝ち負けのパターンになっています。