算法与数据结构-博弈论

本文探讨了博弈论在算法与数据结构中的应用,通过简单的取石子游戏阐述了P状态和N状态的概念,并拓展到更复杂的Nim游戏和图游戏。通过Sprague-Grundy函数和Nim和,解释了如何判断游戏的胜负策略,并介绍了如何将这些理论应用于解决实际的游戏问题。最后,文章提供了一个关于Alice和Bob的游戏实例,展示了如何利用博弈论的策略来决定获胜者。
摘要由CSDN通过智能技术生成

游戏A 简单博弈
有两个游戏者:A和B。有21颗石子。两人轮流取走石子,每次可取1、2或3颗。A先取。取走最后一颗石子的人获胜,即没有石子可取的人算输。

如果剩下1、2或3颗石子,那么接下来取的人就能获胜;如果剩下4颗,那么无论接下来的人怎么取,都会出现前面这种情况,所以接下来取的人一定会输;如果剩下5、6或7颗石子,那么接下来取的人只要使得剩下4颗石子,他就能获胜。0,4,8,12,……都是下一个取石子者的必败状态。现在有21颗石子,21除以4的余数是1,所以先走者有必胜的策略,他第一次只要取走1颗石子,以后每一次都保证剩下的石子是4的倍数就行了。

P状态和N状态
就像第一个游戏一样,状态0,4,8,……是刚才走步的人的必胜状态,我们称之为P状态
而1,2,3,5,6,7,……都是下一个走步的人的必胜状态,我们称之为N状态。
我们可以从终止状态出发,推出每一个状态,指出它是P状态还是N状态。

现在对游戏1略微扩展一下。
有一个决策集S,S中的元素是正整数。游戏的规则大致与游戏1一样,只是现在每次可以取的石子数必须是S中的元素。
如果S={1,2,3},那么就是游戏1。
大家分析一下,当S={1,3,4}的时候,哪些状态是P状态,哪些是N状态。
我们发现P状态是{0,2,7,9,14,16,……},N状态是{1,3,4,5,6,8,10,……}。
规律是如果n除以7的余数是0或2,那么状态n就是P状态,否则就是N状态。
如果游戏开始时,石子总数是100,那么这是一个P状态,也就是说后走的人有必胜策略。


游戏B Nim游戏
有三堆石子,分别含有x1,x2和x3颗石子。两人轮流取石子ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值