问题描述
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入格式
一行两个正整数n和m
输出格式
一个实数P表示答案,保留4位小数。
样例输入
2 3
样例输出
0.7500
数据规模和约定
1≤n,m≤20
#include <stdio.h>
#include <math.h>
int main()
{
int n,m,h,b;
scanf("%d%d",&n,&m);
double p[20][20];
for(b=0;b<m;b++)
{
for(h=0;h<n;h++)
{
if(h==0)
{
p[b][h]=pow(1.0/n,(double)b);
}
else if(h>b)
{
p[b][h]=0;
break;
}
else
{
p[b][h]=(p[b-1][h-1]*(n-h)+p[b-1][h]*(h+1))/n;
}
}
}
printf("%.4lf",p[m-1][n-1]);
return 0;
}