向大家请教一个有关算法的问题,望赐教。
有N颗石子,把他们分成M堆,现在由两人来分别从各堆石子里来拿石子,谁拿到最后的石子由谁为负。
拿石子的规则如下:
石子的个数不限,但不能同时从两堆或以上的石子中拿石子。
初步分析如下:
谁拿到最后一颗石子为输,那怎样才能避免不拿到最后一颗石子呢。
如果只有一堆,很显然则谁先拿只要剩下一颗则肯定获胜。
如果有两堆,则当最后两堆都只剩一个时,谁先拿谁胜。
如果有三堆,则当最后每堆都只剩下一个时,谁先拿谁将负。
以上可能出现的几种情况,其他当然还有很多。
现在这个问题不知能不能编程解决。如果编程的话,有两个问题不太好解决,一是石子的总数不定,二是分成几堆也不能确定。不知能否用程序解决。
这是和朋友玩的一个小游戏,不知能不能用程序找用必胜的方法。
现在还不清楚怎样给分,因刚刚加入论坛,分数有限,只能有100分的报酬,并望同时告知应怎样给分。
谢谢。