UVA11427玩纸牌(全概率+递推)
题意:
一个人玩纸牌游戏,他每天最多玩n局,枚举获胜的概率是a/b,每天玩牌只要获胜概率达到p,那么他今天就不玩了,明天接着玩,如果有一天他的概率没有达到p,(没有达到p的话他今天一定是玩了n次),那么他以后就在也不玩了,问题是在平均的情况下,他能玩多少个晚上的牌?
思路:
我们可以先算他只玩一天就失败了的概率,P[i][j]表示玩了i次,赢了j次,当
j/i<=p的时候,根据全概率公式,P[i][j] = P[i-1][j]*(1-p)+P[i-1][j-1]*p前面是输了后面是赢了,端点值是P[0][0] = 1 ,P[0][1] = 0,其他部分全都是0,记得要把其他部分清成0,因为更新是不连续的,这样之后只玩一天的概率等于Q = P[n][0] + P[n][1] +.....
这样答案就是(期望)
玩一天 1 * Q
玩两天 2 * Q(1-Q)
玩三天 3 * Q(1-Q)^2
......
化简后 Ans = 1 / Q;
说下化简的方法吧,有两种
(1)
a 令s = EX/Q = 1+2(1-Q)+3(1-Q)^2+4(1-Q)^3+...
则
b (1-Q)s = (1-Q)+2(1-Q)^2+3(1-Q)^3+....
a - b得到
EX = Qs = 1+(1-Q)+(1-Q)^2+(1-Q)^3+..=1/Q
(2)
设数学期望为e天,把情况分为两类,第一天晚上出头丧气概率Q期望1,第一天晚上兴高采烈,概率(1-Q)期望e + 1,解得 e = Q * 1 + (1 - Q) * (e + 1) => e = 1/Q;
#include<stdio.h>
#include<string.h>
double P[105][105];
int main ()
{
int n ,a ,b ,i ,j;
int t ,cas = 1;
scanf("%d" ,&t);
while(t--)
{
scanf("%d/%d%d" ,&a ,&b ,&n);
double p = a * 1.0 / b;
memset(P ,0 ,sizeof(P));
P[0][0] = 1 ,P[0][1] = 0;
for(i = 1 ;i <= n ;i ++)
for(j = 0 ;j * b <= i * a ;j ++)
{
P[i][j] = P[i-1][j] * (1 - p) ;
if(j >= 1)P[i][j] += P[i-1][j-1] * p;
}
double Ans = 0;
for(j = 0 ;j * b <= n * a ;j ++)
Ans += P[n][j];
printf("Case #%d: %d\n" ,cas ++ ,(int)(1 / Ans));
}
return 0;
}
UVA11427玩纸牌(全概率+递推)相关推荐
- UVa 11021 (概率 递推) Tribles
Tribble是麻球? 因为事件都是互相独立的,所以只考虑一只麻球. 设f(i)表示一只麻球i天后它以及后代全部死亡的概率,根据全概率公式: f(i) = P0 + P1 * f(i-1) + P2 ...
- UVA 11021 - Tribles(概率递推)
UVA 11021 - Tribles 题目链接 题意:k个毛球,每一个毛球死后会产生i个毛球的概率为pi.问m天后,全部毛球都死亡的概率 思路:f[i]为一个毛球第i天死亡的概率.那么 f(i)=p ...
- 华华跟奕奕玩游戏(数学期望递推式)
链接:https://ac.nowcoder.com/acm/contest/894/C 来源:牛客网 题目描述 有一个箱子,开始时有n个黑球,m个蓝球.每一轮游戏规则如下: 第一步:奕奕有p的概率往 ...
- 大概是:整数划分||DP||母函数||递推
整数划分问题 整数划分是一个经典的问题. Input 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k <= n) Output 对于每组输入,请输出六行. ...
- 第十一届山东省大学生程序设计竞赛 L. Construction of 5G Base Stations(概率期望,递推前缀和优化)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 第十一届山东省大学生程序设计竞赛 L. Construction of 5G Base Station ...
- CF935D Fafa and Ancient Alphabet 概率dp(递推)
D. Fafa and Ancient Alphabet (简洁题意请往下翻) time limit per test 2 seconds memory limit per test 256 mega ...
- a(n+1) = f[a(n)] 型递推数列的迭代作图(玩计算器玩出了问题)
把任意一个正数开平方再加 \(1\), 把得到的结果也开平方再加 \(1\), 不断算下去,最终总会得到 \( \frac{3+\sqrt{5}}{2} \approx 2.61804 \), 即: ...
- 递推最小二乘法RLS的轮胎侧偏刚度估计(原书缺失代码已补全)
目录 1 参数辨识 1.1 最小二乘法 1.2 递推最小二乘法 RLS 1.3 具有遗忘因子 λ 的递推最小二乘法 2 轮胎线性侧偏刚度估计 2.1 RLS 算法分析 2.2 联合仿真平台的设计 ca ...
- bzoj 4872 分手是祝愿 - 概率与期望 - 递推
首先考虑,给你一个局面最少操作多少次,显然要从大往小按,可以证明这样是最优的.把这些按下的位置标记出来,可以证明一定要恰好按这些位置,别的不能动.因此问题转化为,给你一个序列,有若干位置需要被访问奇数 ...
最新文章
- pandas版xml json excel互转
- 笔记-高项案例题-2016年下-计算题
- ppt拖动就复制_学会这3个PPT技巧和29个快捷键!让你的PPT脱颖而出,领导叫好
- c# 怎样从bitmap初始化image类_C#二维数组初始化概括(新手篇)
- 8086汇编_除法指令
- !--#include virtual='head.html'--代码复用
- ICP算法与Kdtree
- mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险
- 决策树,随机森林,集成学习的算法实现
- 计算机软件怎么共享使用,局域网共享软件,教您局域网共享软件如何使用
- JsonPath 解析Josn字符串
- r语言如何计算t分布临界值_医学统计与R语言:超几何分布(Hypergeometric distribution)与Fisher精确检验...
- 计算机二级考试报名如何上传照片?
- speedoffice(Word)怎么添加页码
- Nginx 配置 HTTPS 证书
- C++ Cstring类型使用
- 文章详情页文章评论功能
- 【IJCV2020】【语义编辑】Semantic Hierarchy Emerges in Deep Generative Representations for Scene Synthesis
- IntelliJ Idea -- 自动引包设置
- 【OV7670】基于FPGA的OV7670摄像头介绍和使用