条件概率公式:P( A|B ) = P( AB ) / P( B )

表示在事件B发生的前提,事件A发生的可能性;

问题的:

复位事件E:r个人买东西;

事件Ei:文章i个人买东西;

的要求是P( Ei | E );

计算P( E ) 用全概率公式就可以。採用递归枚举出全部r个人买东西的情况,然后计算出其总的概率;

计算P( Ei ) 就是在上面递归枚举的过程中将选上第i个人的情况的概率加起来;(在这样的情况下,其概率就是:在E发生的前提下的概率)

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn = 21;
int n,r;
double a[maxn],p[maxn],tot;
int vis[maxn]; void dfs(int cur,int cnt)
{
if(cur==n+1)
{
if(cnt==r)
{
double sum=1;
for(int i=1;i<=n;i++)
{
if(vis[i])
sum*=a[i];
else
sum*=(1-a[i]);
}
for(int i=1;i<=n;i++)
{
if(vis[i])
p[i]+=sum;
}
tot+=sum;
}
return;
}
vis[cur]=1;
dfs(cur+1,cnt+1);
vis[cur]=0;
dfs(cur+1,cnt);
} int main()
{
int kase = 0;
while(scanf("%d%d",&n,&r)!=EOF)
{
kase++;
if(n==0&&r==0)
break;
for(int i=1;i<=n;i++)
scanf("%lf",&a[i]);
tot=0;
memset(vis,0,sizeof(vis));
memset(p,0,sizeof(p));
dfs(1,0);
printf("Case %d:\n",kase);
for(int i=1;i<=n;i++)
{
printf("%lf\n",p[i]/tot);
}
}
return 0;
}

又比别人慢了点,它采取了有点过分...

版权声明:本文博客原创文章,博客,未经同意,不得转载。

uva 11181 - Probability|Given的更多相关文章

  1. 概率论 --- Uva 11181 Probability|Given

    Uva 11181 Probability|Given Problem's Link:   http://acm.hust.edu.cn/vjudge/problem/viewProblem.acti ...

  2. uva 11181 - Probability|Given(概率)

    题目链接:uva 11181 - Probability|Given 题目大意:有n个人去超市买东西,给出r,每个人买东西的概率是p[i],当有r个人买东西的时候,第i个人恰好买东西的概率. 解题思路 ...

  3. UVa 11181 - Probability|Given(条件概率)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  4. UVA 11181 Probability|Given (离散概率)

    题意:有n个人去商场,其中每个人都有一个打算买东西的概率P[i].问你最后r个人买了东西的情况下每个人买东西的概率 题解:一脸蒙蔽的题,之前的概率与之后的概率不一样??? 看了白书上的题解才知道了,其 ...

  5. Uva - 11181 Probability|Given (条件概率)

    设事件B为一共有r个人买了东西,设事件Ai为第i个人买了东西. 那么这个题目实际上就是求P(Ai|B),而P(Ai|B)=P(AiB)/P(B),其中P(AiB)表示事件Ai与事件B同时发生的概率,同 ...

  6. UVA - 11181 Probability|Given (条件概率)

    题意:有n个人,已知每个人买东西的概率,求在已知r个人买了东西的条件下每个人买东西的概率. 分析:二进制枚举个数为r的子集,按定义求即可. #include<cstdio> #includ ...

  7. uva 11346 - Probability(概率)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=2321">题目链接:uva 11346 - ...

  8. UVA - 11181 数学

    UVA - 11181 题意: n个人去买东西,其中第i个人买东西的概率是p[i],最后只有r个人买了东西,求每个人实际买了东西的概率 代码: //在r个人买东西的概率下每个人买了东西的概率,这是条件 ...

  9. uva 11346 - Probability(可能性)

    题目链接:uva 11346 - Probability 题目大意:给定x,y的范围.以及s,问说在该范围内选取一点,和x,y轴形成图形的面积大于s的概率. 解题思路:首先达到方程xy ≥ s.即y ...

随机推荐

  1. sql 学习笔记 档

    从下面的内容 3c   school 1:Sql 它分为两部分: 6 2:查询 7 3:插入: 9 4:数据库更新 UPDATE 9 5:删除 DELETE 10 6:Sql TOP 子句: 10 7 ...

  2. Hadoop0.20.2 Bloom filter应用演示样例

    1. 简单介绍 參见<Hadoop in Action>P102 以及 <Hadoop实战(第2版)>(陆嘉恒)P69 2. 案例 网上大部分的说明不过依照<Hadoop ...

  3. Python 提取Twitter转发推文的元素(比方username)

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-24 @author: guaguastd @name: e ...

  4. &quot;伪中国移动client&quot;--伪基站诈骗

    一.简单介绍: 近日,百度安全实验室发现一款"伪中国移动client"病毒.犯罪分子通过伪基站方式大量发送伪10086的短信,诱导用户点击钓鱼链接:并在钓鱼页面诱导用户输入网银账号 ...

  5. HOWTO: 为GitHub for Windows指定代理服务器(转)

    If the command line way of configuring your proxy server doesn't work, you can probably just edit .g ...

  6. MVC中使用泛型仓储模式和依赖注入

    在ASP.NET MVC中使用泛型仓储模式和依赖注入,实现增删查改 原文链接:http://www.codeproject.com/Articles/838097/CRUD-Operations-Us ...

  7. android模拟器与PC的端口映射(转)

    阅读目录 一.概述 二.实现步骤 回到顶部 一.概述 Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身设置为127.0.0.1,而PC并没有为Android模拟器系统指定IP,所 ...

  8. HDU 5052 Yaoge’s maximum profit 光秃秃的树链拆分 2014 ACM/ICPC Asia Regional Shanghai Online

    意甲冠军: 特定n小点的树权. 以下n每一行给出了正确的一点点来表达一个销售点每只鸡价格的格 以下n-1行给出了树的侧 以下Q操作 Q行 u, v, val 从u走v,程中能够买一个鸡腿,然后到后面卖 ...

  9. PL/SQL 9 许可证

    code:j6stndb9tk72xfbhbqczcdqnjd8lyj466n number:882851 ps:xs374ca 我是PL/SQL版本号是: Version 9.0.3.1641 要注 ...

  10. 大数据系列修炼-Scala课程01

    简介 由于本人刚毕业,也是从事软件开发相关的工作.想再学习一下关于大数据.移动互联网.云计算相关的技术.为我的未来打好基础.并且从零开始学习大数据相关的知识,脚踏实地的走好每一步,听行业前辈说毕业生刚 ...