尼姆博弈

尼姆博弈

尼姆博弈:
有任意堆糖果,每糖果的数量是任意的。张三和李四由于疫情在家无聊进行游戏。两人开始拿糖果,拿到最后一个糖果胜利,获得全部糖果。每次拿最少拿一个或者全部。
我们假设有三堆糖果,分别是(A,B,C);(A,B,C)表示一种局势(就是说在要你选了,你立即面临局势,无论前面是否进行了多次的拿糖果)。当你选择某堆糖果时,就会输。俗称奇异局势。
1)(0,0,0)显然必输局势。
2)(0,n,n)无论你选择了多少个糖果,对方就可以和你选择一样的糖果。然后你必输。
3)(1,2,3)无论你选择了多少个糖果,对方就可以变成(0,n,n)格式。
任何奇异局势都可以变成A xor B xor C=0;都成立你输了。
当我们在面临非奇异局势(A,B,C),我们可以A<B<C,我们让C变成AxorB
a xor b xor (a xor b)=(a xor a) xor (b xor b)=0 xor 0=0.要将c 变为a xor b,只要从c中减去c-(a xor b)即可。
我们就可以让A xor B xor C是否为0,如果为零,则先手必败,反之

public static P(){
	int n;/*n表示n堆糖果
	int a[] = new int[n];
	int temp=0;
	for(int i=0;i<n;i++){
		a[i] = sc.nextInt();
		temp^=a[i];
	}
	if(temp==0) System.out.println("先手必输");
	else System.out.println("后手必输");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值