已知存在从 1 到 100 选择 10 个不同数字的 C(100,10) 种可能性。只要10个数字不同。
如何通过编程列出所有组合?
我不想写10个循环,首选python或c
已知存在从 1 到 100 选择 10 个不同数字的 C(100,10) 种可能性。只要10个数字不同。
如何通过编程列出所有组合?
我不想写10个循环,首选python或c
使用 python 和itertools.combinations。
警告- 打印需要很长时间
for i in itertools.combinations(xrange(1,101),10):
print i
我的朋友刘玉杰提出了这个想法。使用纯迭代。
# select n diff numbers from min - max
def traceArr(arr, min, max, n):
if n > 0:
for i in range(min, max-n+2):
arr1 = arr[:]
arr1.append(i)
traceArr(arr1, i+1, max, n-1)
elif n == 0:
print arr
# Demo, select 5 diff numbers from 1-10
traceArr([], 1, 10, 5);