平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

コマネチ大学数学科第6講

また見逃した。

おれの解答

 逆に考えるんだ、「最後の1枚、直前は2枚、その前は4枚……」と考えるんだ。
 手元に2の累乗枚があった場合は、その1番上の1枚目が最後まで残るんだ。
 最初のスタートは200枚だから、そこから減らしていって2の累乗になるのは、72枚を捨てて128枚になったときなんだ。
 72枚目に捨てるカードは144番のカードなんだ。
 だから145番のカードが最後まで残るんだ。

mixiで見つけた解答

また、今回の問題に関しては、補数を与えて引き算するという方法もありますが、 
実は1ビット巡回シフトさせるだけで求めることができます。 

200(dec)=11001000(bin) 
1ビット左に巡回シフト:10010001(bin) 
10010001=128+16+1=145 

偶然ではなく、1枚おきに捨てていく方法ならこれで出ます。