Я думаю, что пространство поиска довольно мало, хотя программирование может быть неудобным.
У нас есть семь вариантов центральной части. Тогда у нас есть 6 вариантов для
кусок выше этого, но его ориентация фиксирована, так как его нижний край должен совпадать с верхним краем центрального элемента, и, аналогично, всякий раз, когда мы выбираем кусок для размещения в слоте, ориентация фиксируется.
Есть меньше вариантов для оставшихся частей. Предположим для
Например, мы выбрали центральную часть и верхнюю часть, как на рисунке; тогда
верхняя правая часть должна иметь (по часовой стрелке) последовательные края (5,3), чтобы соответствовать частям в
место, и только три из частей имеют такую пару ребер (и на самом деле мы уже
выбрал один из них в качестве центральной части).
Можно сначала создать таблицу со списком.
частей для каждой пары ребер, а затем для каждого из 42 вариантов выбора центра и вершины
действовать по часовой стрелке, выбирая только те части, которые имеют требуемую пару ребер (для соответствия центральной части и ранее размещенной части), и возврат в обратном направлении, если таких частей нет.
Я считаю, что наиболее распространенной парой ребер является (1,6), которая встречается на 4 фигурах, две другие пары ребер ((6,5) и (5,3)) встречаются на 3 фигурах, существует 9 пар ребер которые происходят на две части, 14
которые встречаются на 1 части и 4, которые не встречаются вообще.
Таким образом, очень пессимистическая оценка количества выборов, которые мы должны сделать,
7 * 6 * 4 * 3 * 3 * 2 или 3024.