网站建设需要什么硬件和软件,九江百度公司,二级域名对网站帮助,word模板免费下载步骤#xff08;1#xff09;确定初始状态#xff08;2#xff09;确定转移矩阵#xff0c;得到每个阶段的状态#xff0c;由上一阶段推到出来#xff08;3#xff09;确定边界条件。例题蓝桥杯——印章#xff08;python实现#xff09;使用dp记录状态#xff0c;d…步骤1确定初始状态2确定转移矩阵得到每个阶段的状态由上一阶段推到出来3确定边界条件。例题蓝桥杯——印章python实现使用dp记录状态dp[i][j]表示买i张印章凑齐j种印章的概率i表示买的印章数j表示凑齐的印章种数情况一如果ij,不可能凑齐印章概率为0情况二如果j1,dp[i][1] n*((1/n)**i)凑齐一种印章所有i个印章为一个种类这一个种类有n种情况可选情况三凑齐j种印章。前面买了i-1个印章。可能前面i-1步凑够了j种印章那么只用从j种里随意选出来一个dp[i-1][j]*j*p可能前面i-1步凑够了j-1种印章那么从剩下的n-j1种里选出来一个dp[i-1][j-1]*(n-j1)*p因此为dp[i][j] dp[i-1][j]*j*pdp[i-1][j-1]*(n-j1)*pstrs input().strip().split()
n int(strs[0])
m int(strs[1])# 使用dp记录状态dp[i][j]表示买i张印章凑齐j种印章的概率
dp [[0]*(n1) for _ in range(m1)]p 1.0/nfor i in range(1,m1):for j in range(1,n1):# 如果ij,不可能凑齐印章if ij:dp[i][j] 0# 如果凑齐一种印章elif j1:dp[i][1] n*(p**i)# 凑齐j种印章可能前面i-1步凑够了j种印章那么只用从j种里随意选出来一个# 可能前面i-1步凑够了j-1种印章那么从剩下的n-j1种里选出来一个else:dp[i][j] dp[i-1][j]*j*pdp[i-1][j-1]*(n-j1)*p
print(%.4f%(dp[m][n]))