Re: [討論] 排列組合的演算法解題
※ 引述《SocketAM2 (AM2)》之銘言:
: 基本想法是一個個位數iterate過去
: 有個簡單的剪枝手段:不可能達成4個的時候就不用往下數了
: 例如10000xx,最多就3個數
: 再來是個簡單的算小計手段:已經數到四個數了,剩下的位數只能在已知最大值之內
: 例如1234xyz中的xyz各能在(0,1,2,3,4)中任選,所以這類共5^3=125個
: 我試了下python,光用上面這兩招沒特別雕語法
: 大概可以跑在一秒多
: 原po可以參考看看
: 還有版友想得到其他有效手段嗎?
: 剛剛又發現一個不錯的手段:建表查表
: 例如前面算過1234xyz這類共125個
: 建個表,key是“ 前四位數最大為4,且已經數到4個數了”,值是125
: 以後再碰到這種case就直接小計125
: 遇到表上沒有的就往下拆分算完再加進表內
: 加上這招可以壓到0.03秒左右
小弟目前遇到同樣的問題 不過小弟的狀況是排列組合預估會有6^200 有可能記憶體不夠
或是計算時間過於長久 不曉得有沒有加速的方法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.155.71 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1627825548.A.717.html
推
08/01 22:36,
3年前
, 1F
08/01 22:36, 1F
→
08/01 22:37,
3年前
, 2F
08/01 22:37, 2F
→
08/01 22:37,
3年前
, 3F
08/01 22:37, 3F
→
08/01 22:38,
3年前
, 4F
08/01 22:38, 4F
題目如下
https://ibb.co/kSGwmyk
用左邊的6個正方形(1~6)pattern將右邊的grid(20x10)填滿 每一次填入至少含一個
pattern的正方形(如N.4,只填5) grid不可重複填 要畫出所有排列組合並求最小填入
次數 初步考慮每個grid有可能被pattern的(1~6)正方形填入 估計大約<6^200種組合
※ 編輯: gecer (220.143.155.71 臺灣), 08/02/2021 20:45:34
※ 編輯: gecer (220.142.223.39 臺灣), 08/04/2021 08:27:57
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章