uva11181(概率)
来源:互联网 发布:软件下载页面打不开 编辑:程序博客网 时间:2024/06/10 04:57
题意:
题目意思就是超市有n个人,每个人都有购物的概率;
问我们刚好有r个人购物,且包含第i个人的概率(打印出所有i)
思路:
首先我们要求出只有k个人的概率p1;
再求出只有k个人,且包含i的概率p2;
p1/p2就是我们要求的概率;
题目意思就是超市有n个人,每个人都有购物的概率;
问我们刚好有r个人购物,且包含第i个人的概率(打印出所有i)
思路:
首先我们要求出只有k个人的概率p1;
再求出只有k个人,且包含i的概率p2;
p1/p2就是我们要求的概率;
我们求概率可以用dfs;在我们找出r个人后,还要乘上剩下的人都没购物的概率;
ac:
#include<cstdio>#include<cstring>const int N = 25;double p[N];int vis[N];int n,r;double dfs(int k, int num ,int cur) {double temp;if(k == num) {temp = 1.0;for(int i = 0 ; i < n ;i++) {if(!vis[i])temp *= (1.0 - p[i]);}return temp;}temp = 0;for(int i = cur ; i < n ; i++) {if(!vis[i]) {vis[i] = 1;temp += dfs(k + 1 ,num ,i + 1) * p[i];vis[i] = 0;}}return temp;}int main() {int cas = 1;while(scanf("%d%d",&n,&r) && n && r) {memset(vis , 0 ,sizeof(vis));double p1,p2;for(int i = 0 ; i < n ; i++) {scanf("%lf",&p[i]);}printf("Case %d:\n",cas++);p1 = dfs(0 , r , 0);for(int i = 0 ; i < n ; i++) {vis[i] = 1;p2 = dfs(0 , r - 1 , 0) * p[i];printf("%.6lf\n",p2 / p1);vis[i] = 0;}}}
0 0
- uva11181(概率)
- [UVA11181] Probability|Given && 概率
- uva11181(概率)
- uva11181(概率)
- uva11181 条件概率
- uva11181(条件概率)
- uva11181 - Probability|Given(条件概率)
- uva11181 - Probability|Given 条件概率
- UVA11181 - Probability|Given(概率)
- UVa11181 Probability|Given DFS+概率
- 【条件概率】Probability|Given, UVa11181
- UVa11181 - Probability|Given(离散条件概率)
- UVa11181 条件概率(紫书327页)
- UVa11181
- 例10-11 uva11181
- Uva11181 Probability|Given
- uva11181 Probability|Given
- 紫书 例题 10-11 UVa11181
- 机器学习十大算法的每个算法的核心思想、工作原理、适用情况及优缺点
- 1063. Set Similarity (25)
- installshield打包成只有setup.exe的安装包时获取setup.exe所在路径的方法
- 杭电2629
- Two Sum【LeetCode】
- uva11181(概率)
- Drainage Ditches ( ISAP+GAP优化)
- 关于Staruml与powerdesigner启动使用中的问题
- Python upper() 函数 转换为大写字母
- iOS--异步加载图片的ImageView和Button
- hdu 1058 dp解法
- Acm寒假训练有感
- Winform第二天总结
- 顺序表的应用举例(顺序表A和顺序表B的元素都是非递减排列,利用顺序表的基本运算,将它们合并成一个顺序表C,要求C也是非递减序列。)