Re: [請益] 如何把一堆數字分成總合相等的兩個集合
看板Prob_Solve (計算數學 Problem Solving)作者ablboy (賣悶! 賣共! (M))時間17年前 (2007/09/27 09:16)推噓0(0推 0噓 0→)留言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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 7 之 8 篇):
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30