UVa 11181 (条件概率) Probability|Given
题意:
有n个人买东西,第i个人买东西的概率为Pi。已知最终有r个人买了东西,求每个人买东西的概率。
分析:
设事件E为r个人买了东西,事件Ei为第i个人买了东西。所求为P(Ei|E) = P(EiE) / P(E)
用一个buy数组记录每个人买或没买东西,然后dfs。
枚举所有r个人买了东西的情况的概率prob,累加到sum[n]中,对于buy[i] == true,再将prob加到sum[i]中。
最后答案为sum[i] / sum[n]
#include <cstdio>
#include <cstring> const int maxn = ;
int n, r;
double P[maxn], sum[maxn];
bool buy[maxn]; void dfs(int d, int c, double prob)
{
if(c > r || d - c > n - r) return; //有太多的1或者0
if(d == n)
{
sum[n] += prob;
for(int i = ; i < n; ++i)
if(buy[i]) sum[i] += prob;
return;
}
buy[d] = ;
dfs(d+, c, prob * (-P[d]));
buy[d] = ;
dfs(d+, c+, prob * P[d]);
} int main()
{
//freopen("in.txt", "r", stdin); int kase = ;
while(scanf("%d%d", &n, &r) == && n)
{
for(int i = ; i < n; ++i) scanf("%lf", &P[i]);
memset(sum, , sizeof(sum));
dfs(, , 1.0);
printf("Case %d:\n", ++kase);
for(int i = ; i < n; ++i)
printf("%.6f\n", sum[i] / sum[n]);
} return ;
}
代码君
UVa 11181 (条件概率) Probability|Given的更多相关文章
- UVa 11181 条件概率
题意:n个人选r个人,每个人被选中的概率为pi,问最后每个人被选中的概率是多少. sol:就是个简单的概率题,范围还特别小,深搜秒出...然而公式什么的很多还是需要注意的... 条件概率的公式 ...
- 集训第六周 数学概念与方法 UVA 11181 条件概率
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18546 题意:有n个人会去超市,其中只有r个人会买东西,每个人独自买东西的概 ...
- 概率论 --- Uva 11181 Probability|Given
Uva 11181 Probability|Given Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.acti ...
- uva 11181 - Probability|Given(概率)
题目链接:uva 11181 - Probability|Given 题目大意:有n个人去超市买东西,给出r,每个人买东西的概率是p[i],当有r个人买东西的时候,第i个人恰好买东西的概率. 解题思路 ...
- UVA - 11181 数学
UVA - 11181 题意: n个人去买东西,其中第i个人买东西的概率是p[i],最后只有r个人买了东西,求每个人实际买了东西的概率 代码: //在r个人买东西的概率下每个人买了东西的概率,这是条件 ...
- UVa 11181 - Probability|Given(条件概率)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Probability|Given UVA - 11181(条件概率)
题目大意:n个人去购物,要求只有r个人买东西.给你n个人每个人买东西的概率,然后要你求出这n个人中有r个人购物并且其中一个人是ni的概率pi. 类似于5个人中 抽出三个人 其中甲是这三个人中的一个的 ...
- Uva - 11181 Probability|Given (条件概率)
设事件B为一共有r个人买了东西,设事件Ai为第i个人买了东西. 那么这个题目实际上就是求P(Ai|B),而P(Ai|B)=P(AiB)/P(B),其中P(AiB)表示事件Ai与事件B同时发生的概率,同 ...
- UVA - 11181 Probability|Given (条件概率)
题意:有n个人,已知每个人买东西的概率,求在已知r个人买了东西的条件下每个人买东西的概率. 分析:二进制枚举个数为r的子集,按定义求即可. #include<cstdio> #includ ...
随机推荐
- SCRUM团队的三个角色
Scrum团队中包括三个角色,他们分别是产品负责人.开发团队和 Scrum Master. Scrum 团队是自组织.跨职能的完整团队.自组织团队决定如何最好地完成他们的工作,而不是由团队外的其他人来 ...
- 【最小生成树】BZOJ 1196: [HNOI2006]公路修建问题
1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1435 Solved: 810[Submit][Sta ...
- 16进制串hex与ASCII字符串相互转换
提供两个函数,方便十六进制串与ASCII 字符串之间的相互转换,使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL . c ...
- 01-04-02【Nhibernate (版本3.3.1.4000) 出入江湖】HQL查询
public IList<Customer> GetAllHql() { IList<Customer> result = null; ISession session = _ ...
- 【C++基础】 类中static private public protected
静态成员在一个类的所有实例间共享数据 “类属性”,是描述类的所有对象共同特征的一个数据项,对所有对象,它的值相同,static定义,为整个类所共有.相对于“实例属性” 如果static成员是私有类型, ...
- 转:[gevent源码分析] 深度分析gevent运行流程
[gevent源码分析] 深度分析gevent运行流程 http://blog.csdn.net/yueguanghaidao/article/details/24281751 一直对gevent运行 ...
- UVA 10523 Very Easy!!!(大数据加法、乘法)
题意:给出N,A,计算i*A^i(i=1~N)的和.1<=N<=30,0<=A<=15. 就是大数据运算,别的没什么,注意细节之处即可. 这题还要注意两个地方: 1.考虑A=0 ...
- 嘿嘿,JAVA里第一次运行单元测试成功,立存
按书上写的单元测试. 居然一次过,爽!!! package org.smart4j.chapter2.test; import java.util.HashMap; import java.util. ...
- hdu 1524 A Chess Game 博弈论
SG函数!! 代码如下: #include<stdio.h> #include<cstring> #define I(x) scanf("%d",& ...
- hdu 4586 Play the Dice
思路:设期望值为s,前m个是再来一次机会,则有 s=(a[1]+s)/n+(a[2]+s)/n+……+(a[m]+s)/n+a[m+1]/n…… 化简:(n-m)s=sum 当sum=0时,为0: 当 ...