【概率】Uva 10900 - So you want to be a 2n-aire?

写完这题赶紧开新题...

话说这题让我重新翻了概率论课本,果然突击完了接着还给老师了,毫无卵用。

很多人拿这位大神的题解作引,在这我也分享给大家~

对于其中的公式在这里做一点简要的说明。因为自己也是理解了一会儿才明白的。

TIPs:

1、设d[i]为答对第i道题后拥有奖金的期望值。

2、对于第i+1道题,我们可以有两种选择:答,不答;

如果不答,那么奖金便到2i为止;

如果答,答错的话,奖金当然为0;答对的话,奖金会变为P*d[i+1](这是一个期望值,也可以说是平均值,或者可以这样理解,选择答题的话获得奖金的期望=(1-P)*0 + P*d[i+1],答错没奖金,答对的话奖金当然就是它咯);

现在问题来了,此处的P为答对第i+1题的概率,这个概率会是多少呢。

首先我们考虑一个问题,什么情况下你会选择答题?

还用想啊当然是答题的奖金期望比不答的多咯!这也就是:

P*d[i+1] > 2i(注意此处答对第i+1题的奖金期望并不是2i+1)

转化一下就是,这个P>2i/d[i+1]的时候,答对题目拿奖金的概率就会比较大,我们会选择答题;

令ep=2i/d[i+1],考虑tmp的范围:

当ep<t时,因为选手答对题的概率在(t,1)间均匀分布,所以选手答对题目的概率会很大,那么我们会让选手答题,答题的概率为(1-max(t,ep))/(1-t);

当ep>t时,选手答对与答错的判断不确定,选择答题的概率为(1-max(t,ep))/(1-t);

注意此处的max(t,ep),如果ep<t的话答题的概率为(1-t)/(1-t);而如果ep>t,根据均匀分布的分布函数我们可以知道答题的概率为(1-ep)/(1-t),故可以化为一个式子(1-max(t,ep))/(1-t);

而之前讨论的答对题目的概率P,因为ep<P<1,根据均匀分布的数学期望可知EP=(1+ep)/2;

3、那么我们现在可以求答对第i题后奖金的期望值d[i]了:

我们选择不答的概率为(ep-t)/(1-t),此时拿奖金2i

我们选择答题的概率为(1-ep)/(1-t),此时拿奖金(1+ep)/2 * d[i+1];

故d[i]=(ep-t)/(1-t) * 2i + (1-ep)/(1-t) * ((1+ep)/2*d[i+1]);

4、这题需要逆推,一共i道题,那么d[i]=2i

最后求d[0]即可。

代码就不附了吧...

时间: 2024-10-13 03:06:10

【概率】Uva 10900 - So you want to be a 2n-aire?的相关文章

uva 10900

题意一直没看懂~~~~不过看懂了之后还是感觉挺好的 #include<cstdio> #include<cstring> #include<algorithm> #define maxn 32 using namespace std; int n; double p[maxn],t; void pre() { p[0]=1; for(int i=1;i<=30;i++) p[i]=p[i-1]*2.0; } double solve() { double f=p[

UVa 10900 (连续概率、递推) So you want to be a 2n-aire?

题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖金加倍 如果回答错误,游戏结束,得不到奖金 分析: d[i]表示答对i题后最大期望奖金,设回答对第i题的概率为p, 则回答第i题的期望奖金 = p × d[i] 考虑上不回答的情况,期望奖金最大值为max{2i-1, p*d[i]} 因为p在t~1均匀分布,所以d[i]等于分段函数max{2i-1,

UVa 10900 So you want to be a 2n-aire? (概率DP,数学)

题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金:回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值. 析:首先是求期望,那就和平均值差不多,我们来分析第 i 道题时,两个情况,要么回答,要么不回答,如果不回答那么就是2^i,如果回答概率是p * 下一个题的概率, 那么比较期望谁的大,如果p * ans > 2 ^

So you want to be a 2n-aire? UVA - 10900(概率)

题意: 初始值为1, 每次回答一个问题,如果答对初始值乘2,答错归0,结束,一共有n个问题,求在最优的策略下,最后值的期望值 解析: 注意题中的一句话  每个问题的答对概率在t和1之间均匀分布  也就是说对于每个问题 都会出现一个概率p 设 p0 = 2i / d[i+1] 如果p*d[i+1] < 2i  即p < p0  也就是说 如果答这个题所带来的期望奖金少的话, 那么我们就不回答 期望奖金为2i 如果p*d[i+1] >= 2i 即p >= p0 也就是说如果答这个题所带

UVa 10900 - So you want to be a 2n-aire?

题目大意: 一个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏,获得当前奖金:回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值. 分析: 假设玩家已经答对了i题,那么他当前的奖金应该是2^i,若答对i+1道题的概率为p, 如果p * ans(下一题的最优期望)>2^i,则说明他一定会选择答题,所以可以先求一下临界概率f = 2^i/ ans

第10章例题(紫书)

21/21 题目都很基础,有很多题书上讲得比较详细,然后隔得时间有点久,所以具体什么trick都忘了,思路也懒得去回忆,所以将就着放上来了.... 例题10–1 Uva 11582 题意:输入a, b, n让你计算F[a^b]%n;其中这个F[i]是斐波那契数: 题解: 这题是快速幂+找循环节,用什么方法找循环节呢?因为第一个数是0和1,然后当再出现0和1的时候就是出现循环节的时候,然后假如找到了循环节T,然后就有F[n] = F[n % T],预处理找循环节,O(一百万左右),快速幂logn

[台大机器学习笔记整理]作为结果的映射关系的泛化问题

L5 在上节课中已经可以对有限个hypothesis的假设集列出霍夫丁不等式如下: 在进行机器学习的过程中,我们一方面要保证Ein与Eout是比较接近的,另一方面为了获取一个比较好的结果,也希望Ein能比较好.于是有了以下的一个基本trade-off: 当假设集大小M比较小的时候:能够很容易保证Ein与Eout比较接近,但是这个时候由于M比较小,不那么容易选取到一个Ein比较小的结果. v.s. 当假设集大小M比较大的时候:由于备选假设多,所以能够较容易地选取到一个Ein比较小的结果,但是不容易

uva 11605 - Lights inside a 3d Grid(概率)

option=com_onlinejudge&Itemid=8&page=show_problem&problem=2652" style="">题目链接:uva 11605 - Lights inside a 3d Grid 题目大意:给定一个三维坐标系大小,每一个位置有一个灯.初始状态为关.每次随机选中两个点,以这两点为对角线的长方体内全部灯转变状态.操作K次.问说平均情况下.最后会有多少栈灯亮着. 解题思路:枚举坐标系上的点.计算单个点亮着

uva 11722 - Joining with Friend(概率)

题目连接:uva 11722 - Joining with Friend 题目大意:你和朋友乘火车,而且都会路过A市.给定两人可能到达A市的时段,火车会停w.问说两人能够见面的概率. 解题思路:y = x + w 和y = x - w在给定时间内围成的面积除以时间的总面积,就是求面积的时候要分情况处理. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int t