Re: [請益] 如何把一堆數字分成總合相等的兩個集合

看板Prob_Solve作者 (賣悶! 賣共! (M))時間16年前 (2007/09/27 09:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/8 (看更多)
依網友的數據再推一次 首先將整個陣列由大到小排列 例如 : 8 4 3 3 3 3 準備兩個空間存放(S1與S2) 依序將數字存放置此兩空間 當某空間目前總和大於另一空間時 下一個數目存入較小的空間中 過程大致如下 8 : sum(S1) = 0, sum(S2) = 0; (S1沒比S2大); S1 <= 8 4 : sum(S1) = 8, sum(S2) = 0; (S1大於S2) ; S2 <= 4 3 : sum(S1) = 8, sum(S2) = 4; (S1大於S2) ; S2 <= 3 3 : sum(S1) = 8, sum(S2) = 7; (S1小於S2) ; S2 <= 3 ...... 依此類推得到 S1 = 8 3 S2 = 4 3 3 3 到此時S1與S2相差1 因此找S2的元素集合(排列組合)與S1元素中差值為 1的做交換 例如: S2的4 與 S1的3 例如: S2的3 3 3 與 S1的8 不過我想應該還有特殊數據 等網友提出來在討論 : -- 恕刪 -- : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 203.203.0.230 : 推 pigalan:Try it: 8 4 3 3 3 3...正確的應該是{8,4}, {3,3,3,3} 09/26 23:38 ※ 編輯: ablboy 來自: 203.203.0.230 (09/27 09:18)
文章代碼(AID): #16-mHU_w (Prob_Solve)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 7 之 8 篇):
文章代碼(AID): #16-mHU_w (Prob_Solve)