gpt4 book ai didi

Python itertools.combinations 的结果

转载 作者:太空狗 更新时间:2023-10-29 18:17:24 25 4
gpt4 key购买 nike

我没有得到我应该从标题中的那个函数获得的结果数量,所以我希望得到你的帮助。

查看文档 http://docs.python.org/library/itertools.html#itertools.combinations结果的数量应该是

The number of items returned is n! / r! / (n-r)! when 0 <= r <= n or zero when r > n.

它适用于那里的例子

combinations('ABCD', 2) --> AB AC AD BC BD CD

因为 n!/r!/(n-r)! = 4!/2!/2! = 6

但如果我尝试

combinations('ABCDEF', 3) --> AB AC AD AE AF BC BD BE BF CD CE CF DE DF EF

我得到了这 15 个结果。但是 n!/r!/(n-r)! = 6!/3!/(6-3)! = 720/6/6 = 20

所以:Python 文档告诉我应该有 20 个结果,但我得到了 15 个。

你能帮我理解我错过了什么吗?也许是我的数学公式,因为该公式应该是正确的,因为它在 Wikipedia Combination entry 中。

谢谢,

最佳答案

itertools.combinations 应该返回一个包含 20 个项目的迭代器:

In [40]: len(list(itertools.combinations('ABCDEF',3)))
Out[40]: 20

注意

In [41]: len(list(itertools.combinations('ABCDEF',2)))
Out[41]: 15

和发布的输出

combinations('ABCDEF', 3) --> AB AC AD AE AF BC BD BE BF CD CE CF DE DF EF

仅显示 2 个字母的组合。所以看起来你已经计算了组合('ABCDEF', 2),而不是组合('ABCDEF', 3)

关于Python itertools.combinations 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com