過去ログ

uchinyan
(少し補足修正しました。)
はい,こんにちは。さて,今回の問題は...
要は,いかにうまく規則性をつかむかですね。すべての作業が終わってから,逆に考えました。

まず,それぞれの作業の逆操作は,
作業1の逆操作 机の上のカードをとって手に持った束の一番上にのせる。
作業2の逆操作 手に持った束の一番下のカードを一番上にのせる。
作業3の逆操作 机の上のカードの束の一番上から1枚とって手に持った束の一番上にのせる。
です。カードの束の一番上を一番左に書くとすると,机の上にすべてのカードのある状態は,
1000, 999, 998, ..., 3, 2, 1
です。これから逆操作を行ったときの,机にあるカードの枚数,手にあるカードの枚数,手にあるカードの束を書いてみると
1000: 0: 
0999: 1: 1000
0998: 2: 999, 1000 <−−−−− 999 を机からもってきた
0998: 2: 1000, 999
0997: 3: 998, 1000, 999
0997: 3: 999, 998, 1000 <−−−−− 999 が一番上
0996: 4: 997, 999, 998, 1000
0996: 4: 1000, 997, 999, 998
0995: 5: 996, 1000, 997, 999, 998
0995: 5: 998, 996, 1000, 997, 999
0994: 6: 995, 998, 996, 1000, 997, 999
0994: 6: 999, 995, 998, 996, 1000, 997 <−−−−− 999 が一番上
...
以下,逆操作を続けて,999 が一番上になる場合を考察すると,机から 999 をもってきたときより後の場合は,
999 が一番上になったときに手にあるカードの枚数の分だけ下から上にカードをもってきて,初めて,再度,999 が一番上になります。
このとき,カードを下から上にもっていく前に,机から 1 枚カードをもってきて,はさむので,カードの枚数は 2 倍になります。
(999 を机からもってきた場合だけは,はさむのが 1 枚少なくなるので例外。)
そこで,999 が一番上になるのは,手にあるカードの枚数が,最初の 3 から倍々に増えていった,3 * 2^○ 枚のとき,と分かります。
これを満たす 1000 以下で最大の数は,3 * 2^8 = 3 * 256 = 768 なので,
手にあるカードが 768 枚,机にあるカードが 1000 - 768 = 232 枚のとき,999 は一番上になります。
後は,残りの 232 枚を手に移動すればいいですが,
231 枚までは,手にあるカードの束の一番上にのせ,一番下を一番上に移動するので,999 は 2 枚ずつ下に行きます。
最後の 1 枚だけは,一番上にのせるだけなので,999 は,1 枚下に行くだけです。
そこで,999 は,一番上から 231 * 2 + 1 = 463 枚下にずれるので,一番上から 463 + 1 = 464 番目になります。
ネコの住む家   8月31日(金) 0:00:14   MAIL:uchi@sco.bekkoame.ne.jp   30600

過去問題一覧へ戻る