python博弈论代码_博弈论(示例代码)

一、巴什博弈

假设要报 n 个数,每次最少报一个,最多报 m 个,可得状态式:

若 r =0.先手必败,否则先手必胜

二、威佐夫博弈

有两堆若干物品,两个人轮流以其中取至少一件物品,至多不限,或从两堆中取相同件物品,最后取完者胜,可得:

设两堆初始为 x, y,且 x

若 W = X,则先手必败,否则先手必胜

三、尼姆博弈

有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取最后一件者胜,可得:

把每堆物品异或起来,值为0则先手必败,否则先手必胜

四,斐波那契博弈

有一堆物品,两人轮流取物品,先手最少取一个,至多无上限,但不能把物品取完,之后每次取的物品数不超过上次取的物品数的 二倍且至少为一件,取最后一件者获胜,可得:

先手胜当且仅当 n 不为斐波那契数

五. SG 函数(组合博弈)

mex 求出一堆数中还没有出现的首个自然数

S 表示 x 后继状态

函数满足以下性质:

(1 )函数等于0时,它的后继都不为0

(2 函数不为0时,它的后继一定有为0的

(3 当 x 没有出边时,函数值为0

三个性质对应先手必败的以下性质:

(1 )无法进行任何移动的局面

(2)可以移到先手必败的是先手必胜

(3)所有移动都导致先手必胜的是先手必败

由此可知,函数值为0即先手必败

六.阶梯博弈

有几堆石子,每次可选择第 i 堆中的任意多个移到第 i-1堆中,第1堆可以放到第0堆中,最后无法操作为输,可得:

先手必败当且仅当奇数阶梯上的石子数异或为0

七.反尼姆博弈

与尼姆博弈相似,只是取最后者输,可得:

两种情况:

(1) 所有堆的石子数均大于1

当堆数为奇数时,先手必败,反之先手必胜

(2 至少有一堆石子数大于1

当 SG 不为0时,先手必胜

当 SG 为0时,先手必败

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值