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. testlink for windows 安装

    testlink的使用说明可到官网查看:http://www.testlink.org.cn/509.html 一.安装xampp 到xampp官网中下载安装文件,按步骤安装即可. 二.Testlin ...

  2. Hadoop记录-变更

    1.安装salt-minion sed -i 's/^#//g' /etc/yum.repos.d/centos7.4.repo sed -i 's/enabled=0/enabled=1/g' /e ...

  3. 【1】【leetcode-77】 组合

    (典型,做过似曾相识但不熟悉,基本知道怎么做但调试了一个多小时各种错) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. 示例: 输入: n = 4, k = 2 输出: ...

  4. 11-SQLServer的事务、存储过程和触发器

    一. 事务 在SQLServer中,每条SQL语句,默认就是一条隐式的事务,但是如果我们需要一组SQL语句,那么就需要采用SQLServer提供的特有的标记 来声明事务的开始.提交和回滚了. 事务的开 ...

  5. jsp实现验证码登陆

    login.jsp: <%@ page language="java" import="java.util.*,com.cn.servlet.*" pag ...

  6. plsql developer 11 + Oracle 11g 开发环境setup

    这是一个很水的博客, 介绍搭建plsql developer 11+ Oracle 11g 开发环境. 1. 本机上安装Oracle 11g express 对于开发足够了, 300MB的下载文件, ...

  7. SQL Server进阶(十)事务和并发处理

    1 https://www.cnblogs.com/edisonchou/p/6129717.html

  8. Newtonsoft.Json序列化字符串-格式化

    转自:https://blog.csdn.net/wlphlj/article/details/51982866最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json publi ...

  9. 26. SpringBoot 初识缓存及 SimpleCacheConfiguration源码解析

    1.引入一下starter: web.cache.Mybatis.MySQL @MapperScan("com.everjiankang.cache.dao") @SpringBo ...

  10. Android 常见异常及解决办法

    Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1.   java.lang.NullPointerException: Attempt to i ...