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

看板Prob_Solve (計算數學 Problem Solving)作者 (sofia)時間17年前 (2008/01/23 15:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/8 (看更多)
※ 引述《ablboy (賣悶! 賣共! (M))》之銘言: : 依網友的數據再推一次 : 首先將整個陣列由大到小排列 : 例如 : 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 : 不過我想應該還有特殊數據 : 等網友提出來在討論 : 如果是隨機產生十個數, 請問這程式碼要怎麼寫, 然後程式要能在ie上直接run結果 : : -- : : ◆ 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) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.92.77.118
文章代碼(AID): #17bkhEqx (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #17bkhEqx (Prob_Solve)