Problem

poj-3682

题目大意:抛一次硬币有\(p\)的概率得到正面,当有\(n\)次正面时停止,抛第\(i\)次的花费为\(2i-1\),求抛的期望次数和期望花费

Solution

本来做这题就是想巩固一下期望方面的东西,可能有点拓展

第一问比较明显,设\(f_i\)表示抛掷了\(i\)次时的期望天数,依题意有:

\(f_i=p\cdot f_{i-1}+(1-p)\cdot f_i+1\)

解释一下,对于抛一次,有\(p\)的概率正面,只要再抛\(f_{i-1}\)次即可,所以加上\(p\cdot f_{i-1}\),有\(1-p\)的概率反面,则仍要抛\(f_i\)次,所以加上\((1-p)\cdot f_i\),再加上这次抛掷的一次,我们就得到了有\(i\)次正面时天数的期望

上面的式子移项消掉,得到\(f_i=f_{i-1}+\frac 1p\),即\(f_i=\frac ip\)


第二问有点意思,设\(E_i\)表示抛掷了\(i\)次正面时的期望花费,仿照上面的式子写出:

\(E_i=p\cdot E_{i-1}+(1-p)\cdot E_i+2f_i-1\)

式子解释和上面一样,只是抛掷的成本变为了\(2f_i-1\)

同样化简,\(E_i=E_{i-1}+\frac {2i}{p^2}-\frac 1p\),求和可得\(E_i=\frac {(1+n)n}{p^2}-\frac np\)


至于为什么抛掷花费可以用\(2f_i-1\)这种利用期望表示的式子,其实是因为\(2f_i-1\)这个式子为一次函数,我们可以用两种方法证明在外部函数为一次函数的情况下,可以利用期望做自变量得到因变量的期望

同时扩展一下,我们可以证明,仅有一次函数满足这个条件

