Project Euler 459(3)

http://projecteuler.net/index.php?section=problems&id=459

こういう交互に手を出して最終的に行き詰ったら負け、というゲームはパターンが決まっている。状態sに対して関数f が存在して、

f (s) ∈ { 0, 1 }

で、最終状態sendのとき、f (send) = 0、f (s) = 0のとき、sの次の状態s'は必ずf (s') = 1を満たし、f (s) = 1のとき、sの次の状態に必ずf (s') = 0となるs'がある。すなわち、f (s) = 0のときsは負け状態、f (s) = 1のときsは勝ち状態となる。
このf を見つければよいが、そんなに簡単ではない。そのためにまずは1次元で実験をする。ここ数日でようやく実験法がわかって、f の形が見えてきた。ただ、確定はできていない。もっと広い範囲を調べる必要がある。その方法も考えてあってコードは書きかけ状態。また、もっと自動的にf を調べる方法も考えてあるが、それが本当かどうかわからない。