Программа 3 для разрезания на 2–6 равных частей
Фиксируем одну стартовую клетку базовой части. Для каждой другой части перебираем движение, переводящее стартовую клетку в её копию. Затем ищем покрытие исходной фигуры пакетами соответствующих клеток.
Математические подробности
Пусть частей \(k\). Переименуем их так, чтобы фиксированная клетка исходной фигуры лежала в части \(A\). Для каждой из остальных частей выбирается движение \(T_i\), переводящее \(A\) в эту часть.
Линейная часть движения имеет 8 вариантов. После выбора образа фиксированной клетки перенос определяется однозначно. Поэтому грубое число наборов движений имеет порядок (8n)^(k−1), а не (8n²)^(k−1).
Для фиксированного набора движений каждая клетка \(x\) базовой части задаёт пакет \(\{x,T_2(x),\ldots,T_k(x)\}\). Нужно выбрать непересекающиеся пакеты, покрывающие всю исходную фигуру.