iter все возможные формы блока тетриса

Возможный дубликат:
Вопрос конкурса программирования: подсчет полимино

Существуют различные типы тетрисов. Например, в виде букв T L I Z J O S.

Я пытаюсь получить алгоритм, который может создавать эти блоки. Я использую C++, но псевдокода будет достаточно. Любые идеи, как ее решить или как описать проблему, чтобы лучше ее искать?

Блок — это самая маленькая часть фигуры тетриса. Если у вас есть 4 блока для создания фигуры, то возможных фигур всего 7:

X      X    X
X  XX  X    X   X   XX  XX 
X  XX  XX  XX  XXX XX    XX
X

Обороты не в счет. Если у вас есть 3 блока, то вы можете формировать только 2 блока:

X   X
X  XX
X

Сколько форм существует, когда у вас есть n блоков? И как они выглядят?


person Joshua Behrens    schedule 07.01.2013    source источник
comment
Как правило, для решения подобных задач вам следует начать с бумаги и ручки; Найдите свой алгоритм, а затем напишите код, чтобы сделать это. Не пытайтесь написать код для алгоритма, которого вы еще не знаете - этот процесс, как правило, заканчивается написанием плохого кода и необходимостью все равно все переписывать. Попробуйте решить несколько случаев (например, n = 3, 4, 5, etc.) и найдите общую закономерность. В любом случае, вы всегда можете применить грубую силу.   -  person RageD    schedule 07.01.2013
comment
Ответ @BoBTFish kaoD очень помог мне, начиная с верхнего левого угла, что, как он сказал, упрощает все, как он сказал, и для меня тоже. ТАК в лучшем виде, спасибо.   -  person Joshua Behrens    schedule 07.01.2013
comment
@AdamStelmaszczyk спасибо за исправление моих проблем с английским языком. На мой текст слишком сильно повлиял мой родной язык.   -  person Joshua Behrens    schedule 07.01.2013
comment
@RageD Ну, это должна была быть моя первая попытка.   -  person Joshua Behrens    schedule 07.01.2013