详解博弈论的一类问题——Nim游戏

先来一道例题:

甲,乙两个人玩 N i m Nim Nim取石子游戏。
n i m nim nim游戏的规则是这样的:地上有 n n n堆石子,每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取完,不能不取。每次只能从一堆里取。最后没石子可取的人就输了。假如甲是先手,且告诉你这 n n n堆石子的数量,他想知道是否存在先手必胜的策略。

这道题有一个神奇的结论: n n n堆石子的数量异或和等于 0 0 0时,先手必胜,否则先手必败

看网上大部分对于这个结论中异或的出现解释的都不是很清楚,这里想结合自己的想法谈一下这类问题的解法。

一、了解定义

我们要知道博弈问题通常有的两种状态:必胜态和必败态。

所谓必胜态,就是在当前的局面下,先手必胜

必败态,就是在当前的局面下,先手必败。

那么,这个游戏的必败态我们显然知道,就是所有石子堆都为 0 0 0时。

二、从简单入手

我们可以用一个 n n n元组( a 1 , a 2 , … , a n a_1, a_2, …, a_n a1,a2,,an)来表示每一个局面,

例如, ( 3 , 3 , 1 ) (3,3,1) (3,3,1)表示一共三堆石子,第一二堆有三个,第三堆有一个。

显然 ( 3 , 3 , 1 ) (3,3,1) (3,3,1) ( 1 , 3 , 3 ) (1,3,3) (1,3,3)是同一种局面,即交换每堆顺序不影响答案。

如果初始局面只有一堆石子,则甲有必胜策略。

 甲可以一次把这一堆石子全部取完,这样乙就无石子可取了。

如果初始局面有两堆石子,而且这两堆石子的数目相等,则乙有必胜策略。

 因为有两堆石子,所以甲无法一次取完;
 如果甲在一堆中取若干石子,乙便在另一堆中取同样数目的石子;
 根据对称性,在甲取了石子之后,乙总有石子可取;
 石子总数一直在减少,最后必定是甲无石子可取。

对于初始局面(1),甲有必胜策略,而初始局面(3, 3),乙有必胜策略。

局面的加法: ( a 1 , a 2 , … , a n ) + ( b 1 , b 2 , … , b m ) = ( a 1 , a 2 , … , a n , b 1 , b 2 , … , b m ) (a_1, a_2, …, a_n) + (b_1, b_2, …, b_m) = (a_1, a_2, …, a_n, b_1, b_2, …, b_m) (a1,a2,,an)+(b1,b2,,bm)=(a1,a2,,an,b1,b2,,bm)

所以 ( 3 ) + ( 3 ) + ( 1 ) = ( 3 , 3 ) + ( 1 ) = ( 3 , 3 , 1 ) (3) + (3) + (1) = (3, 3) + (1) = (3, 3, 1) (3)+(3)+(1)=(3,3)+(1)=(3,3,1)

对于局面 A , B , S A, B, S A,B,S,若 S = A + B S=A+B S=A+B,则称局面 S S

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值