市赛遇到一道博弈水题,和队友推了好久好久啊,虽然最后终于做出来了,但还是后悔当初没用心做博弈的题目,害!
巴什博弈
博弈规则
有一堆 n n n个的物品,两个人都足够聪明,轮流从这堆物品中取走物品,规定每次只能取 [ 1 , m ] [1,m] [1,m] 个,规定最后取光者胜或最后取光者输
结论
最后取光者胜:若
n
%
(
m
+
1
)
=
=
0
n\%(m+1)==0
n%(m+1)==0 则先手必败,否则先手必胜
最后取光者输:若
(
n
−
1
)
%
(
m
+
1
)
=
=
0
(n-1)\%(m+1)==0
(n−1)%(m+1)==0 则先手必败,否则先手必胜
推导过程
以最后取光者胜举例
当 n ≤ m n≤m n≤m 时,这时先手的人可以一次取走所有的物品;(先手必胜)
当 n = m + 1 n=m+1 n=m+1 时,这时先手无论取走多少个,后手的人都能取走剩下所有的物品;(先手必输)
当 n = k ∗ ( m + 1 ) n=k∗(m+1) n=k∗(m+1) 时,对于每 m + 1 m+1 m+1 个石子,先手取 i i i 个,后手一定能将剩下的 ( m + 1 − i ) (m+1−i) (m+1−i) 个都取走;(先手必输)
当 n = k ∗ ( m + 1 ) + x ( 0 < x < m + 1 ) n=k∗(m+1)+x(0<x<m+1) n=k∗(m+1)+x(0<x<m+1)时,先手可以先取 x x x 个,之后的局势就回到了上一种情况,无论后手取 i i i 个,先手都能取走剩下的 ( m + 1 − i ) (m+1-i) (m+1−i) 个;(先手必胜)
例题
威佐夫博弈
博弈规则
有两堆各若干的物品,两人轮流从其中一堆中取至少一件物品,最多不限,或从两堆中同时取相同件物品,规定最后取光者胜利
结论
若两堆物品的初始值为
(
x
,
y
)
(x,y)
(x,y),其中
(
x
<
y
)
(x<y)
(x<y)
令
z
=
y
−
x
z=y-x
z=y−x ,
w
=
⌊
(
5
+
1
)
∗
z
2
⌋
w=\lfloor\frac{(\sqrt{5}+1)*z}{2}\rfloor
w=⌊2(5+1)∗z⌋(黄金分割率)
若
w
=
x
w=x
w=x 则先手必败 否则先手必胜