当前位置: 首页 > news >正文

概率dp总结

概率 DP 用于解决概率问题与期望问题,建议先对 概率 & 期望 的内容有一定了解。一般情况下,解决概率问题需要顺序循环,而解决期望问题使用逆序循环,如果定义的状态转移方程存在后效性问题,还需要用到 高斯消元 来优化。概率 DP 也会结合其他知识进行考察,例如 状态压缩,树上进行 DP 转移等。

我们这一次博客首先来讲dp去求概率的问题,这种问题一般都是顺序向后推的,主要还是dp的状态转移方程式一般还是比较难找到的

我们来通过几个例题来感受一下这种概率dp的题目

D. Bag of mice

思路:我们每一次抽都会产生4种情况,

1.公主抽到白鼠游戏直接结束,公主获胜

2.公主抽到黑鼠,巨龙抽到白鼠,巨龙获胜

3.公主抽到黑鼠,巨龙抽到黑鼠,跑了一只白鼠,需要考虑剩下老鼠的情况

4.公主抽到黑鼠,巨龙抽到黑鼠,跑了一只黑鼠,需要考虑剩下老鼠的情况 

因为我们考虑的是公主获胜的概率,因此可以直接将第二种情况划掉

我们考虑当前怎么去写dp状态转移方程式

我们首先来想dp表达式表达的是什么,我们的dp[i][j]表示的是剩下i只白鼠,j只黑鼠,公主能够获胜的概率

我们来根据上面的三种情况,对dp进行转移,

dp[i][j]+=i/(i+j)//先手直接拿到白色

dp[i][j]+=j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2)*dp[i-1][j-2]//第三种情况

dp[i][j]+=j/(i+j)*(j-1)/(i+j-1)*(-2)/(i+j-2)*dp[i][j-3]//第四种情况

#include<bits/stdc++.h>
using namespace std;
#define double long double 
int w,b;
double dp[1005][1005];
signed main()
{cin>>w>>b;for(int i=1;i<=w;i++){dp[i][0]=1.0;}for(int i=1;i<=b;i++){dp[0][i]=0.0;}for(int i=1;i<=w;i++){for(int j=1;j<=b;j++){dp[i][j]+=(double)i/(i+j);//先手取白色if(j>=2)dp[i][j]+=(double)j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2)*dp[i-1][j-2];if(j>=3)dp[i][j]+=(double)j/(i+j)*(j-1)/(i+j-1)*(j-2)/(i+j-2)*dp[i][j-3];}}cout<<fixed<<setprecision(9)<<dp[w][b]<<'\n';return 0;
}

http://www.dtcms.com/a/151242.html

相关文章:

  • LangChain Runnable简介
  • 黑马点评redis改 part 5
  • C++ STL 容器简介(蓝桥杯适用精简版)
  • docker底层原理简述
  • 开源版「v0」OpenUI:根据文本生成UI界面代码
  • 读书笔记:淘宝十年产品与技术演进史
  • 配置Spark历史服务器,轻松查看任务记录
  • 算法训练营第一天|704.二分查找、27.移除元素、977.有序数组的平方
  • 【哈希表】1399. 统计最大组的数目
  • Java学习手册:Web 安全基础
  • 【KWDB 创作者计划】_上位机知识篇---MicroPython
  • 青少年编程与数学 02-018 C++数据结构与算法 06课题、树
  • Kairos 生态有哪些值得关注的进展?
  • 搭建Stable Diffusion图像生成系统实现通过网址访问(Ngrok+Flask实现项目系统公网测试,轻量易部署)
  • Linux:进程地址空间
  • 基于Python将MongoDB文本数据通过text2vec-large-chinese模型向量化并存储到Milvus数据库的完整实现方案
  • 20、 DeepSeekMoE论文笔记
  • TCP 协议:原理、机制与应用
  • windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页
  • SVN仓库突然没有权限访问
  • 奇安信春招面试题
  • linux内核进程管理(1)——创建,退出
  • 两个面向视觉定位的遥感船舶数据集:RSSVGSARVG
  • 深入解析 Spring Boot Test:架构、核心组件与最佳实践
  • 《多Agent架构VS千万字长文本VS深度推理引擎——拆解Coze、通义、Kimi的AI终局博弈密码》
  • HCIP实验二(OSPF网络配置与优化)
  • Android kotlin通知功能完整实现指南:从基础到高级功能
  • 京东商品详情数据 API 接口讨论学习
  • 《让机器人读懂你的心:情感分析技术融合奥秘》
  • 微服务 RabbitMQ 组件的介绍、安装与使用详解