FZU 2132 LQX的作业 概率问题
来源:互联网 发布:js防水涂料施工报价表 编辑:程序博客网 时间:2024/05/12 08:23
点击打开链接
Problem 2132 LQX的作业
Accept: 61 Submit: 135
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
LQX在做作业时遇到一个难题不会做,请你帮她计算一下:在N个独立地分布于0和1之间的随机变量排为非递减顺序之后,这些变量中第M个小于等于x的概率是多少?
Input
第一行一个整数T(T<=1000),表示有T组数据。
每组数据一行,依次是N M x(1<=M<=N<30, 0<x<1),以空格隔开。
Output
每组数据对应一行输出,即概率是多少,四舍五入保留4位小数。
Sample Input
31 1 0.32 1 0.52 2 0.8
Sample Output
0.30000.75000.6400
做个演示,比如n是5,m是3,x是0.3的话,题目要求是递增的,那么可以将1,2,3,4,5都放在0.3的左边,也就是这种情况:
这种情况的概率就是C(5,5)*(0.3^5)*(0.7^0)。
然后还可以把1,2,3,4,放在0.3左边,5放在0.3的右边:
这种情况的概率就是C(5,4)*(0.3^4)*(0.7^1)。
还有一种情况就是1,2,3,在0.3的左边,4,5在0.3的右边:
这种情况的概率就是C(5,3)*(0.3^3)*(0.7^2)。
最后把这三个概率加起来即为所求。
一开始我的for循环是从n→m从大到小遍历的,结果错了,当我改成从m→n从小到大遍历的时候就AC了。
#include<stdio.h>#include<math.h>double C(int n,int m){ int a=0; double ans=1; for(int i=n;a!=m;i--,a++) ans*=i; for(int i=1;i<=m;i++) ans/=i; return ans;}int main(){ int t; scanf("%d",&t); while(t--) { int n,m; double x,ans=0; scanf("%d%d%lf",&n,&m,&x); for(int i=m;i<=n;i++) ans+=C(n,i)*pow(x,i)*pow((1-x),(n-i)); printf("%.4lf\n",ans); } return 0;}
0 0
- FZU 2132 LQX的作业 概率问题
- FZU 2132 LQX的作业(概率--二项分布)
- FZU Problem 2132 LQX的作业
- fzu Problem 2132 LQX的作业
- FZU Problem 2132 LQX的作业 二项分布
- LQX的作业(概率题)(注意用double)
- A - LQX的作业
- LQX的作业
- FZU2132 - LQX的作业(概率论)
- Andy的作业 FZU
- FZU 1404 Andy的作业
- FZU 1404 Andy的作业
- FZU 2132 && FOJ11月赛A题 概率
- 简单的概率问题
- 概率题 fzu Problem 2103
- FZU 1571 排列的字典序问题
- 一个有意思的概率问题
- 一个耐人寻味的概率问题
- OpenLDAP的密码策略实现
- 在af:table中实现一次删除多行
- TextBlock中设置下划线
- 【美丽的英文】我喜欢你是寂静的
- 软件工程之软件计划
- FZU 2132 LQX的作业 概率问题
- spring学习之@ModelAttribute运用详解
- 判断星期几
- 风靡全球的狐狸叫
- jquery 操作iframe的几种方法总结_jquery_
- Mac开发者必备实用工具推荐
- ADF计算Table列总计
- 一个男人关心的东西决定了他的层次
- 如何得到ListControl选中的项 ListControl选中一行