Вычисление высоты непересекающегося множества - PullRequest
0 голосов
/ 08 мая 2020

Рассмотрим программу

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) объединяет два набора Dynami c, содержащих объекты i и j, в новый набор Si ∪ Sj

Итак, первый for l oop заполнит набор 60 элементами, затем второй for l oop объединит элементы, составляющие set составляет половину 60, которая равна 30. но затем мы используем 3 * i, а i колеблется до 20, так что не go вне диапазона. Или я неправильно понял?

Какая будет высота непересекающегося множества?

Заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

Я не знаю, что вы имеете в виду под высотой, но здесь Union (i, j) означает, что набор, содержащий элемент i, и набор, содержащий элемент j, будут объединены. Тем не менее, объединенный набор содержит все элементы, которые ранее принадлежали наборам, содержащим i и j.

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

Приведенный выше код означает, что набор, содержащий элемент i, будет объединен с набором, содержащим элемент 3 *я. Итак, это не go вне диапазона.

Наконец, Find (i) сообщит, какой набор содержит элемент i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...