题链:https://cn.vjudge.net/problem/UVA-11181

题意


n个人去了超市,已知每个人买东西的概率为p[i],在已知有r个人买了东西的情况下,求实际上每个人买东西的概率

题解


设r个人买东西的时间为E

\[ans=p(i\;|\;E)=\frac{p(iE)}{p(E)}
\]

每个人买东西的概率是独立的,在一种r情况下,利用乘法原理即可。

多种r情况是互斥的,累加起来即可。

参考代码

import java.io.*;
import java.util.*; public class Main {
static final int N=(int)5005;
static double p[]=new double[25];
static boolean vis[]=new boolean[25];
static int n,r;
static double sum[]=new double[25];
static void dfs(int step,int cnt,double res) {
if(step==n+2||cnt>r) return;
if(step==n+1&&cnt==r) {
sum[0]+=res;
for(int i=1;i<=n;i++) if(vis[i]) {
sum[i]+=res;
}
return;
}
vis[step]=false;
dfs(step+1,cnt,res*(1-p[step]));
vis[step]=true;
dfs(step+1,cnt+1,res*p[step]);
}
public static void main(String[] args) {
InputStream sys=System.in;
InputReader in=new InputReader(sys);
// Scanner sc=new Scanner(new InputStreamReader(sys));
PrintWriter out=new PrintWriter(System.out);
int T=1;
while(true) {
n=in.nextInt();r=in.nextInt();
if(n==0&&r==0) break;
for(int i=1;i<=n;i++) {
p[i]=in.nextDouble();
vis[i]=false;sum[i]=0;
}
sum[0]=0;
dfs(1,0,1);
StringBuffer ans=new StringBuffer();
for(int i=1;i<=n;i++) {
ans.append(String.format("%.6f\n", sum[i]/sum[0]));
}
out.println("Case "+(T++)+":");
out.print(ans);
out.flush();
}
}
static class InputReader {
public BufferedReader reader;
public StringTokenizer tokenizer; public InputReader(InputStream stream) {
reader = new BufferedReader(new InputStreamReader(stream), 32768);
tokenizer = null;
} public String next() {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
} public int nextInt() {
return Integer.parseInt(next());
} public double nextDouble() {
return Double.parseDouble(next());
}
}
}

【UVA 11181】(条件概率)的更多相关文章

  1. UVa 11181 条件概率

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

  2. 集训第六周 数学概念与方法 UVA 11181 条件概率

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18546 题意:有n个人会去超市,其中只有r个人会买东西,每个人独自买东西的概 ...

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

    题意: 有n个人买东西,第i个人买东西的概率为Pi.已知最终有r个人买了东西,求每个人买东西的概率. 分析: 设事件E为r个人买了东西,事件Ei为第i个人买了东西.所求为P(Ei|E) = P(EiE ...

  4. UVA - 11181 数学

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Charles对移动APP抓包(https)

    1.下载安装Charles 2.设置代理 (1)查看默认端口:Proxy->Proxy Settings  在这个页面会看到HTTP Proxy的默认端口是8888 (2)查看当前电脑的IP:H ...

  2. (转 )Unity对Lua的编辑器拓展

    转 http://blog.csdn.net/ZhangDi2017/article/details/61203505 当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀 ...

  3. 05.NopCommerce给Topic表添加排序及类别字段

    在用到Nopcommerce中静态页面表时,发现Topic表没有排序字段和类别字段,导致如果Page文件很多的话,无法区分是哪个类别,为此我稍微扩展了一下字段,在此记录一下操作流程,方便以后自己查看, ...

  4. checkbox:全选、全不选、单选(慕课网题目)

    任务 1.在第27行处补充完整,实现当点击"全选"按钮时,将选中所有的复选项. 提示:document.getElementsByTagName("input" ...

  5. 小程序canvas截图组件

    最近做一个小程序的过程中,需要用到截图功能,网上搜了一下,发现没有符合要求的,就自己搞了个组件,方便复用. 目前功能很简单,传入宽高和图片路径即可,宽高是为了计算截图的比例,只支持缩放和移动. 实现思 ...

  6. JDBC ResultSet分析

    JDBC1.0 .JDBC2.0 .JDBC3.0 中分别用以下方法创建Statement . JDBC1.0 : createStatement() JDBC2.0 : createStatemen ...

  7. react基础语法(二)常用语法如:样式 ,自定义属性,常用表达式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. JS实现让其他浏览器自动转至微信浏览器打开链接

    //判断是否是pc function is_pc() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUser ...

  9. 基于jmeter和shell的接口性能自动化

    基于jmeter和shell的接口性能自动化 1. 总体需求 由于性能测试中涉及的查询接口多,版本迭代频繁,版本更新后自动跑一轮查询业务的性能,可以及时发现一些开发修复bug触发的非预期的bug,利用 ...

  10. How To Build Kubernetes Platform (构建Kubernetes平台方案参考)

    Architecture Architecture Diagram Non-Prod Environment Prod Environment Cluster Networking Container ...