蓝桥杯 Python 练习题 印章

资源限制

时间限制: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))
  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值