同图论(1),博弈论的一些经典的解法不太清楚的可以看参考书。。主要总结一些新奇的东西
哦,如果你是曾经参加数学奥林匹克的大佬(省队水平)估计也不用看,orz,我好菜啊,以前也想进队啊。。
正题:
wythoff的叙述和nim很像(呃,不知道nim的参见nim),有两点不一样:1.棋子只有两堆。2.可以有在两堆中同时取相同的棋子这样的操作。
dalao的解法:递归得到数列,发现是互补数列,做完。QAQ。。。
真正的解法:
定义1.如果两个数列an,bn的并集是自然数集,交集是空集,则称an,bn是互补数列。(这是1954年提出的概念)
引理1,betty定理:设A,B是正无理数,1/A+1/B=1,则数列[A*n]与[B*n](n属于正整数集)是互补数列。
隐藏定理:lambek—moser定理。。这个定理就比较厉害。。。看论文吧(QAQ),上面的引理是推论。
好我们现在就来解wythoff,承接dalao的解法得到两个数列xn,yn。排序后发现yn=xn+n。我们发挥足够的洞察力发现,显然xn=[(1+sqrt(5))*n/2],yn=[(3+sqrt(5))*n/2],同时显然这两个系数满足betty定理的要求,所以他们是互补数列。(哈哈,实际上是反过来,正因为我们先观察出他们是互补数列,所以我们才能求出系数,通过两个方程,一个Betty 的要求,一个根据yn=xn+n得到B=A+1,最后解出了奇怪的东西)。所以我们要根据输入的数据判断是胜局还是败局就是输出那两个数列的值啦。
补充:在数学上,这个还远远没有做完,因为你是根据少量数据总结出这个规律,但还没有证明她们的确是互补数列。这个证明还是相当长的,有兴趣的还是看论文吧,大侄就是各种高级的构造。。。当然算法竞赛上可能就不太重视证明了。大胆猜想,不要证明。(哈哈哈)