资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入格式
一行两个正整数n和m
输出格式
一个实数P表示答案,保留4位小数。
样例输入
2 3
样例输出
0.7500
数据规模和约定
1≤n,m≤20
n,m=map(int,input().split())
dp=[[0 for i in range(n+1)]for i in range(m+1)]
for i in range(1,m+1):
for j in range(1,n+1):
if(j>i):
dp[i][j]=0
elif(j==1):
dp[i][j]=pow(1/n,i-1)
else:
dp[i][j]=(dp[i-1][j])*(j*1.0/n) + (dp[i-1][j-1])*((n-j+1)*1.0/n)
print("{:.4f}".format(dp[m][n]))
参考了这些文章
蓝桥Python算法——印章_些凉的博客-CSDN博客https://blog.csdn.net/qq_46038474/article/details/121633599?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-10.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-10.pc_relevant_default&utm_relevant_index=19蓝桥杯试题 算法训练 印章_python_个人练习_图南_的博客-CSDN博客https://blog.csdn.net/weixin_43539781/article/details/121353101?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164309464716780271517282%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164309464716780271517282&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-121353101.pc_search_insert_es_download&utm_term=%E5%8D%B0%E7%AB%A0Python&spm=1018.2226.3001.4187蓝桥杯-印章_Kkooe的博客-CSDN博客https://blog.csdn.net/Kkooe/article/details/121326116?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164302949516780269880509%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164302949516780269880509&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-121326116.pc_search_insert_es_download&utm_term=%E5%8D%B0%E7%AB%A0&spm=1018.2226.3001.4187蓝桥杯试题 算法训练 印章 (dp&详解)_m0_58245389的博客-CSDN博客https://blog.csdn.net/m0_58245389/article/details/121877031?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_default&utm_relevant_index=51001印章_Small_Mie的博客-CSDN博客https://blog.csdn.net/Small_Mie/article/details/121803550?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_aa&utm_relevant_index=2
#错的错的
n,m=map(int,input().split())
if(n>m):
p=0
elif(n==m):
p=1
for i in range(n):
p=1/n*p*(i+1)
else:
cs=n
p=1
for i in range(n):
p=1/n*p*(i+1)
pz=p
while(cs<m):
k=p*pow((1/n),cs-n+1)*(n-1)
pz=pz+k
cs+=1
p=pz
print("{:.4f}".format(p))