1つのセットのみを含む1つのリストで2つのセットのリストを反復しようとし、すべてのセットが追加されるまでに最大交差点を持つリストにセットを追加します。 order_of_setsの新しい要素は、手続きを繰り返す必要があります。アルゴリズムは欲張りアルゴリズムのように機能するはずです。私は最終的に欲しいリストに最も多くの交差要素を含むセットを追加する方法
s1=set([1,2,3,4,5,6,7,8,9,10])
s2=set([1,3,56,8,9])
s3=set([1,4,5,6,7,8,10,22,23,24,25])
s4=set([7,8,9,10,23,14,22,23,24,30,56])
list_of_sets=[s2,s3,s4]
order_of_sets=[s1]
for x in list_of_set:
for y in order_of_sets:
if len(x.intersection(y))==max[len(x.intersection(y))]:
order_of_lists.append(y)
list_of_sets.remove(y)
は次のとおりです。
order_of_sets=[s1,s3,s4,s2]
多分私が交差点の長さを評価しますが、私はどのように知らない関数を定義することができます。
出力は何ですか?あなたの説明にこれを書いてください。 – qbzenker
"他のどのセットと"最大の交差点を持っていますか? – user2357112
s1となる集合の順番で設定します。私はs1との最も大きな交差点を持つlist_of_setsからセットを追加したいと思います。これはs3になります。それから、次はセット3で次のことをしたい。最も大きな交差点はs3とs4の間です。 –