主题
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
  ]

根据要进行并集运算的列表的性质,上述不同的实现方式可能更有效,尽管一般来说,第一种是最快的。


另请参阅

不相交并集, 并集

使用 Wolfram|Alpha 探索

引用为

Weisstein, Eric W. "无序并集。" 来自 MathWorld--Wolfram Web 资源。 https://mathworld.net.cn/UnsortedUnion.html

主题分类