#множества #алгоритм
Есть списки уникальных целых значений. Каждый список назову «множеством». Есть возможность узнавать кол-во уникальных элементов для максимум M множеств. Например: /* допустим, мн-ва A и B такие, на деле состав множеств неизвестен */ A = [1,2,3] B = [2,3,4,5] /* можем задавать такие запросы и получать такие результаты: */ unique(A,B) = 5 /* 1,2,3,4,5 */ unique(A) = 3 unique(B) = 4 Хочется узнать кол-во общих элементов для N множеств, где N > M. Возможно ли это в заданных условиях? Запросов про unique() можно делать много. Как отсюда можно прийти к числу общих, для 2, понятно: unique(A) + unique(B) - unique(A,B) = общее ядро A и B 3 + 4 - 5 = 2 в примере выше. Не соображу, как поступать с бОльшим числом множеств. К сожалению, прогулял теорию множеств в своё время, поэтому прошу помощь у зала.
Ответы
Ответ 1
Задача в общем случае нерешаема. Пример: пусть M = 1, N = 2, все множества одноэлементные. Вы никак не сможете узнать, эти множества совпадают или нет.
Комментариев нет:
Отправить комментарий