Pao*_*olo 10 python combinations python-itertools
我没有得到我应该从标题中的该函数获得的结果数量,所以我希望得到你的帮助.
查看文档 http://docs.python.org/library/itertools.html#itertools.combinations 应该是结果的数量
返回的商品数量是n!/ r!/(nr)!当0 <= r <= n时,当r> n时为零.
它适用于那里的例子
组合('ABCD',2) - > AB AC AD BC BD CD
因为n!/ r!/(nr)!= 4!/ 2!/ 2!= 6
但是,如果我尝试
combinations('ABCDEF', 3) --> AB AC AD AE AF BC BD BE BF CD CE CF DE DF EF
Run Code Online (Sandbox Code Playgroud)
我得到了15个结果.但是n!/ r!/(nr)!= 6!/ 3!/(6-3)!= 720/6/6 = 20
所以:Python Docs告诉我,我应该有20个结果,但我得到15个.
你能帮我理解我错过的东西吗?也许是我的数学中的东西,因为该公式应该是正确的,因为它在维基百科组合条目中
谢谢,P
unu*_*tbu 23
itertools.combinations应该返回一个包含20个项目的迭代器:
In [40]: len(list(itertools.combinations('ABCDEF',3)))
Out[40]: 20
Run Code Online (Sandbox Code Playgroud)
注意
In [41]: len(list(itertools.combinations('ABCDEF',2)))
Out[41]: 15
Run Code Online (Sandbox Code Playgroud)
并发布了输出
combinations('ABCDEF', 3) --> AB AC AD AE AF BC BD BE BF CD CE CF DE DF EF
Run Code Online (Sandbox Code Playgroud)
仅显示2个字母的组合.所以看起来你已经算了
combinations('ABCDEF', 2),而不是combinations('ABCDEF', 3).
| 归档时间: |
|
| 查看次数: |
21660 次 |
| 最近记录: |