[VBA ] 想請教關於Excel的問題
不好意思,最近和學生在討論一個填數問題,目前遇到組合大過龐大,
因此人工計算過於繁複,想藉助Excel來解決,
我們有16個變量 a,b,c,...,p
每個變量都是1到16的正整數,且各自彼此都不同,
我們處理得到的方程有以下幾個
a+b+c+d+e+f+g=49
2*b+c+2*d+e+2*f+g=87
h+i+j=d+e+f
k+l+m=b+g+f
n+o+p=b+c+d
我們依據網路一些資料先處理的a,b,c,...,g的7個變量,
但是加入9個變量(h到p)後及條件後,Excel卻一直當掉無法處理,
不知道是否有大大能夠協助。萬分感謝!處理前7個變數的語法如下:
Function Unequal(ParamArray Nums() As Variant) As Integer
Dim intI1 As Integer, intI2 As Integer, l As Integer, u As Integer
l = LBound(Nums())
u = UBound(Nums())
If u - l < 1 Then
Unequal = 3
Exit Function
End If
For intI1 = l To u - 1
For intI2 = intI1 + 1 To u
If Nums(intI1) = Nums(intI2) Then
Unequal = 0
Exit Function
End If
Next
Next
Unequal = 1
End Function
Sub hexagonhive ()
For a = 1 To 16
For b = 1 To 16
For c = 1 To 16
For d = 1 To 16
For e = 1 To 16
For f = 1 To 16
g = 49 - a - b - c - d - e – f
Dim ue As Integer, str As String
ue = Unequal(a, b, c, d, e, f, g)
If ue = 1 And g > 0 And g < 17 And 2 * b + c + 2 * d + e + 2 * f + g = 87 Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c: Cells(t, 4) = d: Cells(t,
5) = e: Cells(t, 6) = f: Cells(t, 7) = g:
End If
Next
Next
Next
Next
Next
Next
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.30.28
※ 編輯: kain1230 來自: 118.161.30.28 (01/28 20:18)
推
01/28 20:36, , 1F
01/28 20:36, 1F
推
01/29 01:20, , 2F
01/29 01:20, 2F
→
01/29 01:22, , 3F
01/29 01:22, 3F
推
01/30 01:20, , 4F
01/30 01:20, 4F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):