数30游戏的必胜或者最大化胜利的策略

xxMix 2010-11-27 02:15:36
数30游戏的必胜或者最大化胜利的策略

数30游戏,一般由两个人玩,两个人轮流数数,每次数数,只能数1个,或者2个,最后,谁数到30,算谁赢。
比如:
A:1
B: 2,3
A: 4,5
B: 6
... ...
A: 27
B: 28. 29
A: 30 ---A赢了。

想了几天,也没想出什么必胜法则,不过我有一个计算策略的方法:

1.如果A\B每次都只数1个数,那么最多15轮游戏。因为每轮数据只是1或2,所以得出集合A的元素个数=2^15=32768,显然,集合A包括了所有解,而且这其中还有大量的无效数据。

2.对这个3万多条数据,进行验证,然后把有效的数据,存入数据库,格式:
[A/B][以A开始数数的整个过程字符串]
比如:A,122121212212...
B,21221112...
然后,在每一步进行部分匹配查找,可以得出这样走的胜率。但只知道胜率,我觉得并无意义。


不知道各位大大有没有必胜算法?如果没有,那么,有什么好的算法以及方式,让赢的可能更大?

如果上面考虑出来了,再考虑一下一般化:
1.人数为N1∈[[2,∞),但数数还是按顺序执行。N1为整数。

2.最大数字为N2∈[30,∞)。N2为整数。


3.可以随机选择从谁开始,比如从2号开始,那么就是2号->3号->...->N号->1号->2号->...

4.可以随机选择,数到最后一个数字,是赢还是输
...全文
2159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pmars 2010-11-27
  • 打赏
  • 举报
回复
lz看看“巴什博奕”,看看是否是你想要知道的!
xxMix 2010-11-27
  • 打赏
  • 举报
回复
先手也可以必胜。
先2,
后方报1,先就报2;
后方报2,先就报1。

这样总给对方留下3n+1个,先手必胜。
但这种方法,后手的话,并不能保证必胜。
xxMix 2010-11-27
  • 打赏
  • 举报
回复
多谢,果然和我的验证结果一致。。。
FancyMouse 2010-11-27
  • 打赏
  • 举报
回复
数30的话先手必败的。先手数1个后手就数2个,先手数2个后手就数1个。必定是后手数到30。

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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