【发布时间】:2016-10-14 12:07:51
【问题描述】:
我们如何在 Ruby 中为重复元素的集合获取交集和并集。
# given the sets
a = ["A", "B", "B", "C", "D", "D"]
b = ["B", "C", "D", "D", "D", "E"]
# A union function that adds repetitions
union(a, b)
=> ["A", "B", "B", "C", "D", "D", "D", "E"]
# An intersection function that adds repetitions
intersection(a, b)
=> ["B", "C", "D", "D"]
& 和 | 运算符似乎忽略了重复和重复,如文档中所述。
# union without duplicates
a | b
=> ["A", "B", "C", "D", "E"]
# intersections without duplicates
a & b
=> ["B", "C", "D"]
【问题讨论】:
-
在数学中,集合是不同对象的集合。
-
我想您想知道如何实现您的方法
union和intersection,您需要在其中说。它们与Array#|或Array#&无关,因此不会添加任何内容来引用它们。示例很好,但它们并不能解释您希望方法展示的精确行为。我们可以猜测,但可能是错误的。你需要用文字描述这些行为;例子是次要的。 -
@CarySwoveland 更好?
-
@CarySwoveland 我从没想过这样看。我以为联合的定义是众所周知的,但是这样描述它实际上更容易实现,谢谢!
标签: ruby multiset set-intersection set-union