我们明确一下证明的内容,即若\(x_0\)为\(x\)的期望,若\(F(x_0)\)等于\(F(x)\)的期望,则\(F(x)\)一定为一次函数(为了方便表达,设\(F^{'}(x)\)为\(F(x)\)的期望)

①证明一次函数可行

由于\(x_0=\sum p_iv_i\),我们将其中\(p_i\)的影响去掉,用一个无穷集合记录,在这个集合中\(v_i:v_j\)的数量比为\(p_i:p_j\),而\(x_0\)则可以表达为这个集合元素的平均数(实际上就是将加权平均数化为了平均数,更便于理解)

而\(x_0\)的定义为集合数中的一次方平均数,则在一次函数\(F(x)\)的影响下,\(\frac {\sum F(x)}n=F(\frac {\sum x}n)\)

推广一下,若\(x_0\)为元素的\(k\)次方期望(加权平均值),则仅有\(k\)次函数满足上述性质

②证明仅有一次函数可行

由于\(x_0=\sum p_iv_i\)

则有\(F(x_0)=F(\sum p_iv_i),F^{'}(x)=\sum p_iF(v_i)\)

如果要求\(F(x_0)=F^{'}(x)\),则要求\(F(\sum p_iv_i)=\sum p_iF(v_i)\),满足条件下\(F(pv)=pF(v)\),则\(F(x)\)一定为正比例函数,但考虑到求\(\sum\)时项的数量都是相等的,所以我们可以在正比例函数的基础上加上一个常数,这样在求\(\sum\)后常数之间可以抵消。由此可证\(F(x)\)一定要求为一次函数

Code

#include <cstdio>
int main(){
int n;double p;
while(1){
scanf("%d%lf",&n,&p);if(!n)return 0;
printf("%.3lf %.3lf\n",n/p,1.0*n*(n+1-p)/(p*p));
}
}

题解-poj3682King Arthur's Birthday Celebration的更多相关文章

  1. POJ3682King Arthur's Birthday Celebration(数学期望||概率DP)

    King Arthur is an narcissist who intends to spare no coins to celebrate his coming K-th birthday. Th ...

  2. poj-3682 King Arthur's Birthday Celebration

    C - King Arthur's Birthday Celebration POJ - 3682 King Arthur is an narcissist who intends to spare ...

  3. POJ3682 King Arthur's Birthday Celebration

    King Arthur is an narcissist who intends to spare no coins to celebrate his coming K-th birthday. Th ...

  4. 【概率论】【POJ 3682】【King Arthur's Birthday Celebration】

    题意:进行翻硬币实验,若k次向上则结束,进行第n次实验需花费2*n-1的费用,询问期望结束次数及期望结束费用 设F[i]为第i次结束时的概率 F[i]=  c(i-1,k-1)*p^k*(1-p)^( ...

  5. King Arthur's Birthday Celebration

    每天抛一个硬币,硬币正面朝上的几率是p,直到抛出k次正面为止结束,第一天抛硬币需花费1,第二天花费3,然后是5,7,9……以此类推,让我们求出抛硬币的天数的期望和花费的期望. 天数期望: A.投出了k ...

  6. POJ3682;King Arthur's Birthday Celebration(期望)

    传送门 题意 进行翻硬币实验,若k次向上则结束,进行第n次实验需花费2*n-1的费用,询问期望结束次数及期望结束费用 分析 我们令f[i]为结束概率 \[f[i]=C_{i-1}^{k-1}*p^k* ...

  7. [POJ3682]King Arthur's Birthday Celebration[期望DP]

    也许更好的阅读体验 \(\mathcal{Description}\) 每天抛一个硬币,硬币正面朝上的几率是p,直到抛出k次正面为止结束,第\(i\)天抛硬币的花费为\(2i-1\),求出抛硬币的天数 ...

  8. 题解 [CF525D] Arthur and Walls

    题面 解析 首先考虑将一个\('*'\)变成\('.'\)后会形成什么, 显然至少是一个\(2\times 2\)的矩形. 因为\(1\times 1\)和\(1\times 2\)的改了没用啊, 而 ...

  9. poj 3682 King Arthur's Birthday Celebration (期望dp)

    传送门 解题思路 第一问比较简单,设$f[i]​$表示扔了$i​$次正面向上的硬币的期望,那么有转移方程 : $f[i]=f[i]*(1-p)+f[i-1]*p+1​$,意思就是$i​$次正面向上可以 ...

随机推荐

  1. CSS-Naming-Conventions--BEM

    BEM BEM : Block Element Modifier There are only two hard problems in Computer Sciences:cache invalid ...

  2. LR与SVM的异同

    原文:http://blog.sina.com.cn/s/blog_818f5fde0102vvpy.html 在大大小小的面试过程中,多次被问及这个问题:“请说一下逻辑回归(LR)和支持向量机(SV ...

  3. 061、flannel的连通与隔离(2019-04-01 周一)

    参考https://www.cnblogs.com/CloudMan6/p/7447716.html   flannel网络连通性测试 不同host上的容器可以通过flannel网络进行通信,需要借助 ...

  4. ssh 跳板机部署

    1.首先创建存放日志的文件夹并开放读写权限       mkdir /var/log/jump/       chmod -R 777 /var/log/jump/   2.将原有ssh程序修改为另外 ...

  5. 50个最常用的Linux命令

    转载至:http://gywbd.github.io/posts/2014/8/50-linux-commands.html tar grep find ssh sed awk vim diff so ...

  6. 调用waitpid的SIGCHLD信号处理函数

    #include <stdio.h> #include <sys/wait.h> void sig_chld(int signo) { pid_t pid; int stat; ...

  7. Emmet 记录

    Refs 熟悉 css 有优势,emmet 的的缩写语法特别像 css 选择器. =>参考本博笔记 # id > 直接子元素 child . class + Sibling 同级相邻的一个 ...

  8. MySQL api

    今天看去年年中写的代码,留意到一个关键时刻能提高效率的api:on duplicate key update: 语法: INSERT INTO INSERT INTO g_iot_user_build ...

  9. Linux 文件大小查找排序

    du -sh 文件大小查询: 1.当前目录的大小: du -sh | sort 2.当前 目录下的文件大小: ls -lsh 3.当前目录 下的文件大小排序: du -sh * |sort -n 4. ...

  10. rabbitMQ学习1:消息队列介绍与rabbitmq安装使用

    1. 什么是消息队列 生活里的消息队列,如同邮局的邮箱, 如果没邮箱的话, 邮件必须找到邮件那个人,递给他,才玩完成,那这个任务会处理的很麻烦,很慢,效率很低 但是如果有了邮箱, 邮件直接丢给邮箱,用 ...