Uva--11181--Probability|Given
来源:互联网 发布:mac顶部菜单栏蓝牙 编辑:程序博客网 时间:2024/05/18 00:20
一道概率题,高中的知识,算了半天没搞明白第一个样例结果怎么得到的,然后还是百度了。。。
公式是这个:
叫做贝叶斯公式(高中时没听过这个叫法)
看到这公式我还是没看明白,直到看到这个解释:
拿样例一的“三选二”为例:
分母怎么求?P=买*买*不买+买*不买*买+不买*买*买=0.092,这是三个人中恰有两个人买东西的概率。
分子怎么求?P(1号买了)=买*买*不买+买*不买*买=0.038,所以在有2个人买了东西的情况下1号买了东西的概率是0.038/0.092≈0.413403
#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<vector>#include<set>#include<queue>#include<stack>#include<stdlib.h>#include<ctime>#define PI acos(-1)using namespace std;int n,r;double a[25],s[25];double solve(int cnt,int r,double p){ if(cnt==n) return r?0:p; double sum=0; if(r) { sum+=solve(cnt+1,r-1,p*a[cnt]); s[cnt]+=sum; } sum+=solve(cnt+1,r,p*(1-a[cnt])); return sum;}int main(){ int i,k=1; while(scanf("%d%d",&n,&r),n||r) { for(i=0;i<n;i++) scanf("%lf",&a[i]); memset(s,0,sizeof(s)); double fen=solve(0,r,1); printf("Case %d:\n",k++); for(i=0;i<n;i++) printf("%.6lf\n",s[i]/fen); } return 0;}
- uva 11181 Probability|Given
- Probability Given, UVa 11181
- Uva 11181 - Probability|Given
- UVA 11181 Probability|Given
- UVa 11181 Probability|Given
- Uva--11181--Probability|Given
- uva 11181 Probability|Given
- UVA 11181 - Probability|Given
- uva 11181 - Probability|Given
- UVA 11181 Probability|Given
- uva 11181 Probability|Given
- UVa 11181 Probability|Given
- UVa 11181 Probability|Given
- UVA 11181 Probability|Given
- UVa 11181 Probability|Given
- UVa 11181 - Probability|Given 概率
- UVA 11181 Probability|Given 概率
- UVa--11181 Probability|Given(math)
- 深入理解计算机系统:优化程序性能
- ORACLE异常(整理网上资料)
- volatile限定符{C}
- oracle字符集深入研究
- fork的简析
- Uva--11181--Probability|Given
- 细说jquery ui和jqgrid的ASP.NET实现
- http://blog.csdn.net/t12x3456/article/details/8877679
- 光照
- 嵌入式 SIGCHLD信号与SIG_IGN处理的使用示例
- MySQL中获取当前查询的总记录数,适用于分页等应用
- DX报表的开发流程(1)
- nyoj 171 聪明的kk
- 如何通过Microsoft SQL Server Management Studio查看各表行记录数