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. 面向对象【day08】:动态导入模块(八)

    本节内容 1.概述 2.知识回顾 3.动态导入模块 一.概述 我们之前导入模块都是用import,或者from ... import ....这种模式去导入模块,那如果我们如何实现只用字符串就可以导入 ...

  2. JAVA核心技术I---JAVA基础知识(常量设计和常量池)

    一:常量---一种不会修改的变量 –Java没有constant关键字 –不能修改,final –不会修改/只读/只要一份,static –方便访问publicJava中的常量 –public sta ...

  3. linux备份用户权限

    1:切换root用户,进入home目录,执行以下命令: [root@localhost home]# ll /home/wangfajun 2: home目录下执行以下命令进行wangfajun用户的 ...

  4. java Calendar 入门【转】

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar. ...

  5. 2016vijos 1-1 兔子的字符串(后缀数组 + 二分 + 哈希)

    题意: 给出一个字符串,至多将其划分为n部分,每一部分取出字典序最大的子串ci,最小化 最大的ci 先看一个简化版的问题: 给一个串s,再给一个s的子串t,问能否通过将串划分为k个部分,使t成为划分后 ...

  6. oldboy s21day04

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.简述解释型语言和编译型语言的区别?"""1.解释型语言:Python,PH ...

  7. 数据结构Java实现01----线性表与顺序表

    一.线性结构: 如果一个数据元素序列满足: (1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素: (2)第一个数据元素没有前驱数据元素: (3)最后一个数据元素没有 ...

  8. CountDownLatch学习

    看了几篇博客,说用CountDownLatch实现一个先执行完子线程,再执行主线程的例子.因此写一篇博客总结一下. 一.CountDownLatch了解 1.CountDownLatch继承了Abst ...

  9. luogu P3172 [CQOI2015]选数

    传送门 颓了一小时柿子orz 首先题目要求的是\[\sum_{x_1=l}^{r}\sum_{x_2=l}^{r}...\sum_{x_n=l}^{r}[gcd(x_1,x_2...x_n)=k]\] ...

  10. Hadoop之MapReduce思维导图