(EXCEL) 若我有兩個五個變數的方程式,該如何列出符合條件的所有解?

假設題目是:
A+2*B+3*C+4*D+5*E = 50
A+ B+ C+ D+ E = 13

A, B, C, D, E, 皆為正整數,這樣的狀況下去求解的話,
在 EXCEL 內,方程式應該怎麼寫才能把答案 SHOW 出來呢?

雖然答案不只一組,但是有兩個方程式做限制,還有設定並為正整數,
希望可以把所有符合的條件都列出。
用笨方法跑回圈吧!

如果ABCDE不得為零,代表每個數值最小值為1,最大值為9

For A = 1 To 9

For B = 1 To 9

........以此類推.........

If A+2*B+3*C+4*D+5*E = 50 Then
..........紀錄得到的答案............
End If

..................

Next

Next
樓主找到方法了嗎?

如有方法請提供給給大家參考

感謝~

我算的結果是答案有六組

A:1,B:1,C:1,D:6,E:4
A:1,B:1,C:2,D:4,E:5
A:1,B:1,C:3,D:2,E:6
A:1,B:2,C:1,D:3,E:6
A:1,B:2,C:2,D:1,E:7
A:2,B:1,C:1,D:2,E:7
有人說要用巨集寫,據說寫法跟 C++ 很像,
C++ 我會寫,也有寫出來,可是 Excel 的卻不知道該怎麼搞...

樓上是用什麼方式算出來的啊?
光是 a = 0 的時候就有以下這個多個可能....

我再去想想有沒有辦法讓條件再多一些。

工作煩忙,抱歉回文慢。
題目不變,依舊是
A + 2*B + 3*C + 4*D + 5*E = 50
A + B + C + D + E = 13

A, B, C, D, E, 皆至少大於1


A + B + 2*C + 3*D + 5*E 的最小值,
以及當最小值發生時的A, B, C, D, E, 各為多少?

小弟不才,用C++來解決問題,求得答案是,如下,應該沒有可以到最小值為41或更低的了吧。

以VBA來解
Sub main()
Dim t1, t2, t3, t4, t5, irow As Integer
Dim totalCollection, hierarchyCollection As Variant
hierarchyCollection = Array(1, 2, 3, 4, 5)
totalCollection = Array(1, 1, 1, 1, 9)
irow = 1
For t1 = 1 To 9
totalCollection(0) = t1
For t2 = 1 To 9
totalCollection(1) = t2
For t3 = 1 To 9
totalCollection(2) = t3
For t4 = 1 To 9
totalCollection(3) = t4
For t5 = 1 To 9
totalCollection(4) = t5
If isEqual13(totalCollection) And isEqual50(totalCollection, hierarchyCollection) Then
writeToCell totalCollection, irow
irow = irow + 1
End If
Next
Next
Next
Next
Next
End Sub

Sub writeToCell(ByVal p_total As Variant, ByVal p_row As Integer)
Dim icol As Integer
icol = 1
For icol = 1 To 5
Cells(p_row, icol) = p_total(icol - 1)
Next
End Sub

Function isEqual50(ByVal p_total As Variant, ByVal p_hierarchy As Variant) As Boolean
Dim total As Integer
total = 0
For i = 0 To UBound(p_total)
total = total + p_total(i) * p_hierarchy(i)
Next
isEqual50 = IIf(total = 50, True, False)
End Function

Function isEqual13(ByVal p_total As Variant) As Boolean
Dim x, total As Integer
total = 0
For Each x In p_total
total = total + x
Next
isEqual13 = IIf(total = 13, True, False)
End Function
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!