軟體:
excel
版本:
2010
我有一個 35列 5行 的矩陣 如下所示
C D E F G H I J K L M
3
4
5
6
.
.
37
每一行的資料都是 1~35的亂數,每一列加總都要是90
我參考版上有關亂數的資料
B2 =1
C1:G35 = rand()
H38 =sum(H3:H37) 再複製公式到 H38:L38
M3 =sum(H3:L3) 再複製公式到 M3:M37
H3 =IF($B$2,IF($M3+H$38=720,H3,RANK(C3,C$3:C$37))) 再複製公式到 H3:L37
M2 =IF(COUNTIF(M3:M37,90)=35,"成功","未成功")
最後再用VBA寫個按鈕,讓他自動更新到跑出結果
Sub Macro()
Application.ScreenUpdating = False
Do While Range("M2").Value = "未成功"
Calculate
Loop
Application.ScreenUpdating = True
End Sub
我用過同樣的邏輯在一個5列 3行的矩陣中測過,可以算出答案
但是在原本 35列 5行 的case要跑非常久
我覺得可能是因為沒有甚麼特別演算法,
就是讓他靠運氣跑到一組剛好符合條件的答案
不曉得版上的先進有沒有更好的方法解決這個問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.80.253