我有一組字符集合(字典),比如{1: {'a', 'b'}, ...}
我需要找到n個最大的交集,即集合的最大子集的交集。明顯的蠻力方法:在Python中查找n個最大的集合集合
for i in range(len(collection),2,-1):
for subset in combinations(sorted(collection), i):
intersected = set.intersection(*(collection[k] for k in subset))
if len(intersected)>0:
yield len(subset), intersected
是非常緩慢的。有沒有一些有效的方法/庫來做到這一點?
它適用於我的數據集,雖然速度很慢。作爲澄清,最大的我是指集合中最大的子集(最大數量的重疊子集),不一定是元素數量最大的交集。 –
你是什麼意思「n最大的十字路口」?什麼是「n」?你認爲這些藏品的最大子集的交集是什麼? –
一些最小的示例輸入和輸出數據將會有所幫助。 –