我得到了兩組數字,其中SET2通常有更多的項目。確保SET2的計數等於或大於SET1的計數。 Acutally,因爲順序重要的輸入是列表而不是集合。找到兩個數字列表的好匹配
我的目標是(總結)從SET2結合/重新排序的數字,使其類似於SET1越好。我將相似性定義爲每個位置偏差的總和。有關我計算相似度的方式,請參閱this post。總和越小越好。
我的第一種方法是嘗試所有組合並挑選最好的組合。這隻適用於很小的集合(尤其是第二集)。見this post和Rawling的答案。 有沒有更好的組合方式?我絕對不需要最好的一個。一個好的結果會很好。很明顯,空子集的集合是無稽之談。極端不平衡的集合對我來說似乎不是很有希望。 SET1往往有8個左右,但最多可以有18個條目。 SET2的計數通常超過10(最多35)。 兩組數字之和相等(舍入誤差除外)。
這是好的和壞的結果的例子(不是所有可能的):
SET1 = { 272370, 194560, 233430 }; SET2 = { 53407.13, 100000, 365634.03, 181319.07 }
272370 | 194560 | 233430
---------------------------------------------------------------------
365634.03 | 100000 + 53407.13 | 181319.07 (best match)
365634.03 | 181319.07 | 100000 + 53407.13 (good)
365634.03 | 100000 |181319.07 + 53407.13 (ok)
53407.13 |365634.03 + 100000 | 181319.07 (bad)
53407.13 |365634.03 + 181319.07 | 100000 (bad)
. |365634.03 + 181319.07 | 53407.13 + 100000 (invalid)
53407.13 + 100000 |365634.03 + 181319.07 | (invalid)
請讓我知道如果我忘了描述一個前提或我的描述不清,甚至錯誤的。我也很樂意提供另一個例子。
在此先感謝!
您是在尋找最佳答案或快速啓發式? – Ari
快速啓發式將是完美的。特別是由於無法進行詳盡的計算。感謝評論@Ari。 – Toby