uva11181(概率)
来源:互联网 发布:大学生网络党校 编辑:程序博客网 时间:2024/06/01 09:38
题意还是很好理解的。。
理解了题意后想概率怎么算。。。费了点劲受了点提示想出来了,对条件概率有了新的认识
开始写代码了,写不出来~,我还以为是自己几天没写手生了,然后发现。。。神奇的递归。。。。
一步一步按代码推出来,膜拜中
在我的思考中这道题关键是枚举所有情况后,如何判断得到的值是否是第i个人买东西的概率,看似很简单,嗯别人的代码也挺简单,但是真的不太好想
#include <stdio.h>
#include <string.h>
const int N = 30;
int n;
double p[N], ans[N];
double dfs(int c, int k, double pi)//(1,r,1)
{
if (c > n)
return k ? 0 : pi;//为什么k不等于0时返回0,因为这时不满足n各种r个买东西的条件,为什么?摊手~
double sum = 0;
if (k)
{
sum += dfs(c + 1, k - 1, pi * p[c]);
ans[c] += sum;
}
sum += dfs(c + 1, k, pi * (1 - p[c]));//注意这时的sum为if中的sum
return sum;
}
int main ()
{
int r, cas = 1;
while (scanf("%d%d", &n, &r), n + r)
{
for (int i = 1; i <= n; i++)
scanf("%lf", &p[i]);
memset(ans, 0, sizeof(ans));
printf("Case %d:\n", cas++);
double P = dfs(1, r, 1);
for (int i = 1; i <= n; i++)
printf("%.6lf\n", ans[i] / P);
}
return 0;
}
/*
3 2
0.10
0.20
0.30
0.413043
0.739130
0.847826
*/
- uva11181(概率)
- uva11181(概率)
- uva11181(条件概率)
- UVA11181 - Probability|Given(概率)
- uva11181(概率)
- UVa11181 条件概率(紫书327页)
- [UVA11181] Probability|Given && 概率
- uva11181 条件概率
- uva11181 - Probability|Given(条件概率)
- uva11181 - Probability|Given 条件概率
- UVa11181 Probability|Given DFS+概率
- 【条件概率】Probability|Given, UVa11181
- UVa11181 - Probability|Given(离散条件概率)
- UVa11181
- 例10-11 uva11181
- Uva11181 Probability|Given
- uva11181 Probability|Given
- 紫书 例题 10-11 UVa11181
- 名字隐藏对虚函数也成立
- HEXO发布到Github上,README.md文件正常显示的解决
- 线程池ThreadPoolExecutor参数设置
- leetcode解题报告21. Merge Two Sorted Lists
- 0、Mybatis源码环境的搭建
- uva11181(概率)
- .9图的制作和短信sms的发送
- 数据结构Huffman树及编码
- 微服务架构(Microservice Architecture)
- 1、mybatis的初始化
- 不知名的有DIO、SCK、RCK引脚的四位LED数码管模块
- 浅谈虚拟机(2.1)凶器简介の局部变量表
- Python3.X中的位运算符
- windows编译protobuf库(用Visual Studio编译)