博弈题目小做(未完)

ACM 数论篇——博弈论 此类问题一般有如下特点:1、博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。2、博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负。3、公平博弈。即两人进行决策所遵循的规则相同。NO.1 巴什博弈问题模型:只有一堆 n 个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取 m 个,最后取光者得胜。解决思路: 必胜攻略——只要保证能够给对手留 阅读详情

参考http://blog.youkuaiyun.com/gatevin/article/details/45341773
题目大意:

一:

就是现在有一个n*n的棋盘, 现在在一个角落有一个棋子, 两人轮流进行操作, 每次可以将这个棋子移动到相邻的没有走过的位置, 谁不能移动棋子谁就输了, 棋子相邻的位置时上下左右4个方向

大致思路:

刚开始看没什么感觉, 不过稍微画了一下之后就发现必胜策略了

首先如果n是偶数, n*n的棋盘刚好可以被2*1的砖块放满, 那么对于先手一定从2*1砖块的一端走到另外一端, 那么对于后手无论走到哪一个2*1砖块的一端, 先手都可以走到另一端, 最后无路可走的一定是后手

如果n是奇数, 那么n*n的棋盘恰好可以分割成2*1的砖块多一个起点, 那么先手无论走到哪一个2*1砖块的一端, 后手都有路可以走, 那么先手一定会变得无路可走

二

转自http://www.cnblogs.com/cchun/archive/2011/08/10/2520096.html
巴什博弈(定理献上):

          只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.

   n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) != 0, 则先取者肯定获胜。

巴什博弈还是很好理解滴,以你是先手的角度考虑。你想把对手给弄垮,那么每一局,你都必须构建一个局势,这个局势就是每次都留给对手m+1的倍数个物品(为什么留给m+1倍就一定能赢,你稍微动动脑子就出来了)。所以不只是取物品中的博弈可以用到巴什定理,还可以是报数之类的,看谁先报到100.并且每次报的数必须是1~10(包括1跟10),那么你每次都应该留给对手剩下的报数个数为11的倍数。

当当,转到此题来。题目为:

1、 总共n张牌;
2、 双方轮流抓牌;
3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)
4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;

如果你是先手,那么请考虑你的必胜点。由于规定只能去2的幂次,那么只要你留给对手的牌数为3的倍数时,那么你就必赢,因为留下3的倍数时,对手有两种情况:1,要么取剩下1,给你胜利 2,要么对手取了一点点儿,轮到你时,你就又可以构造一个3的倍数了嘛。 所以无论哪种情况,当你留给对手为3N的时候,你是必胜的。、

三

题意:一个n*m的表格,起始位置为右上角,目标位置为左下角,甲先开始走,走的规则是可以向左,向下或者向左下(对顶的)走一格。谁先走到目标位置谁就胜利。在甲乙都采用最佳策略的时候,先走者能否获胜。也是一个巴什博弈的题目。首先画出PN图,
如图就能很容易的看出,只要m或者n有一个是偶数先手就能必胜。

四

题意:

有两个相同的盒子,一个盒子里面有n个球,另一个盒子里面有1个球,每次清空球较少的那个盒子,然后从另外的一个盒子里拿到空盒子里使得操作后两个盒子至少有一个球,判断是先手还是后者胜;

思路:

跟每次拿走至少一个且不超过一半那个一样的sg函数;

打表:

void init() {
    sg[0]=0;
    sg[1]=0;
    sg[2]=1;
    for(int i=3;i<=1000;++i){
        mem(vis,0);
        for(int j=(i+1)/2;j<i;++j){
            vis[sg[j]]=1;
        }
        for(int j=0;;++j){
            if(!vis[j]){
                sg[i]=j;break;
            }
        }
    }
    for(int i=1;i<=100;++i){
        printf("%d : %d\n",i,sg[i]);
    }

}

五

问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。

一些明显的必败状态(也就是当你面对这些状态时,只要你的对手够聪明,不犯错,无论你怎么拿,你都是必输的)(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)、…… 、(ak,bk) (k = 0, 1, 2, 3,……)。并称这些必败状态为“奇异局势”接下来的工作就是找出这些奇异局势的特点并总结规律。

   然后就会得到a0=b0=0,ak是未在前面出现过的最小自然数,而 bk= ak + k。然后公式化就得到了奇异局势的状态公式:

                               ak = [ k * (1 + √5) / 2 ]     ,   ([x]表示对x取整,也就是 (int)x )

                               bk = ak + k

六

阶梯博弈(Staircase Nim)

POJ 1704

【题意】

从左到右有一排石子,给出石子所在的位置。规定每个石子只能向左移动,且不能跨过前面的石子。最左边的石子最多只能移动到1位置。每次选择一个石子按规则向左移动,问先手是否能赢。

【分析】

我们把棋子按位置升序排列后,从后往前把他们两两绑定成一对。如果总个数是奇数,就把最前面一个和边界(位置为0)绑定。

在同一对棋子中,如果对手移动前一个,你总能对后一个移动相同的步数,所以一对棋子的前一个和前一对棋子的后一个之间有多少个空位置对最终的结果是没有影响的。

于是我们只需要考虑同一对的两个棋子之间有多少空位。

这样一来就成了N堆取石子游戏了.

HDU 4315
【题意】

有N个人爬山,山顶坐标为0,其他人的坐标按升序给出。不同的坐标只能容纳一个人(山顶不限),Alice和Bob轮流选择一个人让他移动任意步,但不能越过前面那个人。现在有一个人是king(给出id),谁能将king移动到山顶就算赢。

【分析】

考虑King的情况和上述版本几乎一致,只要把King当作普通人一样处理即可。
除了两种特殊情况:
1. 当King是第一个人时,Alice直接胜
2. 当King是第二个人且一共有奇数个人时,第一堆的大小需要减1。
因为如果king在奇数石子上,那么king前面的那一对石子k1,k2.
当对方把k1移到top时,我可以把k2移到top前的一个位置.
那么对于k2石子,对方如果碰了它,那么我肯定会把king移到top的.
所以k2也相当于是一颗废子而已,不影响最终Nim的结果.

python博弈论_基于原生python的进化博弈实现 本文分为两部分:1.基本信息;2.实现思路与部分代码(较长,故只放部分,如需要请联系答主)(随手敲的;未完坑,因为计划加入结果统计与可视化的代码,当然这一部分需要调用一些库(哪天想到了再来填坑))1.基本信息进化博弈(Evolutionary Gaming)又译为演化博弈书中介绍了两种:1)进化模型决策直接由类型(或曰gene)决定,好的类型可以继承,坏的被淘汰。2)学习模型决策由 以往博弈经验+... 阅读详情

相关推荐

C++中的博弈问题

C++中的博弈问题 本文仅讨论符合以下条件的博弈问题 1、当前状态不是先手必胜态就是先手必败态。 2、若当前状态存在一种转化为先手必败态的方式,则当前状态为先手必胜态。 3、若当前状态不存在一种转化为先手必败态的方式,则当前状态为先手必败态。 那么一般的博弈问题,失败条件是已知的,而失败状态就为一种先手必败态。当你知道先手必败态,就可以跟上述3大规则来把跟博弈中的所有状态表示出来。 圆圈表示状态 ...

weixin_45405406的博客 3086

Good Luck in CET-4 Everybody!(巴什博奕)

题目传送门 Good Luck in CET-4 Everybody! 题目大意 1、 总共n张牌; 2、 双方轮流抓牌; 3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…) 4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者; Kiki先手,Cici后手 思路 当一个人面临3的倍数的局势时必败,因为他无法取完,而另外一个人可以取完或者构造一个新的3的倍数局势给这个人 所以算是巴什博奕,判断对3取模的情况即可 AC Code #pragma GCC optimize("-Ofas

Kuricip的博客 561

HDU组合游戏与博弈论入门小结(未完

组合游戏是一类喜闻乐见的题目,解题的关键在于找到必胜的策略,如果有那应该怎么操作才能保证胜利?这是我们分析组合游戏的主要目的。 组合游戏有着各种各样的规律,文章大概介绍了笔者在入门组合游戏问题时的思路

GFVDO 828

ACM博弈论(入门)

传送门(参考博客):https://www.cnblogs.com/ECJTUACM-873284962/p/6921829.html 一、必胜点和必败点 必胜点(N)、必败点(P)这里我也非常不理解为什么和英文反着。 然后我觉得如果单纯解释必胜点和必败点是没有什么意思的,所以我们通过具体的题目看一下: hdu 1847 Good Luck in CET-4...

qq_37618760的博客 987

使用Kolla部署多节点Rocky版本OpenStack

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh。每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错。

gyc1206的博客 1926

比利时风电光伏负荷一体化数据集解析与应用

本文深度解析了由比利时输电系统运营商Elia集团提供的风电光伏负荷一体化数据集。该数据集整合了负荷、风电与光伏出力数据,并包含多时间尺度的官方预测值,时间跨度长达四年,是研究能源转型、构建电力预测模型及分析电网运行的宝贵资源。文章详细介绍了数据价值、字段含义、实战应用场景(如预测模型基准测试、风光互补性分析)以及数据处理指南,为相关领域的研究与开发提供了高质量数据基础和实践参考。

weixin_29200741的博客 428

博弈论题目集 (持续更新)

巴什博弈HDU 1846 这个应该比较好推: 如果 n % (m+1)==0 后手胜利 否则 先手胜利 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main(){ int t; scanf("%d",&t); while(t--){ int n,m; scanf("%d%d",&n,&m); if(n...

weixin_43824564的博客 3948

一文吃透 SAP IDoc 状态码:从 TEDS1 到 WE02 排障,再到 ABAP 自动化监控

在 SAP 集成场景里,IDoc 往往是最常见、也最容易被低估的一条生命线:采购订单、发票、主数据、库存移动……只要系统之间要稳定地交换结构化业务数据,IDoc 就经常登场。真正让人头疼的,并不是 IDoc 本身,而是它在链路里到底走到了哪一步、卡在了哪里、该找谁背锅。这篇文章把常用的 IDoc 状态码按出站、入站拆开讲清楚,并且把每个状态对应的真实世界故障现象、排查入口、以及可以落地的 ABAP 监控代码串起来,让你看到状态码就能想到动作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 404

博弈题解题思路及典例

解题思路与步骤: 首先明确,博弈是不公平游戏,跟玩家无关,只与当前所出状态有关,即状态确定,结果也就确定了。 需要明确以下几点: 所有的终结点是必败点(即若当前处于必败点,则无论下一步怎么走,都必输无疑) 必败点只能走到必胜点(由上必败点定义可以理解,既然这个点是必败点,说明无论它走到哪一步,下一步再走都胜) 从必胜点操作,一定有一种方法可以到必败点(这点就是利用了博弈的特点推出:所有玩...

wangqianqianya的博客 2804

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1424

学Simulink——基于直流电机的建模与控制场景实例:直流电机带负载突变时的动态响应仿真

在实际应用中,直流电机经常需要应对各种工作条件的变化,例如负载突变。了解电机在这种情况下的动态响应特性对于确保系统的稳定性和可靠性至关重要。通过仿真分析,可以预测电机在不同负载条件下的表现,并优化控制系统的设计。本文将详细介绍如何使用来构建一个直流电机带负载突变时的动态响应仿真模型,并通过仿真展示其应用效果。本文介绍了如何使用构建一个直流电机带负载突变时的动态响应仿真模型,并通过仿真展示了其应用效果。

xiaoheshang_123的博客 114

博弈题目总结(一)

一、POJ 1067 取石子游戏        有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。威佐夫博弈(Wythoff Game)        用...

Spy97的博客 810

从0入门LocoTrack:6倍加速的SLAM追踪新范式实战指南

传统点追踪方法(如CorrTracker、TAPIR)在处理大规模场景或实时任务时,要么精度不足,要么速度太慢。而LocoTrack通过“局部4D相关性”和“Transformer全局关联”的创新设计,实现了精度与速度的双重突破速度:比现有SOTA方法快6倍,吞吐量高达数万点/秒;精度:在Kinetics、DAVIS等数据集上,定位误差显著低于传统方法;鲁棒性:能应对低纹理、动态场景等复杂环境,这是传统方法的“噩梦场景”。

m0_71589036的博客 95

博弈论基础与习题(未完)

转自博弈论与SG函数。 一.巴什博奕(BashGame): 首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30. 如果不知道巴什博弈的可能会觉得这个是个有运气成分的问题,但是如果知道的人一定知道怎样一定可以赢。 比如A先报数的话,那么B一定可以赢(这里假定B知道怎么正确的报数) B可以这样报数,每次报5-k(A)个数,其中k(...

weixin_43870697的博客 740

传感器校准与标定:传感器的灵敏度校准_(11).常见传感器的灵敏度校准方法

线性校准:适用于传感器输出与输入之间存在线性关系的情况。通过收集数据并使用最小二乘法拟合线性方程,可以确定斜率和截距,从而实现校准。非线性校准:适用于传感器输出与输入之间存在非线性关系的情况。通过收集数据并使用非线性拟合方法(如最小二乘法),可以确定多项式或其他非线性方程的参数,从而实现校准。温度补偿校准:适用于传感器在不同温度下输出特性变化的情况。通过收集不同温度下的数据并使用温度补偿方程,可以提高传感器在不同温度下的测量精度。其他校准方法。

2401_87715305的博客 915

人群仿真软件:AnyLogic_(12).AnyLogic高级功能应用

在AnyLogic中,自定义行人行为是通过编写Java代码来实现的。行人行为的自定义可以包括行走路径的选择、速度变化、交互行为等。这使得仿真模型更加灵活和真实。

kkchenjj的博客 1060

博弈论学习笔记【未完】

详细解读nim游戏,bash游戏,斐波那契游戏,黄金分割游戏,mex运算,SG定理,SG函数,SJ定理,Anti-Nim,Anti-SG,Every-SG,Multi-SG,DAG/Tree上的SG,分割类博弈,集合类博弈,DP类博弈。

willem248的博客 419

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

博弈随笔(未完待续)

都是一年前做过博弈巨水题 题解也写过了 这里在列出来 再看一下博弈 HDU - 1730 把黑白子之间的距离看成石子数,每次距离缩短,就相当于拿走了一部分石子,如果对手将一枚棋子往两侧移,那么你只需要再把这枚棋子往中间移相同的步数,就等同于这枚棋子没有移动,那么我们就可以认为石子只会减少不会增加,所以就变成了NIM问题。 这个想法很好 HDU - 2999 就是一个sg ...

weixin_30765577的博客 100

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

博弈论笔记[未完成]

&lt;1&gt; 分析博弈: 小红是个游戏迷,他和小蓝一起玩拿石子游戏。游戏规则为2个人轮流拿石子。一次可以拿1颗或3颗,规定谁取到最后一颗石子谁就胜出。最后决定由小红先取。两人都是游戏高手,该赢的绝不会输(表示不会失误)。问在知道石子总数的情况下,怎样快速预测谁将会胜出。 取石子分为3种情况: ①: (1, 1) 共取走2个石子 ②: (1, 3) 共取走4个石子 ③: (3, 1) ...

Zbr162的博客 491

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【博弈学习】

『有些东西学习只是喜欢而已,有些东西学习是因为需要,但是不管是那种如果在学了,就好好学』 最近刚刚接触博弈题,题目慢慢积累中... HDOJ-1564 Play a game 思路 :先手赢的必胜状态是和n的奇偶有关,n是奇数先手输,n是偶数先手赢。 HDOJ-1846 Brave Game 思路:经典巴什博弈 先手输的状态是n % (m+1) == 0

Dewey's blog 1161

博弈题单(未完成)

博弈这个东西,感觉很有意思但又有点难上手,先从简单的题目开始刷起吧 我可是要成为博弈王的男人 (笑) Calendar Game 这个题目的意思是,给你n个1900年1月1日到2001年11月4日中的某一天, 亚达和夏娃一次走一天或者走一个月,谁先走到2001年11月4日谁赢,亚当先走第一步,问你每次亚当能不能赢 这个是找规律题,每一次移动,月日和的奇偶性就发生了改变,除了9月30日和11月30日这两天,而如果要赢,先不考虑这特殊的两天,亚当必须一开始就在月日和为偶数的一天(11月4日为奇数) 那么特殊日子

qq_52688175的博客 263

博弈杂题选做

pap

zcxxn的博客 482

【博弈论】信竞博弈论入门笔记_SG函数_纳什均衡

背景 本人长期徘徊于弥补多项式短板/写字符串爽题/码毒瘤数据结构/看数学书这四件奇怪的事情上,因此水平很菜。 以前接触过一点简单的博弈论,但那实在是太简单了,就是对抗搜索(Min-Max)。 近期训练,做到了一道SAMParent-Tree上倍增之后博弈的题目,SAM都码完了,一看那个博弈,越看越慌,发现自己根本不会:何止不会,一分都拿不到。 于是开始恶补博弈论,发现很妙,但是挺好理解的。 本文因...

czyarl的博客 988

博弈小结

最近刷了几道比较水的博弈题,对于博弈题多少有点感觉了,先总结一下,等填完其他坑,再刷下sgsg函数,到时候再来补充。博弈基本知识的介绍 http://blog.youkuaiyun.com/lionel_d/article/details/43939605#commentspoj 1067 取石子游戏 裸威佐夫博弈 poj 1740 A New Stone Game 深入体会博弈中的制造对称状态

Tuesday 907

Python人工智能概述——博弈、对抗搜索

Python人工智能 Python人工智能——约束满足(扑克牌问题) Python人工智能——对抗搜索 更新ing 理解对抗搜索Python人工智能前言一、博弈1.对抗性博弈2.博弈树二、对抗搜索三、算法实现1.Minmax(搜索)2.Minmax(计算)4.算法分析四、剪枝 前言 近期更新都是课程所学内容,具体实验还未完成,完成后一并发出,感谢关注。 一、博弈 1.对抗性博弈 我们早已听说了2016年Alpha Go在围棋界的战绩,在这之前,2006年计算机浪潮天梭也拿下了中国象棋的第一,97年的IB

不知何人的小屋 5124

博弈专题练习

ACM博弈知识总结

ling_wang的博客 668
上一篇: Codeforces 835E E. The penguin's game 交互题 多猪试毒 (写的挺好的)
下一篇: Codeforces 811E Vladik and Entertaining Flags [线段树][并查集]
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值