时间流逝(flow)

Time Limits: 1s Memory Limits: 256MB

Description
生活可以很简单。可以探索水底世界的神秘,也可以去发现奇特新生物,亦或踏上一段新生的旅程。在必须要迎接挑战或跟周围的生物进行生存争夺之前,享受自由的飞翔。此时你会觉得生活是如此美好。
像蛇喜欢吃浮游生物一样(哦,我好像忘记告诉你这个常识),每天,你可以吃一些你周围的基础生物,然后会在你的尾巴上得到一个能量圈。你将会有好多种不同的能量圈,每一个都会被赋予一个能量。你可以拥有多个同种的能量圈,但是对于新得到的能量圈,它的能量不能大于你已拥有的任何一个能量圈。在前面规则的前提下,获得新的能量圈的种类的概率是一样的。一天天过去,你得到越来越多的能量,开始了进化演变。
但是你也有自己的问题,有时你会面对邪恶的果冻鱼。它会追着你咬你,你不得不扔出最小能量值的能量圈然后赶忙逃跑。在这种情况下,你不会有任何的胃口了,因此这天你将不再得到任何能量圈。幸好,当你没有任何能量圈的时候,果冻鱼就算看见你也不会追着你,此时你可以好好地享用美食。
你听说当你的总的能量值超过了某个阈值之后,可以进化成强大模式并能够吃掉果冻鱼。是时候反击了!下面是本题的问题:预计要过多少天你才能进化成强大模式?(第一天默认你没有任何能量圈)

Input
输入包含多个测例。对每个测例会有两行。第一行是一个浮点数P,一个整数T和一个整数N。P是每天遇到果冻鱼的概率,T是阈值。第二行是N个不同的正整数,表示每一种能量圈的能量值。

Output
对于每个测例,输出一行表示预计要过多少天你的能量值能够超过阈值,四舍五入到三位小数。

Sample Input

0.5 0 1
1
0.5 1 2
1 2

Sample Output

1.000
2.000

Hint
对于所有数据,0.1≤P≤0.9,1≤T≤50,1≤N≤30。


一道概率题。
这种最不走运能够走∞步,想用无穷级数,因为走法太恶心,所以行不通。
然而解决期望的另一种是DP设期望,然后得出方程。

将能量值排序。

设 fx,y 表示由状态{能量总和为x,最小能量环为第y小}到终点 x′>T 的期望天数
那么 fx,y 有 p′ 的概率被吃掉一个环( p′=p(x>0)  p′=0(x=0) ),即有 p′ 的概率由 ffa+1 转移来;有 1−p′ 的概率往下走,也就是说有 1−p′ 的概率由 fai,i+1i 转移过来。
即:

fx,y=p′(ffa+1)+1−p′y∑i=1yfx+ai,i+1

考虑递归,每个状态返回用 ffa 表示 fx,y 的方法,它是个一元一次多项式。

那么用 fx,y 表示 fx+ai,i 后, 1−p′y∑yi=1fx+ai,i+1 也可以用 fx,y 表示,设其为 Afx,y+B

原式化为

fx,y=p′ffa+p′+Afx,y+B

解方程

fx,y=p′1−Affa+p′+B1−A

这样就表示好了。

递归 f(0,n) ,这时 ffa=0

#include<cstring>
#include<cstdio>
#include<algorithm>
#define db doubleusing namespace std;int n,lim,v[40];
db p;
struct fc{db a,b;};fc operator+(fc a,fc b){return (fc){a.a+b.a,a.b+b.b};}
fc operator+(fc a,db b){return (fc){a.a,a.b+b};}
fc operator*(fc a,db b){return (fc){a.a*b,a.b*b};}fc P(int s,int x){if(s>lim)return (fc){0,0};fc ex=(fc){0,0};db _p=(s?1-p:1)/(db)x;for(int i=1;i<=x;i++)ex=ex+(P(s+v[i],i)+1)*_p;if(s){db t=1-ex.a;return (fc){p/t,(ex.b+p)/t};}return (fc){0,ex.b/(1-ex.a)};
}int main(){freopen("flow.in","r",stdin);freopen("flow.out","w",stdout);while(~scanf("%lf %d %d",&p,&lim,&n)){for(int i=1;i<=n;i++)scanf("%d",&v[i]);sort(v+1,v+n+1);printf("%.3lf\n",P(0,n).b);}fclose(stdin);fclose(stdout);return 0;
}

