题目链接

紫书P327

题意:有n个人准备去超市逛,其中第i个人买东西的概率是 Pi 。逛完以后你得知有 r 个人买了东西。根据这一信息,计算每个人实际买东西的概率。输入 n ( 1 <= n <= 20 )和r( 0 <= r <= n) 输出每个人实际买了的东西概率

分析: “ r 个人买了东西 ” 这个事件叫做E, “ 第 i 个人买东西 ”这个事件叫做 Ei ,要求的就是 P( Ei | E ) = P ( Ei E) / P ( E ) ;

P(E)的求法利用全概率公式,每一种可能的情况的概率相加,假设 n = 4, r = 2, 有6中可能:1100,1010,1001,0110,0101,0011,其中1100的概率就是P1 * P2 * ( 1 - P3) * ( 1 - P4), 其他的类似,假设求 P ( E1 E ) 就等于所有 P1 被访问过的,即等于1的每种可能之和,sum[ i ] 表示 vis[ i ] = 1 的概率之和,tot表示总概率和

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

UVA11181Probability|Given(条件概率)的更多相关文章

  1. 布朗语料库中条件概率分布函数ConditionalFreqDist使用

    布朗语料库中使用条件概率分布函数ConditionalFreqDist,可以查看每个单词在各新闻语料中出现的次数.这在微博情感分析中非常有用,比如判断feature vector中代表positive ...

  2. UVa 11181 条件概率

    题意:n个人选r个人,每个人被选中的概率为pi,问最后每个人被选中的概率是多少. sol:就是个简单的概率题,范围还特别小,深搜秒出...然而公式什么的很多还是需要注意的...     条件概率的公式 ...

  3. uva11181Probability|Given

    枚举,条件概率. 2^20次方等于100w,是大约可以没准还能过的. 二进制枚举时,如果买东西的人恰好为r个,设概率为p,就将sum[i]+=p(sum[i]为r个人买东西时第i个人买东西的概率),t ...

  4. 学习笔记DL008:概率论,随机变量,概率分布,边缘概率,条件概率,期望、方差、协方差

    概率和信息论. 概率论,表示不确定性声明数学框架.提供量化不确定性方法,提供导出新不确定性声明(statement)公理.人工智能领域,概率法则,AI系统推理,设计算法计算概率论导出表达式.概率和统计 ...

  5. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!

    13张动图助你彻底看懂马尔科夫链.PCA和条件概率! https://mp.weixin.qq.com/s/ll2EX_Vyl6HA4qX07NyJbA [ 导读 ] 马尔科夫链.主成分分析以及条件概 ...

  6. 【概率论】条件概率 & 全概率公式 & 朴素贝叶斯公式

    0. 说明 条件概率 & 全概率公式 & 朴素贝叶斯公式 学习笔记 参考 scikit-learn机器学习(五)--条件概率,全概率和贝叶斯定理及python实现 1. 条件概率 [定 ...

  7. "二阶“条件概率

    公式: P(E|F)=P(E|GF)P(G|F)+P(E|GcF)P(Gc|F) 解释: 已知F发生,E发生的条件概率为P(E|F). 现在多考虑一个条件G,G可能发生也可能不发生. 若F已发生条件下 ...

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

    题目大意:n个人去购物,要求只有r个人买东西.给你n个人每个人买东西的概率,然后要你求出这n个人中有r个人购物并且其中一个人是ni的概率pi. 类似于5个人中 抽出三个人  其中甲是这三个人中的一个的 ...

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

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

随机推荐

  1. 架构系列:ASP.NET 项目结构搭建

    我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都简单的单项目 (2)为 ...

  2. .Net简单图片系统-本地存储和分布式存储

    本地存储 所谓本地存储就是将上传图片保存到图片服务器的本地磁盘上. if (ConfigHelper.GetConfigString("SaveMode") == "Lo ...

  3. C语言之Sleep函数

    Sleep函数: 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include <windows.h& ...

  4. matlab 画图数据导入

    http://www.yiibai.com/matlab/matlab_data_import.html Python 执行py 文件: 在要执行文件处按shift右击鼠标打开cmd 命令窗口,输入: ...

  5. Js中Prototype、__proto__、Constructor、Object、Function关系介绍

    一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的proto ...

  6. hihocoder1033交错和

    题目链接 坑: 1.ll x,y; z=x*y;可能会溢出,于是我写成x%mod*y%mod 仍旧错误,要写成x%mod*(y%mod). 2.f(9019)=1. 要注意如果为0,下一位的符号根据0 ...

  7. stack 栈的实现

    今天晚上去「南哪」听了场AI的讲座,除了话筒真心不给力之外,算是对微软这方面的进展有了更多了解,毕竟是半宣传性质的活动吧. 光听这些是没用的,眼下还是打好基础,多尝试学点新技术,拓宽能力和视野比较重要 ...

  8. Beta版本冲刺———第四天

    会议照片: 项目燃尽图: 1.项目进展: 今天解决的进度:新增加了一个撤销按钮,实现对上一步操作的撤销. 仍在进行对排行榜分数变更的实现. 2.每个人每天做的事情 郭怡锋:汇总工作进度,对此总结,进行 ...

  9. 9.28 Java基本数据类型作业

    要求:声明各数据类型变量或常量,赋值并进行输出. 以下为代码: public class SJLX {//公共类 public static void main(String[] args) { // ...

  10. css3 操作动画要点

    CSS3 有3种和动画相关的属性:transform, transition, animation. 不同点: 1.  触发条件不同.transition通常和hover等事件配合使用,由事件触发.a ...