主題
Search

無序並集


列表的無序並集 S 是一個包含與 S 相同元素的列表,但會移除任何給定元素的第二次及後續出現。例如,集合 {1,3,3,2,1,3,4} 的無序並集是 {1,3,2,4}。無序並集與通常的並集 {1,2,3,4} 不同,因為無序並集中的元素不一定是有序的。

無序並集在 Wolfram Language 中實現為DeleteDuplicates[列表].

它可以在 Wolfram Language 頂層程式碼中實現為

  UnsortedUnion1[x_] := Tally[x][[All, 1]]

  UnsortedUnion2[x_] := Reap[Sow[1, x], _, #1&][[2]]

  UnsortedUnion3[x_] := Module[{f},
    f[y_] := (f[y] = Sequence[]; y);
    f /@ x
  ]

根據要進行並集運算的列表的性質,上述不同的實現方式可能更有效,儘管一般來說,第一種是最快的。


另請參閱

不相交併集, 並集

使用 探索

引用為

Weisstein, Eric W. "無序並集。" 來自 Web 資源。 https://mathworld.tw/UnsortedUnion.html

主題分類