计算不相交集的高度

2024-03-29 11:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑该计划

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)将包含对象ij的两个动态集合并成一个新的集Si ∪ Sj

因此,第一个for循环将用60个元素填充一个集合,然后第二个for循环组合元素,使集合的长度为60的第一半,即30。但接下来我们使用3*i,i的范围一直到20,所以它不会超出范围。还是我理解错了

不相交集的高度是多少

提前谢谢


Tags: to对象from元素for高度动态成员
1条回答
网友
1楼 · 发布于 2024-03-29 11:34:48

我不知道你说的高度是什么意思,但这里的并集(I,j)表示包含元素I的集合和包含元素j的集合将被合并。不过,合并的集合包含以前属于包含i和j的集合的所有元素

for i from 1 to 20:
  Union(i, 3*i)

上述代码表示包含元素i的集合将与包含元素3*i的集合合并。所以,它不会超出范围

最后,Find(i)将告诉哪个集合包含元素i

相关问题 更多 >