题意:

两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望。

分析:

紫书上面已经分析的很清楚了,而且也给出了解决精度损失问题的方法,就是先取对数然后再乘幂。

 #include <cstdio>
#include <cmath> const int maxn = + ;
long double logF[maxn * + ]; long double logC(int n, int m)
{
return logF[n] - logF[m] - logF[n-m];
} int main()
{
//freopen("in.txt", "r", stdin);
for(int i = ; i <= maxn*; ++i)
logF[i] = logF[i-] + log(i); int n, kase = ;
double p;
while(scanf("%d%lf", &n, &p) == )
{
double ans = 0.0;
for(int i = ; i <= n; ++i)
{
long double c = logC(*n-i, n);
long double v1 = c + (n+)*log(p) + (n-i)*log(-p);
long double v2 = c + (n+)*log(-p) + (n-i)*log(p);
ans += i * (exp(v1) + exp(v2));
}
printf("Case %d: %.6f\n", ++kase, ans);
} return ;
}

代码君

最新文章

  1. Allegro 导入DXF文件,保留布好的线路信息
  2. 转 父表字表统计查询的sql练习
  3. CSS3——动画效果
  4. MD5和Base64介绍与应用
  5. angular项目——小小记事本1
  6. 详解Java动态代理机制
  7. 锐捷Linux版的下载和使用(福大客户端)
  8. CPP内存检测
  9. tensorflow安装-【老鱼学tensorflow】
  10. call、apply、bind
  11. [uboot] (第四章)uboot流程——uboot编译流程
  12. 《Inside C#》笔记(完) 程序集
  13. 利用jQuery-UI和jsPlumb实现拖拽连接模型
  14. git 新建工程
  15. 关于能量场和力场弯曲空间的实验证明 EXPERIMENTAL PROOF ON THE BENDING SPACE OF ENERGY FIELD AND FORCE FIELD
  16. 语义化版本控制规范(SemVer)
  17. HTML5开发——轻量级JSON存储解决方案Lawnchair.js
  18. 制作Solaris系统的USB启动盘
  19. C#调用ActiveX
  20. 2.vue脚手架项目配置

热门文章

  1. NVIDIA显卡设置提升MineCraft流畅度
  2. 【C++】GacLib——ListView.ViewSwitching
  3. 2016年辛星less教程发布了
  4. 使用公钥登录SSL
  5. 关于谷歌Chrome浏览器的两个Bug?
  6. EXTJS 4.2 资料 控件之Window窗体自动填充页面
  7. /****************** Attributes ********************/
  8. 彻底卸载网易UU网游加速器的方法
  9. 在百万数据中找出重复的数据sql
  10. PD code与name联动(取消)设置