|
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 |