条件概率公式: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. 微软MVP社区夏日巡讲诚邀您的参与: 北京,上海,西宁,成都,西安

  2. MVC把随机产生的字符串转换为图片

    原文:MVC把随机产生的字符串转换为图片 Insus.NET在这篇中<在ASP.NET MVC应用程序中随机获取一个字符串>http://www.cnblogs.com/insus/p/3 ...

  3. C++,Python,Go对照学习-01

    好吧其实学Go只是为了好玩,只是为了好玩,学习过程中不免会把其他我懂的语言的思维定势和习惯带进来,由此有了这篇对照学习的记录,就当是留下学习的脚印吧. 这里所提及的语言特性在C++指最新的C++11标 ...

  4. hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题

    今天微博大数据平台发邮件来说.他们有一个hql执行失败.可是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下.最后找到了问题的解决办法,下面是分析过程: 1.执行失败的hql: IN ...

  5. git merge简介(转)

    git merge的基本用法为把一个分支或或某个commit的修改合并现在的分支上.我们可以运行git merge -h和git merge --help查看其命令,后者会直接转到一个网页(git的帮 ...

  6. Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager

    1.错误叙述性说明 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -h ...

  7. krpano漫游加方向性3D声音(这篇文章已被移到krpano中国网站 krpano360.com)

    需求:      在场景转换视角时.会出现不同方位的声音以及对应的音量变化,也即是将声音视作hotspot.当视角转到该声音热点时,也随之听到声音.官方样例:点击打开链接 本文已经搬迁到下述网址.请点 ...

  8. ios swift学习日记1-Swift 初见

    最近ios的swift语言似乎火了,我没有objectc基金会,但在此之前有cjava的基础的.从这几天開始学习ios的swift语言.后期以博客形式公布.这里提供一本翻译的英文版的swif书籍. 还 ...

  9. .NET中lock的使用方法及注意事项

    lock就是把一段代码定义为临界区,所谓临界区就是同一时刻只能有一个线程来操作临界区的代码,当一个线程位于代码的临界区时,另一个线程不能进入临界区,如果试图进入临界区,则只能一直等待(即被阻止),直到 ...

  10. 后台自动启动appium

    首先说明,本人用的exe方式安装的appium. 新建一个.vbs文件,写入以下脚本,记得把D盘换成你自己的盘符. 1.后面taskkill好像没有实际作用..加就加了吧. Set ws = Crea ...