FZU Problem 2132 LQX的作业

简介: 点击打开链接 题意:题目要求选择n个0~1之间的数拍完序之后第m个小于等于x的概率 思路:1~0直接选择一个数小于等于x的概率为x,那么选择i个数都小于等于x的概率为x^i。

点击打开链接

题意:题目要求选择n个0~1之间的数拍完序之后第m个小于等于x的概率

思路:1~0直接选择一个数小于等于x的概率为x,那么选择i个数都小于等于x的概率为x^i。因此,要求第m个数小于等于x,我们可以知道m~n的数也有可能小于等于x,只要枚举m~n求和即可

代码:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

int n , m;
double x;

double get(int a){
    double sum = 1;
	int j = n;
	for(int i = 1 ; i <= a ; i++ , j--)
	    sum *= j;
    for(int i = 1 ; i <= a ; i++)	
		sum /= i;
	return sum;
}

double solve(){
    double ans = 0;
	for(int i = m ; i <= n ; i++)
        ans += get(i)*pow(x,i)*pow(1-x,n-i);
	return ans;
}

int main(){
    int cas;
	scanf("%d" , &cas);
	while(cas--){
		scanf("%d%d%lf" , &n , &m , &x);
		printf("%.4lf\n" , solve());
	}
	return 0;
}


相关文章
Codeforces1486 A Shifting Stacks (开long long)
Codeforces1486 A Shifting Stacks (开long long)
74 0
HDOJ/HDU 1022 Train Problem I(模拟栈)
HDOJ/HDU 1022 Train Problem I(模拟栈)
131 0
HDOJ/HDU 1022 Train Problem I(模拟栈)
Weekly Contest 107 AC思路
Weekly Contest 107 AC思路
1385 0