→ newacc: 從排列組合變成規劃求解了XDD 09/20 22:45
解法還是排列啦~
就排列16個"1"和3個"+"的轉換結果,然後每個結果重複H(6,5)次,每個結果的右手邊排列
5個"1"和5個"+"的轉換結果
我覺得應該是這樣解的,然而我卡在排列部分,所以先前才問排列的算法
※ 編輯: hwangshan (220.134.1.81), 09/20/2018 23:18:50
推 newacc: 如果要用VBA的話我會選擇For Loop硬爆 09/20 23:35
→ newacc: 用VBA反而不需要太鑽研排列組合的邏輯,就是一個乖乖窮舉 09/21 00:09
→ newacc: 的概念XD 09/21 00:10
→ newacc: 16,5大約有24萬筆資料,我電腦測50微秒跑完全部資料,然後 09/21 00:16
→ newacc: 花2秒半寫進格子裡XD 09/21 00:16
→ newacc: A4賦值那行應該移到For A3迴圈裡才對,不需要算那麼多次 09/21 00:20
→ newacc: 但不管怎樣瓶頸就是寫進硬碟的速度 09/21 00:21
寫好快~ 我回家再來看看你寫的,謝謝你
※ 編輯: hwangshan (220.134.1.81), 09/21/2018 12:59:05
喔喔!關鍵邏輯真好懂
※ 編輯: hwangshan (220.134.1.81), 09/21/2018 18:43:28
請問,
1.你的choose,那是排列組合中的C取樣吧? 既然你是自己寫的,
代表VBA中沒有該函式囉?
2.你的第一行
Range("D1").Resize(1, 11).EntireColumn.Delete
由於每次計算前都會先清空,導致沒辦法引用這邊計算出來的數字
請問除了將這行隱藏起來之外,有別的辦法嗎?
※ 編輯: hwangshan (220.134.1.81), 09/22/2018 02:48:30
推 newacc: 1.對,不過後來想想不要叫choose比較好,excel裡已經有同 09/22 12:54
→ newacc: 名的函式了。至於excel有沒有排列組合的公式,老實說我沒 09/22 12:54
→ newacc: 有認真找XD 09/22 12:54
→ newacc: 2.清掉是為了放接下來跑出來的結果,你也可以把這行刪掉, 09/22 12:57
→ newacc: 然後把新的資料放到更右邊的欄位裡,就可以留之前的結果了 09/22 12:57
→ newacc: 或應該也可以把刪除改成插入,這樣後面的位置也不用調整 09/22 13:00