一、巴什博奕(Bash Game)
引入问题:有一堆n个物品,两人轮流从堆中取物品,每次取x个(1≤x≤m)。最后取光者为胜。
结论:当n%(m+1)!=0时,先手必胜。
原理:我们可以构造出n=(m+1)*t+s,(0<=s<m+1)
- 当s!=0时,先取者拿走s个,后取者拿走k个(1<=k<=m),那么先取者再拿走m+1-k个。结果还剩下(m+1)*(t-1)个。我们只要始终给对手留下(m+1)的倍数,那么先取者必胜。
- 当s==0时,那么后取者必胜。
变形问题1:有一堆n个物品,两个人轮流从中取物,规定每次取数区间[L,R],当然如果少于L那么必须一次取完,最后取光者为败。
结论:如果0<n%(L+R)<=L,先手必败。
原理:我们可以构造出n=(L+R)*t+s,(0<=s<L+R)
- 当0<s<=L时,先取者拿走k个(L<=k<=R),那么后取者拿走L+R-k个,结果还剩下(L+R)*(t-1)个,当t全部取完的时候,只剩下s个,先取者没得选择只能拿走s个。。。后者只要始终给对手留下(L+R)的倍数,那么先取者必败。
- 当s==0或者L<s<L+R,也是同一个道理,先取者先拿k个,使0<s-k<=L,然后先取者在接下来的操作中始终给对手留下(L+R)的倍数就行,到最后的时候后取者也会被迫选择s-k个,那么先取者必胜。
变形问题2:有一堆n个物品,两个人轮流从中取物,规定每次取数区间[L,R],当然如果少于L那么必须一次取完,最后取光者为胜。
结论:如果0<n%(L+R)<=R,先手必胜。(应该是对的。。。)
原理:我们可以构造出n=(L+R)*t+s,(0<=s<L+R),s的分界线为R,其他同理