【发布时间】:2022-11-24 00:32:40
【问题描述】:
假设有一个列表[1,2,3,4,5],我需要获取元素(或“子列表”)所有可能组合的计数,例如1, 2, 3, 4, 5, 12, 13, 14, ..., 123, 124, ..., 12345。
我知道如何获取 nCr,即列表中 r 元素与总 n 元素的组合计数。
Python 3.8 或更高版本:
from math import comb
p, r = 5, 2
print(comb(p, r))
然后我可以做nC1 + nC2 +...+ nCn。但是有更好/更快的方法吗?
p, result = 5, 0
for r in range(1, 6):
result += comb(p, r)
print(result)
非常感谢您的回答。
【问题讨论】:
-
这确实看起来像是一个Mathematics 问题。我不知道,但我敢打赌有一个简单的公式。
-
这回答了你的问题了吗? How to generate a power set of a given set?