У меня есть коллекция наборов с номерами в нем.Скажите
A = {-2, 5, 6, 8}
B = {-2, 4}
C = {-2, 4, 6, 8}
D = {1, -2, 15}
E = {1, 4, 15}
F = {1, 15}
G = {2, 5, 6, 15}
H = {2, 6, 15}
Теперь я хочу найти набор из 4 чисел и найти наборы, которые принадлежат этому набору.Например, я могу определить здесь набор X = {1, -2, 4, 15}
, и мы видим, что B, D, E и F принадлежат этому набору.Найти эти наборы не очень сложно.
Однако проблема, с которой я сталкиваюсь, заключается в том, что я хочу идентифицировать все наборы с длиной m чисел в этой коллекции.Так что на самом деле, принимая приведенный выше пример в качестве входных данных, алгоритм получает m = 4
и {A,B,C,D,E,F,G,H}
в качестве входных данных и дает мне {B,D,E,F}
и {B, C}
(поскольку все они содержат числа в наборе {-2, -4, 6, 8}).
Единственный способ, которым я мог придумать ответ, - это сгенерировать все возможные наборы length = 4
с числами в доступных наборах и определить, подходит ли каждый набор.Это кажется немного тупым.
Есть хорошие советы?(Java или PHP)?