[蓝桥杯python] 印章
问题描述
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
1、资源限制
资源限制
时间限制:1.0s 内存限制:256.0MB
2、输入格式
一行两个正整数n和m
3、输出格式
一个实数P表示答案,保留4位小数
4、样式输入及输出
样例输入
2 3
样例输出
0.7500
5、代码及解析
具体解析请大家自己看一下代码中的备注,在此不多做解释。
结果:
nm = list(map(int,input().split()))
n = nm[0]
m = nm[1]
rect = [[0 for _ in range(0,n)] for _ in range(0,m)]
#拥有一张时,拥有一张的概率必为1
rect[0][0] = 1
for i in range(1,m):
rect[i][0] = (1/n)**i
for i in range(1,m):
for j in range(1,n):
rect[i][j] = rect[i-1][j]*((j+1)/n) + rect[i-1][j-1]*((n-j)/n)
print("%.4f" % rect[-1][-1])
自己写的所以有点复杂,但是至少能完成嘿嘿。如果各位有优化欢迎评论区讨论!!