寒风飘飘落叶,军队是一朵绿花。亲爱的战友你不要想家不要想妈妈。声声***夜呼唤,多少句心里话。不要离别时两眼泪花,军营是咱温暖的家。——《军中绿花》
军训时光果然是既辛苦又美好呀,这一天艺术团的学长学姐来慰问演出。
一个又一个节目看得杨八方心里万分欣喜,更激动的事情是,艺术团要选一些同学组成合唱团。
八方同学知道,每晚的拉歌之中踊跃而出许多K歌达人,也有一些唱歌要命。所以,杨八方想要算一下,被选中的这些同学全部都为K歌达人的概率有多少。
输入
有三个以一个空格分隔开的整数nn、mm、kk ( 1≤n≤10001≤n≤1000、0≤m≤n0≤m≤n、1≤k≤n1≤k≤n ),分别代表同学们的人数、K歌达人的人数、被选中的人数。
输出
输出被选中的这些同学全部都为K歌达人的概率有多少(保留三位小数)。
样例输入
3 2 1
样例输出
0.667
被选中的全部为K歌达人概率=(全部K歌达人中选取k个人)/(全部人中选出k个人);
注意下判断条件:
#include<bits/stdc++.h>
#include<cstdio>
#include<cmath>
using namespace std;
double lnC(int n,int m){
if(m>n) return 0;
if(m<n/2.0) m=n-m;
double s1=0.0,s2=0.0;
int i;
for(i=m+1;i<=n;i++){
s1+=log((double)i);
}
int def=n-m;
for(i=2;i<=def;i++){
s2+=log((double)i);
}
return s1-s2;
}
double C(int n,int m){
if(m>n)
return 0;
else
return exp(lnC(n,m));
}
int main(){
int n,m,k;
cin>>n>>m>>k;
if(m==0||k>m||k>n||m>n){
printf("%.3lf\n",0.0);
}
else if(n==m){
printf("%.3lf\n",1.0);}
else{
double ans;
ans=C(m,k)/C(n,k);
printf("%.3lf\n",ans);;
}
return 0;
}