Попытка найти формулу для тесселяции прямоугольников на доске, где нельзя использовать средний квадрат - PullRequest
0 голосов
/ 20 марта 2010

Я работаю над проблемой пространственного стекирования ... в данный момент я пытаюсь решить в 2D, но в конечном итоге придется выполнить эту работу в 3D.

Я делю пространство на nxn квадратов вокруг центрального блока, поэтому n всегда нечетно ... и я пытаюсь найти количество мест, где прямоугольник любого размера меньше nxn (например, 1x1, 1x2, 2x2 и т.д.) могут быть размещены там, где средний квадрат недоступен.

Пока у меня есть это ..

total number of rectangles = ((n^2 + n)^2 ) / 4

.. также общее количество квадратов = (n (n + 1) (2n + 1)) / 6

Однако я застрял в разработке формулы, чтобы определить, сколько из этих мест невозможно, так как средний квадрат будет занят.

Так, например:

[] [] []

[] [x] []

[] [] []

Доска 3 х 3 ... с 8 возможными местами для хранения вещей, так как используется средняя площадь. Я могу использовать формы 1x1, 1x2, 2x1, 3x1 и т. Д. ...

Формула дает мне количество прямоугольников как: (9 + 3) ^ 2/4 = 144/4 = 36 мест расположения Однако, поскольку средний квадрат незанятый, все это не может быть реализовано.

От руки я вижу, что это невозможные варианты:

1x1 формы = 1 невозможно (средний квадрат) 2x1 фигур = 4 невозможно (все, что использует средний квадрат) 3x1 = 2 невозможно 2х2 = 4 невозможно так далее Всего невозможных комбинаций = 16

Поэтому решение, которое я выбрал, - это 36-16 возможных прямоугольных стеков на доске 3х3.

Я закодировал это в C #, чтобы решить это методом проб и ошибок, но я действительно после формулы, которую я хочу найти для больших значений n, а также в конечном итоге сделать это 3D.

Может кто-нибудь указать мне какие-нибудь формулы для такого рода пространственной проблемы / проблемы тесселяции? Также приветствуется любая идея о том, как перенести формулу полного прямоугольника в 3D!

Спасибо!

1 Ответ

0 голосов
/ 26 марта 2010

Хорошо ... теперь у меня есть ответ, который ... что общее число невозможных случаев определяется следующим образом:

n ^ 4, где n - порядок размера сетки с использованием только нечетных сеток

2 ^ 4 = 16 (сетка 3 на 3) 3 ^ 4 = 81 (сетка 5 на 5) 4 ^ 4 = 256 (сетка 7 на 7) и т. Д.

...