问题描述
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入格式
一行两个正整数n和m
输出格式
一个实数P表示答案,保留4位小数。
样例输入
2 3
样例输出
0.7500
数据规模和约定
1≤n,m≤20
问题解析:
该博主讲解的很好,思路极其清晰,下面是链接:
蓝桥杯试题 算法训练 印章_python_个人练习_图南_的博客-CSDN博客
n,m=list(map(int,input().split()))
p=[[0 for i in range(21)]for k in range(21)]
for i in range(1,m+1):
for j in range(1,n+1):
if i<j:##该情况不可能
p[i][j]=0
elif j==1:
p[i][j]=1/n**(i-1)##n*1/n**i
else:
p[i][j]=p[i-1][j]*j*1/n+p[i-1][j-1]*(n-j+1)*1/n
print('%.4f'%p[m][n])