ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

博弈论——威佐夫博弈原理与证明

2022-02-14 18:31:12  阅读:180  来源: 互联网

标签:lfloor mathbb 博弈 博弈论 frac rfloor 奇异 佐夫 局势


简介

威佐夫博弈的定义是:

有两堆若干个物品,两人轮流从某一堆物品中取至少一个或同时从两堆中取相同数量的物品,不能不取,最后把物品全部取完者胜利

现在给出两堆物品的数量 \(n,m\) 判断先手是否有策略必胜

推理

我们用 \((a,b)\) 表示第一堆数量为 \(a\) ,第二堆数量为 \(b\) 的局势,并规定 \(a\leq b\) ,因为所有局势经过互换后都能表示为这样的形式

定义一个 奇异局势 为先手必输的局势,可以发现 \((0,0),(1,2),(3,5)\)​ 等都是奇异局势,设 \(P_k\)​ 为包含了前 \(k\)​ 个奇异局势中的所有数字的集合,设 \(a_{k+1}=\operatorname{mex}(P_k),b_{k+1}=a_k+k\) ,观察规律,猜想第 \(k+1\)​ 个奇异局势为 \((a_{k+1},b_{k+1})\)​ ,下面我们来证明这一猜想:

先证明几个命题:

  1. 任何自然数都包含在一个且仅在一个奇异局势中

    用归纳法:

    • \(n=0\) 包含在第一个奇异局势中

    • 若满足 \(n\leq k\) 的所有自然数都包含在前 \(m\) 个奇异局势中,那么由 \(\operatorname{mex}\) 的定义可知,第 \(m+1\) 个局势中包含 \(k+1\)

    综上,任何自然数都包含在一个奇异局势中

    若自然数 \(b\) 包含在两个奇异局势中,那么显然只有一种情况 \((a,b),(b,c)\) 这与 \(\operatorname{mex}\) 的定义矛盾,若包含在 \(m\geq 2\) 个奇异局势中,那么任取两个奇异局势都不满足条件

    综上,任何自然数都仅包含在一个奇异局势中

  2. 任何操作都可以将奇异局势变为非奇异局势

    我们只要证明:任何操作都无法将奇异局势变为另一个奇异局势即可

    设存在操作能将第 \(i\) 中奇异局势 \((a_i,b_i)\) 变为第 \(j\) 种奇异局势 \((a_j,b_j)\) ,由于 \(b_i-a_i=i,b_j-a_j=j\) 所以无法通过两堆同时取相同数量物品的操作转变,而由命题1可得这两个局势中的四个数互不相等,所以改变一堆数量的操作最多使两数相等,另两数仍不等,所以这种操作不存在,得证

  3. 所有非奇异局势都可以通过适当方法转换为奇异局势

    设集合 \(A=\{a_i\mid i\in \mathbb{N}\},B=\{b_i\mid i\in\mathbb{N}\}\) ,由命题1可知: \(A\cup B=\mathbb{N}\)

    对于局势 \((a,b)\) ,若 \(a\not\in A\) 且 \(b\not\in B\) ,则 \(a\in B\) 且 \(b\in A\) ,互换 \(a,b\) 后即可得到 \(a\in A\) 或(且) \(b\in B\) 的情形,下面我们对(或)这一情形的所有情况进行分类讨论:

    • \(a=a_k,b>b_k\) :第二堆取 \(b-b_k\)
    • \(a=a_k,b<b_k\) :两堆同时取 \(a-a_{b-a}\)
    • \(a>a_k,b=b_k\) :第一堆取 \(a-a_k\)
    • \(a<a_k,b=b_k\) :互换两堆后可转化为 \((b_k,a)=(b_k,b_i)\) 的情况,而 \(a^{'}=b_k=a_k+k>a+k>a-i=b_i-i=a_i\) ,所以转化为了 \(a^{'}>a_i,b=b_i\) 的情况,也就是上一种情况,按之前的策略转化即可

    综上,命题得证

由命题2,3可得我们构造的奇异局势满足先手必输,这一构造策略是正确的

那么如何快速判断一个局势是否是奇异局势呢?这需要引入 beatty定理

  • 设 \(a,b\) 是正无理数且 \(\frac{1}{a}+\frac{1}{b}=1\) ,记 \(P=\{\lfloor na \rfloor\mid n \in \mathbb{Z^+}\},Q=\{\lfloor mb \rfloor\mid m \in \mathbb{Z^+}\}\) ,则 \(P\cup Q=\mathbb{N^*},P\cup Q=\emptyset\)

证明:

由 \(\frac{1}{a}+\frac{1}{b}=1\) 且 \(a,b\) 为整数可得 \(a,b>1\)

所以 \(\lfloor(n+1)a\rfloor = \lfloor na+a\rfloor >\lfloor na\rfloor+1 > \lfloor na \rfloor\) ,所以任意整数最多在 \(P,Q\) 中出现一次,不会重复,满足集合的互异性

若 \(k\in P,k\in Q\) ,则有 \(k< na <k+1,k< mb <k+1\) ,进一步得到:

\[\frac{n}{k+1}<\frac{1}{a}<\frac{n}{k},\frac{m}{k+1}<\frac{1}{b}<\frac{m}{k}\\ \Rightarrow\frac{n+m}{k+1}<\frac{1}{a}+\frac{1}{b}=1<\frac{n+m}{k}\\ \Rightarrow k<m+n<k+1 \]

与 \(m,n\) 是整数矛盾,所以 \(P\cap Q=\emptyset\)

若 \(k\not\in P\) 且 \(k\not\in Q\) ,则有 \(\lfloor na\rfloor < k < \lfloor(n+1)a\rfloor,\lfloor mb\rfloor < k < \lfloor(m+1)b\rfloor\) ,进一步得到:

\[na<k\leq\lfloor(n+1)a\rfloor-1\\ \Rightarrow na<k<(n+1)a-1\\ \Rightarrow \frac{n}{k}<\frac{1}{a}<\frac{n+1}{k+1} \]

同理,有关于 \(b\) 的结论,两式相加得:

\[\frac{m+n}{k}<\frac{1}{a}+\frac{1}{b}<\frac{m+n+2}{k+1}\\ \Rightarrow m+n<k<k+1<m+n+2 \]

而 \(m+n+2\) 与 \(m+n\) 之间只包含了一个整数,矛盾,所以 \(P\cup Q=\mathbb{N^*}\)

而代表奇异局势第一个和第二个数的集合 \(A,B\) 如果忽略 \(0\) ,也满足beatty定理的形式

所以 \(a_i\) 可以表示为 \(\lfloor ix\rfloor\) ,\(b_i\) 可以表示为 \(\lfloor ix\rfloor+i=\lfloor i(x+1)\rfloor\) ,所以有:

\[\frac{1}{x}+\frac{1}{x+1}=1,x=\frac{\sqrt5+1}{2} \]

巧妙之处在于,这正好是 黄金分割率

至此,我们得到了第 \(i\) 个奇异局势的通项公式:

\[(\lfloor\frac{\sqrt5+1}{2}i\rfloor,\lfloor\frac{\sqrt5+3}{2}i\rfloor) \]

代码

Luogu P2252

#include<bits/stdc++.h>
using namespace std;

const double r = (sqrt(5.0) + 1.0) / 2.0;

int main()
{
    int a, b;
    cin >> a >> b;
    if(a < b)
        swap(a, b);
    cout << !(b == (int)((a - b) * r)) << endl;
    return 0;
}

标签:lfloor,mathbb,博弈,博弈论,frac,rfloor,奇异,佐夫,局势
来源: https://www.cnblogs.com/tttkf/p/15893720.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有