我可以使用list(itertools.combinations(range(n), m))
列出所有组合,但这通常非常大。
给定n
和m
,我如何在不首先构建大量列表的情况下,均匀随机地选择组合??
最佳答案
来自,来自
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/