airheadの日記: spoiler: 小人のパズル
日記 by
airhead
小人のパズル参照。出題者MYKさんの解答のほうが計算が楽かもしれない。まあ一応私が答えとして考えていたものを以下に。なるべく人に伝わりやすいようにと考えたけど、そうなってないかも。難しいな。
----
1番前の小人を1号と、100番後の小人を100号と呼ぶ。さらに、三色の帽子をそれぞれ0,1,2の三つの数に置き換える。それぞれの帽子に振られた数を計算することで99人助かる。どの色がどの数字かを間違えたり、計算を間違えたりすると水の泡。
100号から答える。
- 自ら計算して、自分の前の99人分の合計を知る(1~99号の合計)。
- その合計を3で割った余りをそのまま答える(1~99号の合計が、3n+0,3n+1,3n+2のいずれであるかを全員に伝える。100号自身の番号と一致するかどうかは運次第)
例)1~99号の合計が86だったら、86=3*28+2だから「2」と答える(「3n+2」を伝えることになる)。
次に99号が答える。
- 自ら計算して、自分の前の合計を知る(1~98号の合計...A)。
- 100号の答えを聞き、自分を含めた99人分の合計を知る(1~99号の合計が、3n+0,3n+1,3n+2のいずれであるか...B)。
- AとBの差から自身の数を知り、答える。
例)1~98号の合計が85だったら、85=3*28+1であるので自分の数が1でないと99人分の合計が「3n+2」にならない。「1」と答える。
次に98号が答える。
- 自ら計算して、自分の前の合計を知る(1~97号の合計...A)。
- 100号の答えを聞き、自分を含めた99人分の合計を知る(1~99号の合計が、3n+0,3n+1,3n+2のいずれであるか...B)。
- 99号の答えを聞きAに加えることで、自身の前後の合計を知る(1~97,99号の合計...A')
- A'とBの差から自身の数を知り、答える。
例)1~97号の合計が83で、99号は「1」と答えた。その和84=3*28+0であるので自分の数が2でないと99人分の合計が「3n+2」にならない。「2」と答える。
次に97号が答える。
- 自ら計算して、自分の前の合計を知る(1~96号の合計...A)。
- 100号の答えを聞き、自分を含めた99人分の合計を知る(1~99号の合計が、3n+0,3n+1,3n+2のいずれであるか...B)。
- 99~98号の答えを聞きAに加えることで、自身の前後の合計を知る(1~96,98~99号の合計...A')
- A'とBの差から自身の数を知り、答える。
例)1~96号の合計が83で、99号は「1」98号は「2」と答えた。その和86=3*28+2であるので自分の数が0でないと99人分の合計が「3n+2」にならない。「0」と答える。
以下同様に。結局3nの部分は計算結果に影響しないので、3で割った余りだけを憶えておけばよい(1号は99人が答えるのを計算しつつ待っていなければならない)。個々の足し算の結果が3以上になる度に3を引いていけば、直接余りを求められる(指を折りながらでもできる)。
spoiler: 小人のパズル More ログイン