2014 Winter Programming School, Kharkiv, day 1 (E. Kapun) K.A game (High)(概率dp模拟/消元)

本文介绍了一个简单的博弈游戏,其中两名玩家Alex和Bob通过一轮轮的抽牌决定胜负。通过使用概率模拟的方法,我们探讨了如何计算Alex获胜的概率,并提供了一段C++代码实现。

题目

Alex和Bob玩博弈游戏,Alex开始有m1张牌,Bob有m2张牌,(1<=m<=50)

Alex赢得概率是P%,赢的话就从Bob那里拿n1张牌,输的话给Bob n2张牌(0<=P<=100,1<=n<=50)

0张牌时仍能打,但0张牌且不能给牌的时候,游戏结束

问Alex的胜率

题解

模拟1W轮,答案就很接近真实答案了…

dp[i][j]代表第i轮时Alex有j张牌的胜率,考虑其后继

考虑总牌数不变,故

如果+n1直接>=m1+m2,就必胜,概率为1

如果-n2直接<0,就必败,概率为0

否则,乘上对应转移的概率

代码

#include<bits/stdc++.h>
using namespace std; 
typedef long long ll;
const int N=105;
int n,n1,n2,m1,m2,P,f;
double dp[2][N],p;
int main()
{
	scanf("%d%d%d%d%d",&n1,&n2,&m1,&m2,&P);
	p=P/100.0;
	n=m1+m2;
	//由于card=0&&p=100可以玩 故有概率 
	for(int i=1;i<=10000;++i,f^=1)
	{
		for(int j=0;j<=n;++j)
		{
			dp[f][j]=0;
			if(j+n1<=n)dp[f][j]+=p*dp[f^1][j+n1];//赢的后继 
			else dp[f][j]+=p;//直接游戏结束必胜的后继 
			if(j-n2>=0)dp[f][j]+=(1.0-p)*dp[f^1][j-n2];//输但是游戏没结束的后继 
		} 
	}
	printf("%.8lf\n",dp[0][m1]);//初始情况有m1 
	return 0;
} 

 

内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小衣同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值