POJ 2975 Nim题解---简单的博弈论
来源:互联网 发布:小公司网络需求调查表 编辑:程序博客网 时间:2024/06/03 03:53
【题意】:
给定一种Nim状态(相当于含N堆石头),求能有几种方法能通过调整某一堆石头的状态(只准取出),使新的Nim状态为必败态。(或者说求出所给的Nim游戏状态有多少种方法能够赢)
【分析】:
Nim游戏是什么,参见百度百科:百度百科_Nim
在证明Nim游戏的SG函数的“根据这个判断被判为N-position的局面一定可以移动到某个P-position”命题时,有这么一段证明:对于某个局面(a1,a2,...,an),若a1^a2^...^an不为0,一定存在某个合法的移动,将ai改变成ai'后满足a1^a2^...^ai'^...^an=0。不妨设a1^a2^...^an=k,则一定存在某个ai,它的二进制表示在k的最高位上是1(否则k的最高位那个1是怎么得到的)。这时ai^k<ai一定成立。则我们可以将ai改变成ai'=ai^k,此时a1^a2^...^ai'^...^an=a1^a2^...^an^k=0。
由此,我们可以知道,对任意的当前状态S,只需将某堆石头a[i]变为S^a[i]即可使得整个局面的SG值为0,即变为必败态。(当然,为了保证操作合法,应当有S^a[i]<a[i],S^a[i]=a[i]时相当于不操作,不合法)
【代码】:
阅读全文
0 0
- POJ 2975 Nim题解---简单的博弈论
- 【POJ 2975】 Nim 博弈论
- POJ 2975 Nim(博弈论)
- POJ 2975 Nim题解
- POJ 2975 Nim 题解
- poj 2068 Nim 博弈论dp
- hdu 3032 Nim or not Nim? 博弈论,,,网上搜的题解让我大开眼界,原来还可以这样A题
- 经典的NIM-poj-2975-Nim
- POJ 2975 Nim (Nim的证明)
- POJ 2960 S-Nim 【博弈论,SG函数】
- poj 2234 博弈论Nim取子游戏
- POJ 1704 Georgia and Bob(nim博弈论)
- POJ 2068 Nim(博弈论+dfs)
- POJ 2960 S-Nim 博弈论,SG函数
- POJ 2960[S-Nim] 题解
- poj 3480 John 简单的nim博弈
- 博弈论经典问题NIM问题的解法
- 博弈论初探----DAG上的NIM
- python的range()函数用法
- 工程计算7——函数逼近与曲线拟合
- window的方法
- tensorflow实例(2)--机器学习初试
- Halide学习笔记----Halide tutorial源码阅读7
- POJ 2975 Nim题解---简单的博弈论
- Inten对象中的Flag
- JAXB その3
- JVM最大线程数
- Java基础语法篇(3)
- Django框架学习笔记(1.安装创建初识)
- java 基本数据类型及自动类型提升
- Ripple Labs 为什么能获得 Google Ventures、IDG 资本等风投机构青睐
- android技巧篇