n个人 m个篮子 每一轮每一个人能够选m个篮子中一个扔球 扔中的概率都是p 求k轮后全部篮子里面球数量的期望值

依据全期望公式 进行一轮球数量的期望值为dp[1]*1+dp[2]*2+...+dp[n]*n 记为w

当中dp[i]为i个人扔中的概率 dp[i] = C(n, i)*p^i*(1-p)^(n-i) 终于答案为w*k

#include <cstdio>
#include <cstring>
using namespace std;
double dp[20];
double a[20], b[20]; double cm(int n, int m)
{
double ans = 1;
for(int i = 1; i <= m; i++)
{
ans *= (double)n--;
ans /= (double)i;
}
return ans;
}
int main()
{
int T;
int cas = 1;
scanf("%d", &T);
while(T--)
{
int n, m, k;
double p;
scanf("%d %d %d %lf", &n, &m, &k, &p);
dp[0] = a[0] = b[0] = 1;
for(int i = 1; i <= n; i++)
{
a[i] = a[i-1]*p;
b[i] = b[i-1]*(1-p);
}
for(int i = 0; i <= n; i++)
{
dp[i] = cm(n, i)*a[i]*b[n-i];
}
double ans = 0;
for(int i = 1; i <= n; i++)
ans += dp[i]*(double)i;
ans *= (double)k;
printf("Case %d: %.10lf\n", cas++, ans);
}
return 0;
}

最新文章

  1. 磁盘配额-----quota
  2. 转载一篇关于ios copy的文章
  3. SQLServer学习笔记&lt;&gt;sql的范围内查找,sql数据类型,字符串处理函数
  4. hdu 1142 用优先队列实现Dijkstra
  5. 引擎设计跟踪(九.14.2f) 最近更新: OpenGL ES &amp; tools
  6. linux传送文件至服务器
  7. linux的fork函数
  8. Orchard路由随记(一)
  9. 优步uber司机怎么注册不了?注册优步司机问题要点
  10. Cocos2d-x 3.1.1开发环境
  11. 1755: [Usaco2005 qua]Bank Interest
  12. python教程6-4:算数
  13. 找到链表的倒数第K位
  14. Android Material Design(一)史上最全的材料设计控件大全
  15. 【34】包含min函数的stack
  16. Tomcat 调优方案
  17. linux目录的特点
  18. 第一次实验: CC2530平台上电源管理与休眠
  19. RDLC报表系列--------初级报表
  20. linux bash shell:最方便的字符串大小写转换(lowercase/uppercase conversion) (转)

热门文章

  1. java基础——transient
  2. VB.NET机房收费系统总结
  3. MyEclipse改动内存大小
  4. 给centos重新安装yum的base-repo源
  5. Spark RDD概念学习系列之Pair RDD的action操作
  6. spring事务,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  7. ORA-16019 和 ORA-16018 错误的处理方法(转)
  8. Redis的配置文件详解
  9. border-spacing和borer-collapse以及empty-cells属性
  10. SQL 学习——简序以及学习路线