Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 13:26   #1
AntiVIRUZ
Новичок
Джуниор
 
Регистрация: 20.03.2011
Сообщений: 1
Вопрос Мечта Мондриана

Подкиньте идейку насчет задачи, плиз

Квадраты и прямоугольники очаровывали известного Голландского живописца Питера Мондриана. Однажды ночью, после работы над серией “Туалетные ряды” (где нужно было использовать для аппликации туалетную бумагу), он размышлял о заполнении без остатка различными способами одной большой прямоугольной области маленькими прямоугольниками шириной 2 и высотой 1.
Поскольку он был экспертом по туалетной бумаге, то сразу понял, что не обойдется без компьютера, для вычисления количества способов заполнения большой прямоугольной области с целочисленными размерами. Помогите ему, чтобы его мечта не превратилась в кошмар!

Дается ширина и длинна большой прямоугольной области,
нужно вывести кол-во возможных комбинаций.

Я не прошу решать эту задачу, я лишь хочу понять закономерность между сторонами и кол-вом комбинаций.
AntiVIRUZ вне форума Ответить с цитированием
Старый 20.03.2011, 14:46   #2
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

создай массив булеевых значение, в нем будет храниться все что ты уже заполнил, напиши функцию которая принимала бы массив в качестве параметра и позицию в этом массиве, в теле функции проверяй не вышел ли ты заграницы массива или нет ли единички на текущей позиции, если он закончился, то это еще одна комбинация, если там единичка сдвигай позицию, если нет перебирай все возможные варианты того как можно поставить кусочек туалетной бумаги (подставил кусочек - заполнил соответствующие места единичками, вызвал рекурсивно эту же функцию со смещенной позицией вернулся из рекурсии убирай подставленный кусочек и пробуй другие).

зы пользуйся барьерными элементами
зыы согласен что непонятно написал, если нужны примеры посмотри задачи на поиск в глубину
ololo-schoolboy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц