CF98E Help Shrek and Donkey(纳什博弈 + 大讨论)

problem

洛谷链接

solution

纳什均衡 是博弈论中一种解的概念,它是指满足下面性质的策略组合:任何一位玩家在此策略组合下单方面改变自己的策略,其他玩家策略不变,都不会提高自身的收益

一个策略组合被称为纳什均衡当且仅当每个博弈者的均衡策略都是为了达到自己期望收益的最大值。

纳什博弈是一种非合作博弈均衡。

通俗地讲,是个人主义,只考虑增加自身的收益而忽略甚至往往会损害团队性收益。

以上只是本题的题目背景。

首先要明确,当不知道桌上牌真的是什么的时候,是不会直接猜测的。

因为这样会直接结束游戏。或者说,如果现在就猜,假设对方手中还有 kkk 张牌未知,获胜的概率只有 1k+1\frac 1 {k+1}k+11,不如让给对方猜。到游戏最后胜败概率都是 12\frac 1 221

定义 f(x,y):f(x,y):f(x,y): 先手有 xxx 张牌对方未知,后手有 yyy 张牌对方未知,此时先手的收益 / 获胜概率。

注意:全文的“先手”仅指当前局面谁是操作者,是相对而言的。并非游戏一开始的指定先后手。

这道题很切合实际,因为先手的策略是存在欺诈的,而后手也有是否相信的考虑。所以涉及到更多情况的讨论。

  • 先手老实:询问的是不属于自己手上的牌,即后手的 yyy 张牌以及桌上的 111 张牌。

    • 后手相信。

      • 先手询问的牌有 yy+1\frac {y}{y+1}y+1y 概率后手有,那么后手将会明牌,未知牌数 −1-11

        交换后的先手/下一个局面先手 获胜概率就为 f(y−1,x)f(y-1,x)f(y1,x)

        则当前局面先手获胜概率即为 yy+1(1−f(y−1,x))\frac{y}{y+1}\Big(1-f(y-1,x)\Big)y+1y(1f(y1,x))

      • 先手询问的牌有 1y+1\frac 1{y+1}y+11 概率后手没有。

        那么因为相信先手,后手就会以为这张牌先手也没有,就只能是桌上的牌了。

        下一局直接猜,猜对了。

        当局的先手就输了。收益为 0⋅1y+10·\frac{1}{y+1}0y+11

      总收益 :yy+1(1−f(y−1,x)):\frac{y}{y+1}\Big(1-f(y-1,x)\Big):y+1y(1f(y1,x))

    • 后手不信。

      • 先手询问的牌有 yy+1\frac {y}{y+1}y+1y 概率后手有。

        收益还是 yy+1(1−f(y−1,x))\frac{y}{y+1}\Big(1-f(y-1,x)\Big)y+1y(1f(y1,x))

      • 先手询问的牌有 1y+1\frac 1{y+1}y+11 概率后手没有。

        因为不信,后手就不会猜这张牌,并且认为先手爆了一张明牌。

        但是后手也不会丢牌,所以在先手这里就真的知道桌上牌了。

        下一轮后手随便操作后又交换回来顺序,先手就会直接叫牌。

        收益为 1⋅1y+11·\frac{1}{y+1}1y+11

      总收益 :yy+1(1−f(y−1,x))+1y+1:\frac{y}{y+1}\Big(1-f(y-1,x)\Big)+\frac{1}{y+1}:y+1y(1f(y1,x))+y+11

    说明:因为先手叫的是后手手中明确有的牌,不管后手信不信,都是一样的局面(后手明牌了一张),一样的收益。

    这里只是硬性分类讨论而言。毕竟在现实中如果先手叫的牌是后手有的,这还能说不信吗。

  • 先手狡猾:欺诈后手,即询问的是一张自己手里有的牌。

    • 后手相信。

      后手会直接认为这张牌就是桌上的牌,因为自己没有,而先手是老实人。

      后手下一局做先手就会直接猜测,结果猜错。

      那么下一局的后手,即本局的先手,就会获得胜利。

      收益为 111

    • 后手不信。

      相当于先手自爆了一张明牌,后手接下来面临的局面胜率就是 f(y,x−1)f(y,x-1)f(y,x1)

      所以本局先手的胜率为 1−f(y,x−1)1-f(y,x-1)1f(y,x1)

我们可以形象地做个表格出来看。

后手选择/先手收益/先手操作先手老实先手狡猾
后手相信yy+1(1−f(y−1,x))\frac{y}{y+1}\Big(1-f(y-1,x)\Big)y+1y(1f(y1,x))111
后手不信yy+1(1−f(y−1,x))+1y+1\frac{y}{y+1}\Big(1-f(y-1,x)\Big)+\frac{1}{y+1}y+1y(1f(y1,x))+y+111−f(y,x−1)1-f(y,x-1)1f(y,x1)

假设先手老实操作的概率为 ppp,狡猾操作的概率为 1−p1-p1p

a=yy+1(1−f(y−1,x)),b=1,c=a+1y+1,d=1−f(y,x−1)a=\frac{y}{y+1}\Big(1-f(y-1,x)\Big),b=1,c=a+\frac{1}{y+1},d=1-f(y,x-1)a=y+1y(1f(y1,x)),b=1,c=a+y+11,d=1f(y,x1)

根据纳什博弈的定义,后手怎么操作的对应收益是不变的,先手也不会改变。

即:p∗a+(1−p)∗b=p∗c+(1−p)∗d⇒p=d−ba−c+d−bp*a+(1-p)*b=p*c+(1-p)*d\Rightarrow p=\frac{d-b}{a-c+d-b}pa+(1p)b=pc+(1p)dp=ac+dbdb

先手收益为 p∗a+(1−p)∗bp*a+(1-p)*bpa+(1p)b

code

#include <bits/stdc++.h>
using namespace std;
#define double long double
#define eps 1e-10
#define maxn 1005
int n, m;
double f[maxn][maxn];double dfs( int x, int y ) {if( ! x ) return 1.0 / (y + 1);if( ! y ) return 1.0;if( f[x][y] ) return f[x][y];double a = y * 1.0 / (y + 1) * (1 - dfs( y - 1, x ));double b = 1.0;double c = 1.0 / (y + 1) + a;double d = 1.0 - dfs( y, x - 1 );double p = (d - b) / (a - c + d - b);return f[x][y] = p * a + (1 - p) * b;
}int main() {scanf( "%d %d", &n, &m );printf( "%.10Lf %.10Lf\n", dfs( n, m ), 1 - dfs( n, m ) );return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NewLife.XCode]反向工程(自动建表建库大杀器)

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netstandard&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0…

树上启发式合并

文章内容选自OI Wiki 参考博客 内容&#xff1a; 树上启发式合并&#xff08;dsu on tree&#xff09;对于某些树上离线问题可以速度大于等于大部分算法且更易于理解和实现的算法。 他是用来解决一类树上询问问题&#xff0c;一般这种问题有两个特征&#xff1a; 只有对子树…

CF1270H Number of Components(线段树)

problem 洛谷链接 solution 定理 若 i<ji<ji<j 且 i,ji,ji,j 联通&#xff0c;则必有 k∈(i,j)k\in(i,j)k∈(i,j) 也与 i,ji,ji,j 联通。 下面给出证明&#xff0c;挺显然的。 若 ai<aja_i<a_jai​<aj​&#xff0c;则一定有 ai<ak∨ak<aja_i<…

tex模板

\documentclass{beamer} \usetheme{Madrid} \usecolortheme{default} \usepackage{ctex} \usefonttheme[math]{serif}\usepackage{graphicx} \graphicspath{{img/},{pics/}} % 图片在img目录\title{} \author{} \institute{} \date{\today} \begin{document}\maketitle\begin{f…

Wexflow:C#中的开源工作流引擎

Wexflow是一个高性能、可扩展、模块化和跨平台的工作流引擎。Wexflow在GitHub&#xff1a;https://github.com/aelassas/Wexflow。Wexflow的目标是在没有用户干预的情况下自动执行重复任务。在Wexflow的帮助下&#xff0c;构建自动化和工作流过程变得简单。Wexflow还有助于使长…

分析数学笔记

文章目录夹逼收敛定理(P45):单调收敛定理(P50):闭区间套定理(P56)&#xff1a;有限覆盖定理(P59)&#xff1a;可数集(P62)&#xff1a;聚点(P62)&#xff1a;聚点原理(P62)&#xff1a;波尔查诺-魏尔斯特拉斯定理(P64)柯西序列&柯西收敛准则(P65)压缩映照原理(P67)上下极限…

ASP.NET Core 沉思录 - Logging 的两种介入方法

ASP.NET Core 中依赖注入是一个很重要的环节。因为几乎所有的对象都是由它创建的&#xff08;相关文章请参见《ASP.NET Core 沉思录 - ServiceProvider 的二度出生》&#xff09;。因此整个日志记录的相关类型也被直接添加到了 IServiceCollection 中。今天我们将介绍各个接口/…

CF936D World of Tank(思维dp)

problem 洛谷链接 solution 有一种 dpdpdp 并不常见。其主要思想大概就是积累后再支出 / 先预支后再填充。 本题就是积累后再支出。显然炮冷却好了后就一直处于可用状态&#xff0c;玩没玩过游戏的都知道一冷却好就打一定不会劣于等一会再打&#xff0c;因为这道题的炮也没…

C# 中的Async 和 Await 的用法详解

众所周知C#提供Async和Await关键字来实现异步编程。在本文中&#xff0c;我们将共同探讨并介绍什么是Async 和 Await&#xff0c;以及如何在C#中使用Async 和 Await。同样本文的内容也大多是翻译的&#xff0c;只不过加上了自己的理解进行了相关知识点的补充&#xff0c;如果你…

AtCoder4515 [AGC030F] Permutation and Minimum(dp)

problem 洛谷链接 solution 一个 AiA_iAi​ 只会影响一个 BiB_iBi​&#xff0c;BiB_iBi​ 之间的决定因素 AAA 是不会有交的。 所以如果相邻两个对同一个 BiB_iBi​ 影响的 A2i,A2i−1A_{2i},A_{2i-1}A2i​,A2i−1​ 都是确定的&#xff0c;那么 BiB_iBi​ 也就确定了。 …

Tree Xor(未完全搞定)

Tree Xor 题意&#xff1a; 一颗有n个点的树&#xff0c;边权给出&#xff0c;第i个节点的权值为Wi&#xff0c;但并不知道Wi&#xff0c;只知道Wi在[Li,Ri]&#xff0c;边权等于两端点的异或值 问W序列有多少可能 题解&#xff1a; 如果我们知道一个点的值&#xff0c;就可…

Docker的部署-包括网关服务(Ocelot)+认证服务(IdentityServer4)+应用服务

本文主要介绍通过Docker来部署通过.Net Core开发的微服务架构&#xff0c;部署的微服务主要包括统一网关&#xff08;使用Ocelot开发&#xff09;、统一认证&#xff08;IdentityServer4&#xff09;、应用服务&#xff08;asp.net core web api&#xff09;&#xff1b;本文不…

AtCoder3950 [AGC022E] Median Replace(DFA + dp)

problem solution 可以从 DFA\text{DFA}DFA 的思想来考虑这道题。 考虑建一个 DFA\text{DFA}DFA 只接受最后可以变成字符串 111 的原串。 因为每次是选择三个 连续/相邻 的位置操作&#xff0c;限制是比较强的&#xff0c;无非有三种情况。 case1 三个全 111&#xff0c;操…

Minimum grid

Minimum grid 题意&#xff1a; 一个n * n的矩阵&#xff0c;有m个位置需要填数&#xff0c;填的数的范围是0<k<1e6,需要满足第i行的最大值是b&#xff0c;第j列的最大值是ci&#xff0c;求一个满足条件的最小代价 n<2e3,m<8e5,k<1e6 题解&#xff1a; 如果…

ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

一、前言在之前的文章&#xff08;ASP.NET Core 实战&#xff1a;Linux 小白的 .NET Core 部署之路&#xff09;中&#xff0c;我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core Runtime、Nginx、MySQL&#xff0c;以及如何将我们的 ASP.NET Core MVC 程序部署到 Li…

AtCoder 4169 [ARC100D] Colorful Sequences(dp)

problem 洛谷链接 solution 逆向考虑。ansansans 所有蛋糕中的 aaa 序列出现次数 −-− 在 non−colorfulnon-colorfulnon−colorful 蛋糕中的出现次数。 在所有蛋糕中的出现次数&#xff0c;即 (n−m1)⋅kn−m(n-m1)k^{n-m}(n−m1)⋅kn−m&#xff0c;枚举 aaa 序列开头的…

VS2017 无法连接到Web服务器“IIS Express”终极解决方案

今天日了gou了&#xff0c;一大早打开VS2017的时候出现无法连接到Web服务器“IIS Express”的错误&#xff0c;然后必应了一下&#xff0c;再谷歌了一下找到的解决方法也都千篇一律&#xff0c;奈何都没能解决&#xff0c;最后通过静下心来的思考&#xff0c;尝试解决了问题&am…

CodeForces 1361E James and the Chase(dfs + 结论)

problem 洛谷链接 solution 看到这个 20%20\%20% 的特殊性质&#xff0c;脑海里第一个就想到了随机化算法。已经PTSD了着实上头 如果本题只是随便求一个 interesting\text{interesting}interesting 的点&#xff0c;那就非常简单了。 随机化一个点&#xff0c;检查这个点是…

2021牛客暑期多校训练营4

2021牛客暑期多校训练营4 题号题目知识点ACourseBSample GameCLCSDRebuild TreeETree Xor思维线段树FJust a jokeGProductHConvolutionIInverse PairJAverage

Docker最全教程之使用.NET Core推送钉钉消息(二十)

前言上一篇我们通过实战分享了使用Go推送钉钉消息&#xff0c;由于技痒&#xff0c;笔者现在也编写了一个.NET Core的Demo&#xff0c;作为简单的对照和说明。最后&#xff0c;由于精力有限&#xff0c;笔者希望有兴趣的朋友可以分享下使用CoreRT将.NET Core编译成机器代码这块…