1

已知存在从 1 到 100 选择 10 个不同数字的 C(100,10) 种可能性。只要10个数字不同。

如何通过编程列出所有组合?
我不想写10个循环,首选python或c

4

2 回答 2

3

使用 python 和itertools.combinations

警告- 打印需要很长时间

for i in itertools.combinations(xrange(1,101),10):
    print i
于 2013-04-23T05:19:35.187 回答
0

我的朋友刘玉杰提出了这个想法。使用纯迭代。

# 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);  
于 2013-04-23T08:48:02.980 回答