第7回 算数問題 (6月4日〜7月5日)
1番から2002番までの番号の書いたボールを円形に並べます。1番から1つおきにボールをどんどんとっていったときに
最後に残るボールの番号はいくらでしょうか。 例 1→3→5...→2001→2→4...のようにとっていきます。
C-Dさんのすばらしい解答(私が理解できるように変形しました)
2002個からボールをとっていって1024個になったとします。そのときにこのボールに番号を付け直して1から1024にすると
偶数の番号を除くことになります。残りのボールに番号を付け直して1〜512にすると偶数のボールを除くことになります。
残りのボールに番号をつけて...と繰り返すと1024個になったときの1番のボールが最後に余ることになります。
つまり2002-1024=978個とった次のボールになります。978個目は 2×978-1=1955ですから1956が最後に残るボールです。
一般的には、2^n<=M<2^(n+1)として M個のボールがあったとき M-2^n個のボールを除いた次の番号でその番号は、
2M-2^(n+1)になるわけですね。
私の変な解答
解答
数字を2進法であらわします。2002は11111010010となります。
1周目は 1の位1を消すことになります。 残り
1 消す 10
10 残る 100
11 消す 110
100 残る 1000
101 消す 1010
110 残る 1100
111 消す 1110
...... ......
11111010010 残る 11111010010
2回目は残りから10の位が1のものを消します。
残り
110 消す 100
100 残る 1000
110 消す 1100
1000 残る 10000
1010 消す 10100
1100 残る 11000
1110 消す 11100
...... ......
11111010010 消す 11111010000
3回目は残りから100の位が0のものを消します。
残り
100 残る 100
1000 消す 1100
1100 残る 10100
10000 消す 11100
10100 残る 100100
11000 消す 101100
11100 残る 110100
...... ......
11111010000 消す 11111001100
4回目は残りから1000の位が1のものを消します。
残り
100 残る 100
1100 消す 10100
10100 残る 100100
11100 消す 110100
100100 残る 1000100
101100 消す 1010100
110100 残る 1100100
...... ......
11111001100 消す 11111000100
5回目は残りから10000の位が1のものを消します。
残り
100 残る 100
10100 消す 100100
100100 残る 1000100
110100 消す 1100100
1000100 残る 10000100
1010100 消す 10100100
1110100 残る 11000100
...... ......
11111000100 残る 11111000100
6回目は残りから100000の位が0のものを消します。
残り
100 消す 100100
100100 残る 1100100
1000100 消す 10100100
1100100 残る 11100100
10000100 消す 100100100
10100100 残る 101100100
11000100 消す 110100100
...... ......
11111000100 消す 11110100100
7回目は残りから100000の位が1のものを消します。
残り
100100 残る 100100
1100100 消す 10100100
10100100 残る 100100100
11100100 消す 110100100
100100100 残る 1000100100
101100100 消す 1010100100
110100100 残る 1100100100
...... ......
11110100100 残る 11110100100
8回目は残りから1000000の位が0のものを消します。
残り
100100 消す 10100100
10100100 残る 110100100
100100100 消す 1010100100
110100100 残る 1110100100
1000100100 消す 10010100100
1010100100 残る 10110100100
1100100100 消す 11010100100
...... 11110100100
11110100100 残る
9回目以降は消える順番に番号をつけました
10100100 1
110100100 5
1010100100 2
1110100100 7
10010100100 3
10110100100 6
11010100100 4
11110100100
以上から
11110100100 が残り 10進数では 1956となります。
ふじさきたつみ さんの解答