Работа по автоматическому генерированию файлов конфигурации.
У меня есть комбинации с 3 факторами:
{a1,m1,c1}
{a1,m1,c2}
{a1,m2,c1}
{a2,m1,c1}
{a2,m1,c2}
Теперь я хочу «сжать» эти 5 выражений до как можно меньшего числа выражений, в данном случае 2 - это минимум (порядок не имеет значения):
{{c1,c2},{m1},{a1,a2}}
{{c1},{m2},{a1}}
Как мы видим, мы можем легко генерировать оригинальные комбинации из сжатых выражений.
У меня вопрос: как обобщить алгоритм сжатия комбинаций до наименьшего числа выражений?
У меня более сложный случай с 4 или 5 факторами.
Я полагаю, что для этого существует алгоритм, не могли бы вы поделиться ссылкой на алгоритм?
Обновление:
Более общий случай с двумя факторами:
Использование
{a1,a2,a3} {c1,c2,c3}
мы можем сгенерировать
{a1,c1} {a1,c2} {a1,c3}, {a2,c1} {a2,c2} {a2,c3} {a3,c1} {a3,c2} {a3,c3}
Как я могу вывести
{{a1,a2,a3},{c1,c2,c3}}
от
{a1,c1} {a1,c2} {a1,c3}, {a2,c1} {a2,c2} {a2,c3} {a3,c1} {a3,c2} {a3,c3}