【问题标题】:List all combinations of 'select 10 different numbers from 1-100'列出“从 1-100 中选择 10 个不同的数字”的所有组合
【发布时间】:2013-04-23 05:11:57
【问题描述】:

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

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

【问题讨论】:

    标签: combinations


    【解决方案1】:

    使用 python 和itertools.combinations

    警告 - 打印需要很长时间

    for i in itertools.combinations(xrange(1,101),10):
        print i
    

    【讨论】:

      【解决方案2】:

      我的朋友Yujie Liu 提出了这个想法。使用纯迭代。

      # 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);  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        相关资源
        最近更新 更多