В комментарии упоминается сокращение с X3C до ПОДВОДНОГО ПРОДУКТА, приписываемое Яо. Учитывая цель сокращения, было нетрудно догадаться, каким могло быть снижение.
Определения:
Точная крышка на 3 комплекта (X3C)
Дано конечное множество с | X | кратное 3 и набор C из 3-элементных подмножеств X , содержит ли C точное покрытие C ′ для X , где C ′ ⊆ C и каждый элемент в X встречается ровно один раз в C ′ ?Икс| Икс|CXCC′XC′⊆CXC′
СУБСЕТНЫЙ ПРОДУКТ
Имея список чисел и цель k , существует ли подмножество чисел из L , произведение которых равно k ?LkLk
Чтобы уменьшить экземпляр X3C до экземпляра SUBSET PRODUCT:
Установить биективное отображение между членами и первым | X | простые числа. Замените члены подмножеств X и C сопоставленными простыми числами.X|X|XC
Для каждого подмножества в умножьте его члены вместе; результирующий список продуктов L для экземпляра SUBSET PRODUCT. Поскольку простые числа используются для отображения на шаге 1, произведения гарантированно эквивалентны, если подмножества эквивалентны по теореме об уникальной факторизации .CL
Умножьте члены вместе; В результате получается значение k для экземпляра SUBSET PRODUCT.Xk
Простые множители точно члены X . Простые множители чисел в L точно соответствуют членам C подмножеств. Поэтому любое решение нового экземпляра SUBSET продукта может быть превращено в раствор X3C путем сопоставления членов раствора L обратно к подмножествам в С .kXLCLC
Каждый из 3 шагов преобразования включает в себя операции, полиномиальные по размеру ввода или размер члена X . Первый | X | простые числа могут быть сгенерированы во времени O ( | X | ) с помощью сита Эратосфена и гарантированно помещаются в пространство O ( | X | 2 ln | X | ) по теореме простых чисел .|X|X|X||X|O(|X|2ln|X|)