Python 程序,用于查找在某些字母和 k 大小组合中获得字母“a”的概率
假设我们有一个包含n个不同英文字母的数组。我们还有另一个值k。我们可以选择k个具有均匀分布的不同索引(1-indexed)。我们必须找到所选的k个索引中至少一个包含字母“a”的概率。
因此,如果输入类似于字母=['a','c','a','b','l','a','b','z']k=2,那么输出将为64.28%。有像(1,2),(1,3)这样的组合,就像有28种组合,但其中一些像(1,2),(1,3),(6,7)这样的18对持有7,所以18/28=0.6428。
示例
让我们看看以下实现以获得更好的理解-
from itertools import combinations def solve(letters, k): contain = 0 total = 0 for c in combinations(letters, k): if "a" in c: contain += 1 total += 1 return contain/total letters = ['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z'] k = 2 print(solve(letters, k))
输入
['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z'], 2输出结果
0