Private Sub Command1_Click()
Dim a
Debug.Print Now
a = Array(5, 64, 65, 79, 12, 36, 55, 42, 36, 45, 54, 23, 65, 54, 23, 4, 6, 56, 9, 5, 8, 7, 7, 5, 9, 6, 4, 2, 4, 3, 6, 2, 13, 1, 23, 2, 4, 15, 6, 6, 5, 7, 4, 3, 6, 2, 1, 3, 3, 5, 2, 3, 1, 5, 3, 3, 5, 3, 6, 5, 5, 6, 43, 6, 5, 3, 4, 5, 3, 1, 2, 3, 4, 6, 8, 56, 5)
For k0 = 1 To 30
  For k1 = k0 + 1 To 31
      b1 = a(k0) + a(k1)
    For k2 = k1 + 1 To 32
        b2 = b1 + a(k2)
      For k3 = k2 + 1 To 33
          b3 = b2 + a(k3)
        For k4 = k3 + 1 To 34
            b4 = b2 + a(k4)
          For k5 = k4 + 1 To 35
              b5 = b2 + a(k5)
            For k6 = k5 + 1 To 36
                b6 = b2 + a(k6)
               For k7 = k6 + 1 To 37
                   b7 = b2 + a(k7)
                 For k8 = k7 + 1 To 38
                     b8 = b7 + a(k8)
                    DoEvents
                        i = i + 1
                  Next
               Next
             Next
           Next
         Next
       Next
     Next
   Next
Next
Debug.Print i
Debug.Print Now
End Sub有什么算法能算的更快吗?
b7:
2005-10-18 20:23:05 
 38608020 
2005-10-18 20:25:34
b8:我运行了1个小时也算不出?

解决方案 »

  1.   

    我写了个程序,要求有一数组(有50个数),求出之中任意10个数相加之和mod 5 的余数,但用我上面的方法可能几天也算不出,请求有什么方法能更快算出
      

  2.   

    ( chewinggum(口香糖·把减肥列入下一个五年计划) 
    如果只需要结果那就是组合问题
      10
    C
      50
    何苦那么多层循环)
    怎么组合?
      

  3.   

    请问你是要随机呢,还是枚举呢?
    枚举Mod 5,最多结果是: 0 1 2 3 4 
    随机呢:你随机抽取10个数加下得了。