http://www.d1vb.com上万个VB朋友都注册了,50000条记录就是人气的象征!几千个代码和文章是你急需的。我是版主和站长,欢迎您的光顾!我们会尽最大努力帮助你。

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim I1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13 As Integer
    Dim B As String
    B = ""
    For I1 = 1 To 3
        B1 = h(I1)
        For i2 = 1 To 3
            B2 = B1 & h(i2)
            For i3 = 1 To 3
                B3 = B2 & h(i3)
                For i4 = 1 To 3
                    B4 = B3 & h(i4)
                    For i5 = 1 To 3
                        B5 = B4 & h(i5)
                        For i6 = 1 To 3
                            B6 = B5 & h(i6)
                            For i7 = 1 To 3
                                B7 = B6 & h(i7)
                                For i8 = 1 To 3
                                    B8 = B7 & h(i8)
                                    For i9 = 1 To 3
                                        B9 = B8 & h(i9)
                                        For i10 = 1 To 3
                                            B10 = B9 & h(i10)
                                            For i11 = 1 To 3
                                                B11 = B10 & h(i11)
                                                For i12 = 1 To 3
                                                    B12 = B11 & h(i12)
                                                    For i13 = 1 To 3
                                                        B13 = B12 & h(i13)
                                                        List1.AddItem B13
                                                    Next i13
                                                    i13 = 0
                                                Next i12
                                                i12 = 0
                                            Next i11
                                            i11 = 0
                                        Next i10
                                        i10 = 0
                                    Next i9
                                    i9 = 0
                                Next i8
                                i8 = 0
                            Next i7
                            i7 = 0
                        Next i6
                        i6 = 0
                    Next i5
                    i5 = 0
                Next i4
                i4 = 0
            Next i3
            i3 = 0
        Next i2
        i2 = 0
    Next I1
    MsgBox ("完")
    End Sub
    Function h(C) As String
        Select Case C
            Case 1
                B = "3"
            Case 2
                B = "1"
            Case 3
                B = "0"
        End Select
        h = B
    End Function
      

  2.   

    我的程序用了2:30p2 500
    128M生成的结果(我是先写在文件里,再读的)有40MB!!!!大家用时多少?
    UP!
      

  3.   

    我觉得还是生成到文件比较合适,40MB啊,去年我还在用32M 的内存
      

  4.   

    zhongminsheng(小生) 的算法好像有问题,
    结果不对啊
      

  5.   

    我的算法也很慢,12场选310,1场单选3用时53-57秒,13场选310用了90多秒,我见过某程序12场选310,1场单选3用时35秒,相信经过优化还可以更快。希望算法高手多指点。
    另外,用列表框控件的方法不适用于win98环境,它有列表项数32736项的限制。希望大家的例子能用于WIN98下
      

  6.   

    to phunter(分析家)
    能否给出示例代码
      

  7.   

    zhongminsheng(小生)用法肯定有问题,是不可取的,我认为我回调函数比较好!
      

  8.   

    遞歸調用方面
    Dim strArr() As String
    Dim nestlvl As Integer
    Dim strRst As String
    Dim StrAnswer() As StringPrivate Sub Command1_Click()
    Dim strNumbers As String
    ReDim StrAnswer(0)
    strNumbers = "3-3-3-013-013-013-013-013-013-013-013-013-013"
    strArr = Split(strNumbers, "-")
    nestlvl = -1
    t = Timer
    DoIt strArr(0)
    Label2.Caption = Timer - t
    End Sub
    Sub DoIt(myStr As String)
    Static i(12) As Integer
    nestlvl = nestlvl + 1
    For i(nestlvl) = 1 To Len(myStr)
        strRst = Left(strRst, nestlvl) + Mid(myStr, i(nestlvl), 1)
        If nestlvl < 12 Then
            DoIt strArr(nestlvl + 1)
            nestlvl = nestlvl - 1
        Else
            list1.AddItem strRst
        End If
    Next
    End Sub
     
      

  9.   

    我测试了一下jameszht(湖泊)的方法,速度不快
      

  10.   

    kevincomein(白菜):你有沒有把我的程序運行過zcb2000(才子);
    你認為你是在求一種快的存儲方法,如果對於所有的數字的全部啟遍歷,用最簡單的方面如下:在我的機子上也要11秒,而上面的程序只是12秒多一點(把list1.additem去掉),所以我認為能用最快的方面將數據顯示出來,才是最好的。上面你提到“12场选310,1场单选3用时53-57秒,13场选310用了90多秒”可否將你的程序給大家分享一下,也許大家能從中學到一點東西,說不定會有很多好的方面跟上的。謝!
    Private Sub Command1_Click()
    t = Timer
    For i = 1 To 3 ^ 13
        Str1 = Str1 & i
        If i Mod 13 = 0 Then
              Str1 = ""
        End If
    Next
    Label1 = Timer - t
    End Sub
      

  11.   

    to look for MSDN
    find "what's new in VB6"
    you can't miss it
      

  12.   

    试试下面的代码,用制式转换的方法,我在塞扬466,64M下用了33秒Dim t, w, s
    Private Sub Command1_Click()
    t = Timer
    Text3 = t
    For i = 0 To 1594323
        s = i
        For j = 0 To 13
            w = s Mod 3
            s = s \ 3
            'Text1 = Text1 + w
        Next j
    Next i
    Text2 = Timer - t
    End Sub
      

  13.   

    算法很重要
    不过也许vc会比vb快点我喜欢vb,但是我明白vb也有缺点如果最好的算法都无法在你要求的20秒内完成,用vc试试吧
    人总是要成长的,让我们大家一起在CSDN里成长为新一代的高手吧!
    想吵架的人闪一边去,我们只来学习,不学习的请安静!!!