博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 11181 Probability|Given 数学 条件概率
阅读量:6737 次
发布时间:2019-06-25

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

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

  题目描述: 有n个人, 已知每个人买东西的概率, 现在n个人中一共有r个人买了东西, 问每个人实际买东西的概率是多少

  解题思路: 一开始我设Xi为第i个人实际买东西的概率, X1 + X2 + ...... + Xn == r, 又已知P1*X1 + P2*X2 + ...... + Pn*Xn == 1 求每一个Xi, 我又犯蠢了, 我竟然想这样求出来每一个Xi......如果这道题Xi为已知求Pi就能求了, 但是这样是求不出来的啊, 应该用条件概率来求, P(Ei|E) = P(Ei&&E) / P(E) 这里的事件E就是N个人里面有r个人买东西的概率, 递归求一下就可以了, 函数是dfs( int id, int cnt ) 当cnt == r的时候, 更新P(E)的同时也更新一下P(Ei&&E)就可以了

  代码: 

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1#define mem0(a) memset(a,0,sizeof(a))#define meminf(a) memset(a,-0x3f,sizeof(a))#define fi(n) for(i=0;i
n ) return; if( cnt == r ) { double PE = 1.; for( int i = 1; i <= n; i++ ) { if( a[i] ) PE *= p[i]; else PE *= (1.-p[i]); }// for( int i = 1; i <= n; i++ ) {// cout << a[i] << " ";// }// cout << endl; ret += PE; for( int i = 1; i <= n; i++ ) { if( a[i] ) { ans[i] += PE; } } return; } for( int i = id+1; i <= n; i++ ) { a[i] = 1; pe( i, cnt+1 ); a[i] = 0; }}int main() { int cases = 1; while( scanf( "%d%d", &n, &r ) == 2 ) { if( n == 0 && r == 0 ) break; mem0(a); mem0(ans); for( int i = 1; i <= n; i++ ) { scanf( "%lf", p+i ); } ret = 0; pe(0, 0);// cout << ret << endl; printf( "Case %d:\n", cases++ ); for( int i = 1; i <= n; i++ ) { printf( "%.6lf\n", ans[i]/ret); } } return 0;}
View Code

  思考: 函数递归都写不好了啊......是真的菜, 代码能力不强是真的伤, 还有就是遇到概率问题就要向知识点上去转化, 根据公式去计算, 不要凭直觉去算, 这样往往都是错误的, 是题目给你留的坑, 跳进去就是死胡同

转载于:https://www.cnblogs.com/FriskyPuppy/p/7417734.html

你可能感兴趣的文章
java 取汉字首字母
查看>>
苹果版小黄车(ofo)app主页菜单效果
查看>>
使用Genymotion模拟器或者手机运行ionic4程序
查看>>
Hadoop之父Doug Cutting
查看>>
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值---部分内容可能不确切,待讨论...
查看>>
Matlab随笔之插值与拟合(上)
查看>>
Socket 通信(基础原理、实时聊天系统雏形)
查看>>
理解和使用WPF 验证机制
查看>>
tensorflow 在加载大型的embedding模型参数时,会遇到cannot be larger than 2GB
查看>>
Flutter的教程:ListView
查看>>
xxl-job安装教程
查看>>
SpringBoot(十八)@value、@Import、@ImportResource、@PropertySource
查看>>
[dubbo] Dubbo API 笔记——配置参考
查看>>
The last access date is not changed even after reading the file on Windows 7
查看>>
SQL Server 字符串处理函数
查看>>
恢复系统管理员密码的五大奇招
查看>>
英语形容“漂亮女孩”知多少
查看>>
GridView 获取当前行的索引值
查看>>
PHPCMS V9二次开发:内容模块PC标签调用详解
查看>>
tomcat发布web项目,支持域名
查看>>