威佐夫(Wythoff)博弈

本文介绍了威佐夫博弈的规则,并通过动态规划解析了游戏的必败态与必胜态。利用博弈论的状态转移方程,得出时间复杂度为O(N*M)的解决方案。此外,还探讨了博弈的数学规律,包括必败态的序列为斐波那契数列的变形,并借助Betty定理证明了这一现象。
摘要由CSDN通过智能技术生成

问题模型

Wythoff博弈:有两堆石子,由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。问现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
 
解题思路

动态规划

比较容易想到直接用博弈论的必败、必胜态进行动态规划:
设两堆石子数量为a和b,给定状态f,若先取者必胜令f(a,b)=1,否则先取者必败令f(a,b)=0,其中a,b都不小于0,易知f(a,b)=f(b,a),所以这里总取b大于等于a。
状态转移方程:
        f(a,b)=1,若存在k使f(a-k,b),f(a,b-k)或f(a-k,b-k)等于0;
        f(a,b)=0,若不存在k使f(a-k,b),f(a,b-k)或f(a-k,b-k)等于0;
动态规划的时间复杂度为O(N*M),其中N,M为两堆石子的数量。
 
公式

其实这个博弈问题的必败态是有规律可循的,前几个必败态的序列为
(0,0)、(1, 2)、(3, 5)、(4, 7)、(6, 10)、(8,13)、(9,15)、(11,18)、(12,20)
比较难看出来序列(a[k],b[k])规律为
      a[k]=k(1+sqrt(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值