算数限界編問38の解答

問題に戻る


<解説>

この問題は、実は有名なゲーム「3山崩し」と同値なゲームです。

「3山崩し」のルールは以下の通りです。
▼イ▼碁石がそれぞれA個、B個、C個集まった3つの山がある
▼ロ▼1つの山を選んで好きなだけ碁石を取ることができる。ただし1度に複数の山から碁石を取ることは出来ない
▼ハ▼先攻・後攻が変わりばんこに碁石を取っていき、最後に碁石を取り尽くした方が勝ち

最初の切断可能箇所は、縦方向10箇所、横方向16箇所、高さ方向18箇所です。
最後に1辺1cmの立方体が残ったとき、切断可能箇所は存在しません。

そこで、今回のゲームは次のように解釈すると、「3山崩し」そのものです。
▽い▽直方体の切断可能箇所が縦方向A箇所・横方向B箇所、高さ方向C箇所ある
▽ろ▽縦方向、横方向、高さ方向のいずれかで直方体を1回だけ切断して2つに分け、好きな方を残す
▽は▽先攻・後攻が変わりばんこに切断していき、最後に切断可能箇所をなくした方が勝ち

さて「3山崩し」の必勝法はよく知られていて、
 『3つの山の碁石の個数を2進数表示し、排他的論理和を計算し、これが0になるような手を作る』 …★
というものです。 
「排他的論理和」とは、繰りあがりのない2進数の足し算のことです。
例えば、「1+0=1」「1+1=0」「1+1+1=1」「1+0+1+1+1=0」といった具合です。

…これではさっぱりわけがわからないと思うので、まずは2進法に直しましょう。
10=1×2×2×2+0×2×2+1×2+0→1010(2)
16=1×2×2×2×2+0×2×2×2+0×2×2+0×2+0→10000(2)
18=1×2×2×2×2+0×2×2×2+0×2×2+1×2+0→10010(2)

10→ 01010  
16→ 10000  
18→ 10010  
  01000 ←排他的論理和

先手は、この排他的論理和が0になるようにすればいいのです。

そのような方法は、8の位(2×2×2の位)が1のものを0にするしかありません。
(排他的論理和がせっかく0になっている位をいじってしまうと、その位の排他的論理和が1になってしまいます)

16と18を2進数に直した数の8の位の「0」を「1」にすると、もとの数より大きくなってしまうので不適です。
よって、10を2進数に直した数の8の位の「1」を「0」にしたときのみ、排他的論理和は00000、つまり0になります。

したがって、01010(2)を00010(2)にする、つまり10を2にすればよいのです。

話を直方体の場合に戻すと、
切断可能箇所がそれぞれ(10,16,18)だったのを、先手が(2,16,18)にすればよいのです。
残った立体は、3×17×19の直方体ですから、食べたのは8×17×19=2584cm3です。

(注1)
★が確かな方法であることの証明は大変難しいのでここでは省略します。
例えば、栗原さんのページに詳しい証明解説があります。

(注2)
★のようなことを知らなくても、試してみれば簡単な必勝形…(2,2,0)(1,2,3)など…はいくつか見つかります。
他にも必勝形はあるので、いろいろ試して見つけてみるといいでしょう。(寧ろそっちの方が一般的な算数としてふさわしい)

正解;2584cm3(のみ)

問題に戻る