时间流逝(flow)——概率题相关推荐

  1. 两道概率题-供大家周末把玩

    两道概率题-供大家周末把玩 题目 1.给定一个函数rand5(),该函数能等概率生成1-5之间的整数(包括1和5),如何用该函数等概率生成整数1-7? 解法 本以为很简单,做了以后才发现其实并不简单, ...

  2. python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?

    今天用Python求解「羊车门」经典的概率问题,对概率学基础和Python语法的灵活运用有所收货. 本次「羊车门」求解过程采用的是:穷举法计算概率已验证概率学基础理论.期间重点借鉴了'奥卡姆剃刀的博客 ...

  3. 从14连号概率题来看“做学问不知足”

    前几天,博客摘录了< 裘法祖:"做人要知足,做事要知不足,做学问要不知足." >,后来又写了< 一个概率题:从1138号中抽签514号,有14个连号的概率多少? ...

  4. 基于2022高考数学全国卷I概率题解题思路初步分析新冠病毒疫苗

    基于2022高考数学全国卷I概率题解题思路初步分析新冠病毒疫苗 1. 2022高考数学全国卷I概率题 2. 卡方(χ2\chi^2χ2)检验原理回顾 3. 解答2022高考数学全国卷I概率题 4. 上 ...

  5. 【面试题】概率题总结(随机数、抛硬币)

    这部分内容会在notion中继续更新 概率题 题目1 两个人轮流抛硬币,规定第一个抛出正面的人可以吃到苹果,请问先抛的人能吃到苹果的概率多大? 答案:轮流制先抛的人吃到苹果的概率: 1 / 2 + 1 ...

  6. 尝试用python解概率题,并祝大小朋友儿童节快乐

    实题操作 1. 三个人独立地去破译一份密码,每人能独立译出这份密码的概率分别为1/5, 1/3, 1/4.则这份密码被译出的概率为(3/5). def success():p = 1/5,1/3,1/ ...

  7. java判断五张牌中有一对,五张同花顺概率,52张扑克牌,任取5张牌,求出现一对、两对、同花顺的概率。 请帮忙解决一下这道概率题,求详细的列出式......

    Q1:52张扑克牌,任取5张牌,求出现一对.两对.同花顺的概率. 请帮忙解决一下这道概率题,求详细的列出式... 给你三个式子:1*3/51*48/50*44/49*40/48这个是出现一对的概率 2 ...

  8. 连续出错的概率_连续抛硬币问题+三个概率题

    最近遇到了下面几个有关概率的题目.好久没有接触概率题的我尝试解了一下,顺便查了一些资料,把感想和解题方法写了下来. 1.投掷硬币,求在连续两次出现背面之前连续五次出现正面的概率. 其实这个问题有个背景 ...

  9. 面试中的概率题(持续更新中)

    概率题 1.飞机上有100个座位,有100个乘客准备登机,每个乘客按顺序上飞机,但是第一个乘客喝醉了,随机挑了一个座位来坐.每个乘客的选座位规则:1)如果自己的座位没被坐,则坐自己的位置:2)如果自己 ...

最新文章

  1. 多线程编程:return、pthread_exit()、exit()函数区别
  2. C语言从0到1·源程序,源文件,目标文件之间的关系
  3. 二、Spark在Windows下的环境搭建
  4. python学籍管理系统 flask_taskday05-Python之flask学习 web开发最基本的需要(特别详细且适用)...
  5. 包学习(一款安卓端小学到高中全部课程精讲APP)
  6. 安卓案例:View动画——弹球碰壁
  7. R语言| 中介效应分析,Mediation包和BruceR包,循环Process函数
  8. 一文搞定YOLO3代码详解
  9. C#利用HttpClient获取微信Web扫描登录二维码
  10. Flutter中StatefulWidget生命周期小记
  11. Dynamics 365 新建组织时一直提示识别不到Reporting Extensions
  12. 操作系统-页面置换算法
  13. openGL glColor3f函数颜色
  14. 一文看懂Lambda
  15. iPhone 定位记录「重要地点」有多危险?用这招秒查另一半行踪
  16. Android 多国家语言适配
  17. Spring框架介绍——第一章
  18. 快来看!网信办发布《网络信息内容生态治理规定》,涉网暴、水军、流量造假等等...
  19. 如何从零开始学Java
  20. 手机软件计数器app自动识别图片中细菌菌落数量

热门文章

  1. 数据可视化实战——线条、颜色、背景、字体、标记、图例的设置与基本可视化图形的绘制
  2. 原型产品0.0.1完成,小开心一下:)
  3. Baidu Apollo 资源帖
  4. jquery美化插件uniform
  5. 我的博客搬家啦!!!
  6. 腾讯云轻量应用服务器CPU主频?处理器型号说明
  7. 迁移学习在深度学习中的边缘分布对齐和条件分布对齐
  8. php校园学校教室排课系统 php毕业设计题目课题选题 php毕业设计项目作品源码(1)功能概要
  9. 令克软件与纳斯达克交易所达成战略合作,携手助力金融IT发展
  10. windows文件隐藏方法