本文主要是介绍1.11 nim,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://icyxiangzi.blog.163.com/blog/static/1697789052010102710296503/
问题分析:
没人每次可以拿一块,或相邻的两块。拿光者胜。
必胜策略:若有奇数个,则取中间一个。以后跟着对手取,保持两边的对称性。若有偶数个,则取中间两个。
扩展问题一:
最后拿光者败。
分析:
设共有x个。
x=1,败。 x=2,胜。 x=3,胜。(取2个)
x=4,败。 x=5,胜。 x=6,胜。
x=7,败。 x=8,胜。
x=4,败,不管石子如何排列。
x=5,取一个,则对手面临x=4的局面,则对手必败,我方必胜。
x=5,取二个,则对手面临x=4的局面,则对手必败,我方必胜。
x=7:我取1个,对手取1个,此时我面临x=5的局面,我方必胜;我取1个,对手取2个,此时我面临x=4的局面,我方必败;我取2个,对手取1个,此时我面临x=4的局面,我方必败;我取2个,对手取2个,此时我面临x=3的局面,我方必胜。此时,无论我方是取1个还是2个,我方均失败。
x=8:我取1个,对手取1个,此时我面临x=6的局面,我方必胜;我取1个,对手取2个,此时我面临x=5的局面,我方必胜;我取2个,对手取1个,此时我面临x=5的局面,我方必胜;我取2个,对手取2个,此时我面临x=4的局面,我方必败。必胜策略:我取一个,无论对手取1个还是2个,我方都必胜。
x=9:我取1个,对手取1个,此时我面临x=7的局面,我方必败;我取1个,对手取2个,此时我面临x=6的局面,我方必胜;我取2个,对手取1个,此时我面临x=6的局面,我方必胜;我取2个,对手取2个,此时我面临x=6的局面,我方必胜。必胜策略:我取2个,无论对手取1个还是2个,我方都必胜。
总结得:当x%3=0时,我方取2个,则必胜;当x%3=1时,我方必败;当x%3=2时,我取1个,则必胜。
扩展问题二:
有一堆石子,每次可以取1到k个,最后取光者胜。
分析:
设有x个。
当1≤x≤k时,则我方必胜。
当x=k+1时,设我取y(1≤y≤k)个,还剩下x-y个,1≤x-y≤k,对方可以一次取光,我必败。
当k+2≤x≤2k+1时,我取x-k-1个(1≤x-k-1≤k),使得还余下k+1个,则我必胜。
当x=2k+2时,设我取y(1≤y≤k)个,还剩下x-y个,k+2≤x-y≤2k+1,对手必胜,我方必败。
当2k+3≤x≤3k+2时,我取x-2k-2个(1≤x-2k-2≤k),使得还余下2k+2个,对手必败,我方必胜。
总结,当x为k+1的整数倍时,我方必败。x=ak+b,我取x-ak-a个,则还余下ak+a个,对方必败。
这篇关于1.11 nim的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!