LQX的作业(概率题)(注意用double)
2013-12-15 21:26
381 查看
1、http://acm.hust.edu.cn/vjudge/contest/view.action?cid=38706#problem/A
2、题目:
A - LQX的作业
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
SubmitStatus
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
Sample Output
3、AC代码:
2、题目:
A - LQX的作业
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
SubmitStatus
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
3 1 1 0.3 2 1 0.5 2 2 0.8
Sample Output
0.3000 0.7500 0.6400
3、AC代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #include<math.h> double f(int n,int m) { double nn=n; double ans=1,ans2=1; for(int i=1;i<=m;i++) { ans*=nn; nn--; } for(int i=1;i<=m;i++) ans2*=i; return (ans)/(ans2); } int main() { int t,n,m; double x; scanf("%d",&t); while(t--) { scanf("%d%d%lf",&n,&m,&x); double sum=0; for(int i=m;i<=n;i++) { sum+=f(n,i)*pow(x,i)*pow((1-x),n-i); } printf("%.4lf\n",sum); } return 0; }
相关文章推荐
- Oracle PatchSet 11.2.0.4 最终版本发布
- 索引查找(索引查找、分块查找) C语言实现
- 归并排序(求逆序数对)
- 你可能不知道UED和UCD
- 微软邮件系统Exchange 2013系列(十二)从 Exchange 2010 升级至 Exchange 2013-1 推荐
- 在Sql server数据库中,关于触发器的创建、调用及删除
- CDlinux 0.9.7.1 安装到虚拟机硬盘
- ORA-14450: attempt to access a transactional temp table already in use
- 接口和多态
- PathEffect类的学习
- win7安装hadoop及eclipse调试mapreduce的配置方法
- 图解面向对象中的聚合与耦合概念(转)
- Eclipse Building Workspace 解决办法
- Android运行时异常“Binary XML file line # : Error inflating class”
- 大数乘法
- c语言字符串分解
- 第十三章作业
- 常用查询
- 把一个句子中的按照标准写作打出来
- java 自动注册odbc