向大家请教一个有关算法的问题,望赐教。

wumingdao 2003-02-15 11:32:57
有N颗石子,把他们分成M堆,现在由两人来分别从各堆石子里来拿石子,谁拿到最后的石子由谁为负。
拿石子的规则如下:
石子的个数不限,但不能同时从两堆或以上的石子中拿石子。
初步分析如下:
谁拿到最后一颗石子为输,那怎样才能避免不拿到最后一颗石子呢。
如果只有一堆,很显然则谁先拿只要剩下一颗则肯定获胜。
如果有两堆,则当最后两堆都只剩一个时,谁先拿谁胜。
如果有三堆,则当最后每堆都只剩下一个时,谁先拿谁将负。
以上可能出现的几种情况,其他当然还有很多。
现在这个问题不知能不能编程解决。如果编程的话,有两个问题不太好解决,一是石子的总数不定,二是分成几堆也不能确定。不知能否用程序解决。
这是和朋友玩的一个小游戏,不知能不能用程序找用必胜的方法。

现在还不清楚怎样给分,因刚刚加入论坛,分数有限,只能有100分的报酬,并望同时告知应怎样给分。
谢谢。
...全文
26 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumingdao 2003-02-17
  • 打赏
  • 举报
回复
不是。有任意颗石子,可以分成任意堆,而且每堆可以有任意颗石子,并且每堆和每堆之间的石子数量可以不相等。
规则只有一个,就是一人拿一次,可以拿任意数量的石子,但不能从两堆石子中同时拿,谁拿到最后一颗谁为负。
hairui 2003-02-16
  • 打赏
  • 举报
回复
好象条件不足嘛,是不是倒数第二次只能剩下一颗石子?

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