UVa 11181 - Probability|Given (条件概率)
来源:互联网 发布:淘宝店取名技巧 编辑:程序博客网 时间:2024/06/05 17:53
题意:
有n个人,已知每个人在超市买东西的概率为pi。现在已知实际上r个人在
超市买了东西,问实际每个人买了东西的概率。
算法:
就是求已知r个人在超市买东西的条件下每个人在超市买东西的条件概率。
拿样例一的“三选二”为例。
分母怎么求?P=买*买*不买+买*不买*买+不买*买*买=0.092,这是三个人中恰有两个人买东西的概率。
分子怎么求?P(1号买了)=买*买*不买+买*不买*买=0.038,所以在有2个人买了东西的情况下1号买了东西的概率是0.038/0.092≈0.413403
贴个讲解超级棒的链接!http://tech.ddvip.com/2013-12/1386689215206949.html
#include<cstdio>#include<iostream>#include<cstring>using namespace std;double p[25],ans[25];int n;double dfs(int pos,int r,double pi){ if(pos == n+1) return r?0.0:pi; //如果n个人中没有选够r个人则为0,反之返回pi double sum = 0.0; if(r) //选当前pos位的人 { sum += dfs(pos+1,r-1,pi*p[pos]); ans[pos] += sum; } sum += dfs(pos+1,r,pi*(1-p[pos])); return sum;}int main(){ int r,cas = 1; while(scanf("%d%d",&n,&r)!=EOF) { if(n==0 && r==0) break; for(int i=1;i<=n;i++) scanf("%lf",&p[i]); printf("Case %d:\n",cas++); memset(ans,0,sizeof(ans)); double q = dfs(1,r,1.0); for(int i=1;i<=n;i++) { printf("%.6lf\n",ans[i]/q); } } return 0;}
0 0
- 【UVA】11181 - Probability|Given(条件概率)
- UVa 11181 - Probability|Given (条件概率)
- uva 11181 Probability|Given 条件概率
- UVa 11181 - Probability|Given 概率
- UVA 11181 Probability|Given 概率
- UVA.11181 Probability|Given (概率)
- uva 11181 - Probability|Given(概率)
- UVA 11181 - Probability|Given (概率DFS)
- Probability|Given - UVa 11181 概率dp
- Uva 11181 Probability|Given(概率dp)
- UVA-11181 Probability|Given(概率)
- uva11181 - Probability|Given(条件概率)
- uva11181 - Probability|Given 条件概率
- 【条件概率】Probability|Given, UVa11181
- UVA 11181(C) ——Probability|Given (条件概率, dfs求组合)
- uva 11181 Probability|Given
- Probability Given, UVa 11181
- Uva 11181 - Probability|Given
- android的Android.mk
- mount命令
- java多线程 之 CompletionService与ExecutorCompletionService
- Android.mk分析
- 常用函数
- UVa 11181 - Probability|Given (条件概率)
- Note for video Machine Learning and Data Mining——Linear Model
- matlab norm函数
- RoboCup2Dxpm格式team_logo制作方法(base_team:agent2d-3.1.1)
- 简单的C语言二叉树的实现代码
- ubuntu server版 安装增强功能
- Android_HAL
- Android为什么引入HAL
- 闪传使用体验