题目:有2中面条各n碗。每次抛硬币推断吃哪一种(到一种吃完为止)。问抛硬币的数学期望。

分析:动态规划。概率dp。求出每种结束状态(即,有一种吃完)的概率,分别乘以步长即为期望。

大黄解法:状态位剩余的碗数,逆向求解,状态方程:

DP[ i ][ j ] = (DP[ i-1 ][ j ]+DP[ i ][ j-1 ])/2 + 1 { orz~~ (所有20行代码就能搞定) }。

说明:(2011-09-27 03:22)。

#include <stdio.h>
#include <stdlib.h> double p[ 1002 ][ 1002 ];
double q[ 1002 ]; int main()
{
for ( int i = 0 ; i <= 1000 ; ++ i )
for ( int j = 0 ; j <= 1000 ; ++ j )
p[ i ][ j ] = 0.0;
p[ 0 ][ 0 ] = 1.0;
for ( int i = 0 ; i <= 1000 ; ++ i )
for ( int j = 0 ; j <= 1000 ; ++ j ) {
p[ i+1 ][ j ] += p[ i ][ j ]*0.5;
p[ i ][ j+1 ] += p[ i ][ j ]*0.5;
} for ( int i = 1 ; i <= 1000 ; ++ i ) {
double sum = p[ i ][ 0 ]*i;
for ( int j = i-1 ; j >= 1 ; -- j )
sum += (i+j)*(p[ i ][ j ]-p[ i ][ j-1 ]*0.5);
q[ i ] = sum*2.0;
} int t,n;
while ( scanf("%d",&t) != EOF )
while ( t -- ) {
scanf("%d",&n);
printf("%.2lf\n",q[ n ]);
}
return 0;
}

最新文章

  1. 图解c/c++多级指针与“多维”数组
  2. Msyql-检测数据库版本
  3. UML类图中的六种关系及实例【补充】
  4. (转) 使用Speech SDK 5.1文字转音频
  5. 线段树 + 矩阵 --- ZOJ 3772 Calculate the Function
  6. Linux学习之四——磁盘与文件系统管理
  7. [转]EntityFramework走马观花之CRUD(上)
  8. 测试工具:insure++
  9. SQL Server 2012 - 数据库的基础操作
  10. 基于cxf开发restful风格的Web Service
  11. mybatis通用mapper的使用
  12. Volley 图片加载相关源码解析
  13. sql server使用sql语句上传Excel到数据库
  14. pyqt pyside 设置窗口关闭时删除自身
  15. android recovery升级过程中掉电处理
  16. Java基础语法&lt;八&gt; 继承 多态 抽象 反射
  17. 在树莓派是安装并配置NTP服务
  18. 使用python操作excel表格
  19. Django--ORM(模型层)-重点
  20. 如何在Axure中使用FontAwesome字体图标

热门文章

  1. 一两眼题(oneortwo)
  2. Codeforces Round #316 (Div. 2) B 贪心
  3. Reactor模式总结
  4. 局部a链接样式
  5. DOS头结构
  6. 嵌入式Linux之我行——ARM MMU工作原理剖析【转】
  7. Codeforces Gym100971 K.Palindromization-回文串 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
  8. MapReduce1 工作机制
  9. JMeter性能测试常用之事务控制器实例
  10. HTTP 状态消息 [转]