我可以使用list(itertools.combinations(range(n), m))列出所有组合,但这通常非常大。
给定nm,我如何在不首先构建大量列表的情况下,均匀随机地选择组合??

最佳答案

来自,来自

def random_combination(iterable, r):
    "Random selection from itertools.combinations(iterable, r)"
    pool = tuple(iterable)
    n = len(pool)
    indices = sorted(random.sample(xrange(n), r))
    return tuple(pool[i] for i in indices)

关于python - 从组合中随机选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22229796/

10-16 04:22