博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
概率论 --- Uva 11181 Probability|Given
阅读量:6268 次
发布时间:2019-06-22

本文共 1584 字,大约阅读时间需要 5 分钟。

Uva 11181 Probability|Given 

Problem's Link:   http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18546


 

Mean: 

n个人去逛超市,第i个人会购买东西的概率是Pi。出超市以后发现有r个人买了东西,问你每个人购买东西的实际概率是多少。

 

analyse:

转换模型:

有n个员工,每个员工被选出来的概率是Pi。最后选出了r个,问你第i个员工在这r个中的概率是多少。

设:

事件A----第i个员工在这r个员工中。

事件B----从n中选出r个员工。

求的就是在B事件发生的情况下,A事件发生的概率。

Pb为从n个员工中选出r个员工的概率总和,也就是C(n,r)中选中的r个算的是pi,未选中的算(1-pi)。

Pa为第i个员工在选中的r个员工中的概率总和,这个可以在算上面那个的时候一并算出。

最后的答案就是Pa/Pb.

数据很小,直接用递归枚举所有的组合数就行。

Time complexity: O(n^2)

 

Source code: 

/** this code is made by crazyacking* Verdict: Accepted* Submission Date: 2015-05-17-21.37* Time: 0MS* Memory: 137KB*/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long#define ULL unsigned long longusing namespace std;int n,k;double p[25],ans[25];bool vis[25];void dfs(int N,int K) // 从N~n中选K个数的全部组合{ if(!K) { double tmp=1; for(int i=1;i<=n;++i) if(vis[i]) tmp*=p[i]; else tmp*=(1-p[i]); ans[0]+=tmp; for(int i=1;i<=n;++i) if(vis[i]) ans[i]+=tmp; } else { for(int i=N;i<=n;++i) { vis[i]=1; dfs(i+1,K-1);//从i+1~n中再选K-1个数 vis[i]=0; } }}int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int Cas=1; while(cin>>n>>k,n+k) { for(int i=1;i<=n;++i) cin>>p[i]; memset(vis,0,sizeof vis); memset(ans,0,sizeof ans); dfs(1,k); printf("Case %d:\n",Cas++); for(int i=1;i<=n;++i) printf("%.6lf\n",ans[i]/ans[0]); } return 0;}/**/
View Code

 

转载于:https://www.cnblogs.com/crazyacking/p/4510660.html

你可能感兴趣的文章
hadoop YARN配置参数剖析—MapReduce相关参数
查看>>
Java 正则表达式详细使用
查看>>
【ADO.NET】SqlBulkCopy批量添加DataTable
查看>>
SqlServer--bat批处理执行sql语句1-osql
查看>>
Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令
查看>>
laravel安装初体验
查看>>
用yum查询想安装的软件
查看>>
TIJ -- 吐司BlockingQueue
查看>>
数据库分页查询
查看>>
[编程] C语言枚举类型(Enum)
查看>>
[Javascript] Compose multiple functions for new behavior in JavaScript
查看>>
ASP.NET MVC性能优化(实际项目中)
查看>>
ES6里关于类的拓展(一)
查看>>
零元学Expression Blend 4 - Chapter 46 三分钟快速充电-设定Margin的小撇步
查看>>
Format Conditions按条件显示表格记录
查看>>
RichTextBox指定全部文字显示不同颜色及部分文字高亮颜色显示
查看>>
mysql优化----explain的列分析
查看>>
Python正则表达式
查看>>
Java中CAS详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>