python 蓝桥 印章
时间: 2024-03-03 13:46:16 浏览: 116
根据提供的引用内容,这是一个关于蓝桥Python算法中印章问题的代码。该问题描述了小A买了m张印章,每种图案的出现概率相同,求小A集齐n种印章的概率。
这是一个递归函数`comput(m, n, num)`来计算概率。函数中的参数m表示小A买的印章数量,n表示小A要集齐的印章种类数量,num表示总共的印章种类数量。函数的返回值是小A集齐n种印章的概率。
具体的计算过程如下:
- 如果小A买的印章数量m小于集齐的印章种类数量n,则返回概率为0。
- 如果要集齐的印章种类数量n为1,则返回概率为(1/num)的(m-1)次方。
-则,递归计算小A买m-1张印章集n种印章的概率乘以(n/num),再加上递归计算小A买m-1张印章集齐n-1种印章的概率乘以((num-n+1)/num)。
最后,根据输入的m和n,调用`comput(m, n, n)`函数计算小A集齐n种印章的概率,并将结果格式化输出。
范例中的代码如下:
```python
def comput(m, n, num):
if m < n:
return 0
elif n == 1:
return pow(1/num, m-1)
else:
return comput(m - 1, n, num) * (n/num) + comput(m - 1, n - 1, num) * ((num - n + 1) / num)
getin = list(map(int, input().split()))
n = getin[0]
m = getin[1]
print("{:.4f}".format(comput(m, n, n)))
```
阅读全文