|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
专门求 3元一次方程的整数解的代码,可以更简单(速度快40倍)- Sub kagawa2()
- Dim arr, h1&, h2&, k1&, k2&, k3&, x1&, x2&, x3&, t1&, t2&, t3&, cnt&, tms#
- tms = Timer
-
- h1 = Cells(2, 3)
- h2 = Cells(3, 3)
- k1 = Cells(2, 2)
- k2 = Cells(3, 2)
- k3 = Cells(4, 2)
- ReDim arr(1 To 65535, 1 To 2)
- For x3 = 1 To h2 \ k3
- t3 = k3 * x3
- For x2 = 1 To (h2 - t3) \ k2
- t2 = k2 * x2 + t3
- For x1 = IIf(h1 < t2, 1, (h1 - t2 - 1) \ k1 + 1) To (h2 - t2) \ k1
- t1 = k1 * x1 + k2 * x2 + k3 * x3
- cnt = cnt + 1
- arr(cnt, 1) = t1
- arr(cnt, 2) = "+" & k1 & "*" & x1 & "+" & k2 & "*" & x2 & "+" & k3 & "*" & x3
- Next
- Next
- Next
-
- [e1].CurrentRegion.Offset(1) = "":
- [e2].Resize(cnt, 2) = arr
- MsgBox Format(Timer - tms, "0.000s ") & cnt
-
- End Sub
复制代码 |
|