Re: [請益] 想請教一種計算篩選的方法..

看板PHP作者 (閒閒的人)時間19年前 (2006/03/27 13:32), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
我提供一個簡單的greedy演算法給你參考. 可以先假設沒有一個數大於你所設定的最大和M(如:100). 1.將原始資料由小到大排序. 假設排序好的陣列為S,而S[i]<=S[j] if i<=j. 2.選擇最大可選擇的數為第一個數.S[k] 3.選擇一個最大的y,使得y<k and S[y]+S[k]<=M. 4.選擇一個最大的x,使得x<y and S[x]+S[y]+S[k]<=M. 5.如果y,x存在,則S[k],S[y],S[x]即為其中一組解,將其儲存在你需要的地方, 並在S中刪去. 6.如果y,x不存在,則刪去S[k]. 7.回到2.,直到S為空集合為止. 實作的部份就自己試試看吧. 如果數目不大的話,就用最簡單的寫法就好了. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.90.149 ※ 編輯: zhman 來自: 140.112.90.149 (03/27 13:52)

03/27 23:35, , 1F
嗯嗯~感謝 我試看看 :)
03/27 23:35, 1F
文章代碼(AID): #149tZXNj (PHP)
文章代碼(AID): #149tZXNj (PHP)