假设C={1,2,...,100}
。假设我们设置了A_1 to A_n
(n<=100)
,首先我们有A_i={i}.
关系R,给出了C上的150个元素。每次我们随机选择(a,b) ∈ R
中的一个元素。假设a ∈ A_i
和b ∈ A_j
。如果i not equal to j
,我们会合并A_j in A_i
。 (即:A_i <-- A_i union A_j
)。最多,我们有多少合并操作?
1)149
2)150
3)99
4)100
我的教授说(4)是真的,但我很清楚我们是如何达到这个的!任何学习的想法?或者我可以用它做任何实验的代码吗?
编辑: A_j中的A_j合并,意味着删除A_j并保留A_i。只是我觉得有两个案例发生了。
答案 0 :(得分:1)
我认为问题在于您定义&#34;合并的方式。&#34;
如果&#34;合并&#34;实际上意味着[A_i&lt; - A_i union A_j]和[A_j&lt; - {}],那么正确答案似乎是99.
这是因为每次执行合并时,您都会清空其中一个A_k集,并且它不再参与任何将来的合并。由于您有100个非空集开头,因此在只有一个包含元素的集合之前,您最多只能执行99次合并,并且不能再进行合并。