您当前所在位置:
首页 方法技巧 “自编双色球缩水程序(VB语言)”

“自编双色球缩水程序(VB语言)”

duy3 4247 2018-02-05 18:17

Private Sub CommandButton2_Click()

Range("k2:bx65536").ClearContents

Application.Calculate

Range("k3:bx65536").Calculate

nRow = Range("b65536").End(xlUp).Row

Dim nStart, nStar5, nCoun5, nCount, s

      s = 0

  nStart = nRow - 30

  nStar5 = nRow - 5

Dim c(49), e(49)

    For k = 1 To 33

    c(k) = 0

        For i = nStart To (nRow)  

            For n = 3 To 8

                If Cells(i, n) = k Then c(k) = c(k) + 1

                 Next:Next:Next

    For k = 1 To 33

    e(k) = 0

        For i = nStar5 To (nRow + 0)

            For n = 3 To 8

                If Cells(i, n) = k Then e(k) = e(k) + 1

                Next:Next:Next

'预测红球

Dim d(6), f(6), nKN(7), CS(13), lh(13)

    For i = 1 To 17

     d(0) = c(i): f(0) = e(i): nKN(1) = i

       For j = 2 To 20

     d(1) = c(i): f(1) = e(i): nKN(2) = j

         For k = 4 To 25

     d(2) = c(i): f(2) = e(i): nKN(3) = k

            For l = 5 To 30

     d(3) = c(i): f(3) = e(i): nKN(4) = l

                 For m = 11 To 32

     d(4) = c(i): f(4) = e(i): nKN(5) = m

                     For n = 16 To 33

     d(5) = c(i): f(5) = e(i): nKN(6) = n

          Z = nKN(1) + nKN(2) + nKN(4) + nKN(5) + nKN(6)

          R = d(0) + d(1) + d(2) + d(3) + d(4) + d(5)

          X = f(0) + f(1) + f(2) + f(3) + f(4) + f(5)

             For v = 0 To 12

             CS(v) = 0: lh(v) = 0

             For p = 0 To 5

             If d(p) = v Then CS(v) = CS(v) + 1

             If f(p) = v Then lh(v) = lh(v) + 1

             Next:Next

If ((R = 25 Or R = 27 Or R = 33) And (X = 5 Or X = 7) And (Z = 88 Or Z = 94 Or Z = 100 Or Z = 66) And nKN(1) < nKN(2) And nKN(2) < nKN(3) And nKN(3) < nKN(4) And nKN(4) < nKN(5) And nKN(5) < nKN(6) And (N1 = 1 Or N1 = 3 Or N1 = 5 Or N1 = 6) And (N6 = 22 Or N6 = 24 Or N6 = 26 Or N6 = 27 Or N6 = 28 Or N6 = 31) And (N2 < 11)) Then

If ((CS(2) + CS(4)) >= 1 And CS(7) = 0 And CS(8) >= 1 And CS(9) <= 1 And CS(2) <= 2 And CS(6) >= 1 And CS(5) <= 2 And CS(6) <= 3 And CS(4) <= 1 And (CS(2) >= 2 Or CS(5) = 2 Or CS(6) >= 2) And lh(0) >= 2 And lh(0) <= 3 And lh(1) >= 1 And lh(1) <= 2 And (lh(2) + CS(3)) >= 1) Then

s=s+1

Cells(nRow + s, 3) = nKN(1): Cells(nRow + s, 4) = nKN(2): Cells(nRow + s, 5) = nKN(3)

Cells(nRow + s, 6) = nKN(4): Cells(nRow + s, 7) = nKN(5): Cells(nRow + s, 8) = nKN(6)

End If

End If

For p = 0 To 5

Cells(nRow + s, 10 + p) = d(p): Cells(nRow + s, 16 + p) = f(p)

For v = 0 To 12

Cells(nRow + s, 22 + v) = CS(v): Cells(nRow + s, 35 + v) = lh(v)

Next: Next: Next: Next: Next: Next:Next: Next

End Sub



抛砖引玉,程序还待完善!(表格内运行慢,没测试出结果,C语言的结果正确)