我想为名为Multiset的类创建不同的方法。
我有所有必需的方法,但我不确定如何编写交集、联合和子集方法。
对于交集和联合,我的代码是这样开始的:
def intersect(var) x = Multiset.new end
这是一个例子:
X = [1, 1, 2, 4] Y = [1, 2, 2, 2]
那么 和 的X交点Y是[1, 2]。
X
Y
[1, 2]
利用您可以通过执行&(intersection)、-(difference) 和|(union) 对数组执行集合操作的事实。
&
-
|
显然,我没有按照规范实现 MultiSet,但这应该可以帮助您入门:
class MultiSet attr_accessor :set def initialize(set) @set = set end # intersection def &(other) @set & other.set end # difference def -(other) @set - other.set end # union def |(other) @set | other.set end end x = MultiSet.new([1,1,2,2,3,4,5,6]) y = MultiSet.new([1,3,5,6]) p x - y # [2,2,4] p x & y # [1,3,5,6] p x | y # [1,2,3,4,5,6]