![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 20.03.2011
Сообщений: 1
|
![]()
Подкиньте идейку насчет задачи, плиз
Квадраты и прямоугольники очаровывали известного Голландского живописца Питера Мондриана. Однажды ночью, после работы над серией “Туалетные ряды” (где нужно было использовать для аппликации туалетную бумагу), он размышлял о заполнении без остатка различными способами одной большой прямоугольной области маленькими прямоугольниками шириной 2 и высотой 1. Поскольку он был экспертом по туалетной бумаге, то сразу понял, что не обойдется без компьютера, для вычисления количества способов заполнения большой прямоугольной области с целочисленными размерами. Помогите ему, чтобы его мечта не превратилась в кошмар! Дается ширина и длинна большой прямоугольной области, нужно вывести кол-во возможных комбинаций. Я не прошу решать эту задачу, я лишь хочу понять закономерность между сторонами и кол-вом комбинаций. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.12.2010
Сообщений: 247
|
![]()
создай массив булеевых значение, в нем будет храниться все что ты уже заполнил, напиши функцию которая принимала бы массив в качестве параметра и позицию в этом массиве, в теле функции проверяй не вышел ли ты заграницы массива или нет ли единички на текущей позиции, если он закончился, то это еще одна комбинация, если там единичка сдвигай позицию, если нет перебирай все возможные варианты того как можно поставить кусочек туалетной бумаги (подставил кусочек - заполнил соответствующие места единичками, вызвал рекурсивно эту же функцию со смещенной позицией вернулся из рекурсии убирай подставленный кусочек и пробуй другие).
зы пользуйся барьерными элементами зыы согласен что непонятно написал, если нужны примеры посмотри задачи на поиск в глубину |
![]() |
![]() |