0からkまでの数を2進法で書き下したときの1の個数をskとしよう。
例えば、0から5までを2進法で書くと0,1,10,11,100,101となる。7つの1があるのでs5=7となる。
数列S={sk∣k≥0}は{0,1,2,4,5,7,9,12,…}で始まる数列となる。
2人で行うゲームがある。ゲーム開始前に、ある数nを選んでおく。カウンタcがあり、それは0から始まる。それぞれの局面で、対局者は1からnまで(nを含む)のある数を選び、その数だけcを増やす。その結果得られるcの値は数列Sの要素でなければならない。もしそのような有効な指し手を打てない場合、対局者は負けとなる。
例を示そう:
n=5とし、cは0から始まる。
先手は4を選び、cは0+4=4となる。
後手は5を選び、cは4+5=9となる。
先手は3を選び、cは9+3=12となる。
以下同様
留意すべき点として、cは常にSに属していなければならない、そしてそれぞれの対局者はたかだかnまでの数でcを増加させていくことができる。
先手必勝となるように先手が最初の局面で選べる一番大きい数字をM(n)とし、そしてそのような指し手がない場合はM(n)=0としよう。例えばM(2)=2,M(7)=1,M(20)=4となる。
1≤n≤20に対する∑M(n)3=8150がすでに与えられている。
1≤n≤1000に対する∑M(n)3を求めよ。
(* 数列Sの表記法がどう見ても集合。)