zoukankan      html  css  js  c++  java
  • 题解-poj3682King Arthur's Birthday Celebration

    Problem

    poj-3682

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

    Solution

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

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

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

    解释一下,对于抛一次,有(p)的概率正面,只要再抛(f_{i-1})次即可,所以加上(pcdot 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=pcdot 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/p,1.0*n*(n+1-p)/(p*p));
    	}
    }
    
  • 相关阅读:
    Centos安装Nginx过程步骤详细解析
    查看是否已经安装nginx
    使用uwsgi --http :80 --wsgi-file test.py 在浏览器上无法访问
    uwsgi 常用参数
    Python生成requirements.txt方法
    快排
    绝对路径和相对路径
    perspective结合transform的3D效果
    mobile&nbsp;web&nbsp;手机开发
    Date对象需要注意的点
  • 原文地址:https://www.cnblogs.com/penth/p/9625860.html
Copyright © 2011-2022 走看看