考虑该计划
for i from 1 to 60:
MakeSet(i)
for i from 1 to 30:
Union(i, 2*i)
for i from 1 to 20:
Union(i, 3*i)
for i from 1 to 12:
Union(i, 5*i)
for i from 1 to 60:
Find(i)
我想确定不相交集的高度
我理解什么?
MakeSet(i)创建一个新集,其唯一成员由i
指向,并且
Unique(i,j)将包含对象i
和j
的两个动态集合并成一个新的集Si ∪ Sj
因此,第一个for
循环将用60个元素填充一个集合,然后第二个for
循环组合元素,使集合的长度为60的第一半,即30。但接下来我们使用3*i,i的范围一直到20,所以它不会超出范围。还是我理解错了
不相交集的高度是多少
提前谢谢
我不知道你说的高度是什么意思,但这里的并集(I,j)表示包含元素I的集合和包含元素j的集合将被合并。不过,合并的集合包含以前属于包含i和j的集合的所有元素
上述代码表示包含元素i的集合将与包含元素3*i的集合合并。所以,它不会超出范围
最后,Find(i)将告诉哪个集合包含元素i
相关问题 更多 >
编程相关推荐