博弈论



一BASH博弈

   详情从一堆n个物品中,两个人从这堆物品中取物,规定每次至少取一个,最对取m个。最后取光者胜

理解:1若n=m+1则,无论先取者拿走多少,后取者就一定能一次全部拿走

          2 n=(m+1)*k+s 先取者拿走s个,对于m+1情况同一,所以说 肯定先取者获胜

变形:l两人轮流报数,每次至少报一个,最多报10个,谁先报到100者胜

分析此类题目的通用方法:

P点:必败点

N点:必胜点

三个定理: 1 所有的终结点都是必败点P

                 2所有一步都能走到必败点P标记为N点

                3通过一步操作只能到N点的就是P点


二:非不垃圾博弈  取走最后一个为胜   先首胜肯定不是非不垃圾数列

描述:从一堆个数为n的石子中,双方轮流取石子满足:

1;先手不能一次把石子全取完

2:之后每次可以取得石子介于1到对手刚去的石子数的2倍之间(包含1,和2倍)

例如:每次取完最后里面的最后一颗

代码实现:可以先将非不垃圾数列打表打出来 然后判断n是否和a[i]相等


三:威佐夫博弈    非奇异局势,先取者 胜

    描述:从两堆个若干的物品中,两人轮流从某一堆或者同时从两堆中取同样多的物品,规定每次至少取一个,多者不限

   最后取光者 胜;

判断:面对非奇异局势先者胜

判断奇异局势: 假设 a<b;

  a==floor((b-a)*(1+sqrt(5))/2) 相等的话就是 奇异局势



四:尼姆博奕http://blog.csdn.net/u013514928/article/details/69055286

先手获胜策略:先手能够在非平衡尼姆博奕中获胜 后手能够在尼姆博奕中获胜  HDOJ1850

最后取光者胜

在考虑各大堆大小分别为N1,N2,……Nk的一般的Nim博弈。将每一个数Ni表示为其二进制数(数的位数相等,不等时在前面补0):
N1 = as…a1a0
N2 = bs…b1b0
……
Nk = ms…m1m0
如果每一种大小的子堆的个数都是偶数,我们就称Nim博弈是平衡的,而对应位相加是偶数的称为平衡位,否则称为非平衡位。因此,Nim博弈是平衡的,当且仅当:
as +bs + … + ms 是偶数,即as XOR bs XOR … XOR ms  = 0
……
a1 +b1 + … + m1 是偶数,即a1 XOR b1 XOR … XOR m1 = 0
a0 +b0 + … + m0是偶数,即a0 XOR b0 XOR … XOR m0 = 0
简单的说即   状态(x1, x2, x3, …, xn)为P状态当且仅当x1 xor x2 xor x3 xor … xor xn =0  ^的总和为 0
在HDOJ1850中题目意思就是进行多少种操作后仍然还是非平衡的状态
还需要知道的知识 
位运算符 异或  ^
0
 ^ 1 得 1
1 ^ 0 得 1
1 ^ 1 得 0
0 ^ 0 得 0
 for(i=0;i<n;i++)
		        {
		        	int k=ans^a[i];//两个相同的值 进行 ^ 是从这个 ^总和中踢出去这个a[i] 
		        	if(k<a[i])  //重点!!   a[i]-k 就是从某堆中去掉某个东西使得 ans为偶数  所以说这个k就是剩下的东西了 
		        	cout<<a[i]<<" "<<k<<endl; //重点!! 这儿没有理解啊!!!1 
				}



SG的理解  HDOJ1847

http://blog.csdn.net/strangedbly/article/details/51137432?%3E    
SG讲的很好

http://blog.csdn.net/u013514928/article/details/69055286 这个用来理解 尼姆博奕
这个就是知识汇总了 还没具体的看 不过这个说的是很好的http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html
博弈最重要的就是对SG函数的理解 但是我理解不了
http://blog.csdn.net/flqbestboy/article/details/8222603 此为对SG函数理解



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值