我有一堆組A1,A2,A3,... AN。每組包含N個元素(可以說1000個最大值),其值爲0到2000。優化組合和組合
A1{1,2,3,4}
A2{2,4,3,5}
A3(1,2,5,6)
現在對於k的大小,例如, 3,A1的組合將是C1(1,2,3),C2(1,2,4),C3(2,3,4)對於A1到AN,我需要弄清楚A1中的所有組合是否存在某處在A2到AN的組合中。
即A1的組合C3將與A2中的組合匹配,並且可能與AN組合。現在我需要A1的C1和C2以及A2到AN的結果。 簡單而低效的方法是將所有集合A1到AN的k個大小的所有組合。那麼對於C1的A,其中/如果它存在於A2中,則爲AN。之後,C2,然後是C3。然後轉到下一個設置並重復。
我該如何改進這種方法,因爲一旦添加了新套件,它需要頻繁且昂貴的計算?
我發現的另一個解決方案將在O(N^2 + N)中運行而不進行優化,基本上涉及到A1和A2的交點... AN,計算這些交點的組合,然後查看多少次每個組合都會在生成的結果中出現。