uva 11181(贝叶斯公式)
来源:互联网 发布:詹姆斯社交软件头像 编辑:程序博客网 时间:2024/06/06 02:40
题意:
n个人,给每个人购买东西的概率p[i]。
设其中有r个人买了东西,问每个人买东西的概率是多少。
解析:
问导致结果的条件概率是多少用贝叶斯公式。
代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <climits>#include <cassert>#define LL long longusing namespace std;const int maxn = 1e6;const int inf = 0x3f3f3f3f;const double eps = 1e-8;const double pi = 4 * atan(1.0);const double ee = exp(1.0);int n, r;double mu;double zi[20 + 10];double p[20 + 10];double dfs(int cnt, int num, double pi){ if (cnt == n) return num ? 0.0 : pi; double sum = 0.0; if (num) { sum += dfs(cnt + 1, num - 1, pi * p[cnt]); zi[cnt] += sum; } sum += dfs(cnt + 1, num, pi * (1 - p[cnt])); return sum;}int main(){ #ifdef LOCAL freopen("in.txt", "r", stdin); #endif // LOCAL int ca = 1; while (~scanf("%d%d", &n, &r)) { if (!n && !r) break; memset(zi, 0, sizeof(zi)); for (int i = 0; i != n; ++i) scanf("%lf", &p[i]); double mu = dfs(0, r, 1.0); printf("Case %d:\n", ca++); for (int i = 0; i != n; ++i) printf("%.6lf\n", zi[i] / mu); } return 0;}
0 0
- uva 11181(贝叶斯公式)
- uva 11181 - Probability|Given(枚举,贝叶斯公式)
- UVa 11181 Probability|Given (DFS&贝叶斯公式)
- UVA 10014(推公式)
- uva 10014 Simple calculations(公式推导)
- UVA 1555 - Garland(推公式,贪心)
- UVA - 11609 Teams (排列组合数公式)
- 【UVA】11524-InCircle(公式推导)
- UVa 10868 - Bungee Jumping(物理公式)
- UVA - 1356 Bridge (辛普森公式)
- UVA - 10006 公式
- uva 11524 海伦公式
- UVA——12446(递推公式)
- uva 10112 Myacm Triangles(收索+公式判断)
- uva 10499 The Land of Justice(公式应用)
- UVA - 11029 - Leading and Trailing (快速幂+公式变形)
- UVA 11300 Spreading the Wealth(技巧:中位数 推公式)
- 平面的图欧拉公式(多少块土地,uva 10213)
- 关于gethostbyname在多线程环境下的阻塞问题
- nginx中的多线程时间更新模型
- OC手动内存管理-自动释放池的销毁时机与工作过程
- 利用Windows Live Writer发布CSDN blog
- Linux下的Dos攻击程序
- uva 11181(贝叶斯公式)
- [Leetcode]Spiral Matrix II
- Geometry 对象浅析
- [leetcode 54] Spiral Matrix
- Linux下的IPv6地址、路由以及隧道配置
- FileWriter不覆盖
- 导入Android项目异常
- 链表的一个简单应用---目录下的文件并排序
- 受滚动和缩放等操作影响主线程无法阻塞