Предположим, у меня есть такой набор кортежей (каждый кортеж будет иметь 1,2 или 3 элемента):
Мастер-набор:
{(A) (A,C) (B,C,E)}
и, предположим, у меня есть другой наборкортежи, подобные этому:
Реальный набор: {(BOB) (TOM) (ERIC,SALLY,CHARLIE) (TOM,SALLY) (DANNY) (DANNY,TOM) (SALLY) (SALLY,TOM,ERIC) (BOB,SALLY) }
Что я хочу сделать, это извлечь все подмножества кортежей из реального набора, где элементы кортежей можно заменить, чтобы они стали такими же, какмастер-набор.
В приведенном выше примере будут возвращены два набора:
{(BOB) (BOB,SALLY) (ERIC,SALLY,CHARLIE)}
(пусть BOB = A, ERIC = B, SALLY = C, CHARLIE = E)
и
{(DANNY) (DANNY,TOM) (SALLY,TOM,ERIC)}
(пусть DANNY = A, SALLY = B, TOM = C, ERIC = E)
Это своего рода сопоставление с образцом, я полагаю, что-то вроде комбинаторики.Я действительно не знаю, как классифицировать эту проблему и какие у нее общие планы атаки.Что бы посоветовали эксперты по переполнению стека?