Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разрезание шахматной доски

34K
24 марта 2008 года
Kostyan777
8 / / 24.03.2008
Помогите, пожалуста, с задачей(нужен алгоритм, или хотя бы идея):
Цитата:
[SIZE=2]Разрезание шахматной доски.
Написать программу нахождения всех способов разрезания шахматной доски с числом клеток nxn (n-четное) на две одинаковые по форме части (не считая вращений и отражений).[/SIZE]


Как я понимаю, доска должна быть разрезана на 2 равные части так, чтоб они накладывались друг на друга.
Помогите, пожалуста.

320
24 марта 2008 года
m_Valery
1.0K / / 08.01.2007
Перед тем как создаавать тему надо прочитать Правила и Дополнения.
Цитата:
Разрезание шахматной доски.
Написать программу нахождения всех способов разрезания шахматной доски ...


На каком языке написать ? На любом пойдет ? [COLOR="Red"]За небрежное оформление темы - предупреждение.[/COLOR]модератор.

360
24 марта 2008 года
P*t*
474 / / 15.02.2007
Цитата: Kostyan777
Помогите, пожалуста, с задачей:

Как я понимаю, доска должна быть разрезана на 2 равные части так, чтоб они накладывались друг на друга.
Помогите, пожалуста.



Отрезанная часть обязательно должна быть связной?

34K
24 марта 2008 года
Kostyan777
8 / / 24.03.2008
Цитата:
Отрезанная часть обязательно должна быть связной?


Да, должны быть 2 неразрывные части.
Решение задачи для n=4:

Цитата:

1100
1100
1100
1100

1000
1100
1100
1110

0000
1100
1100
1111

0000
0100
1101
1111

0000
0101
0101
1111

0001
0101
0101
0111


Подскажите как решать? Если только перебором, то как перебирать?
Уже неделю голову ломаю((

276
24 марта 2008 года
Rebbit
1.1K / / 01.08.2005
Какое ограничение на размер ? Если 8 то доска идентифицыруется 64-разрядным числом.
Тогда можно пробовать брать для начала розрез пополам и рекурсивно пробовать менять по 1 клетке. При изменении клетки проверять связность куска, пробовать отражать (тут нужно правило которое определяет который из вариантов отражения принимать за основной) и если все гуд и вариант нас устраивает и еще не встречался идти дальше по рекурсии.
Найденные варианты надо хранить в масиве, который будем сортировать и проверять по нем результат бинарным поиском.

Хотя чтото мне самому ета идея не нравится.
34K
24 марта 2008 года
Kostyan777
8 / / 24.03.2008
надо попробовать...
тут еще вопрос возникает: сколько таких матриц хранить придется?
247
25 марта 2008 года
wanja
1.2K / / 03.02.2003
ИМХО, делать надо примерно так: Каждый разрез должен проходить сквозь ценир доски. Оттуда и будем плясать. Первый - вертикально вверх или вправо(если хочешь учесть и с поворотом), и центрально симметрично ему. Дальше - влево, прямо или вправо(от предыдущего направления). Перебираешь все комбинации при помощи возвратного алгоритма, не забывая следить за самопересечениями.
276
25 марта 2008 года
Rebbit
1.1K / / 01.08.2005
Цитата: wanja
ИМХО, делать надо примерно так: Каждый разрез должен проходить сквозь ценир доски......


Респект. Признаю свою идею плохой.

34K
25 марта 2008 года
Kostyan777
8 / / 24.03.2008
Цитата: wanja
Перебираешь все комбинации при помощи возвратного алгоритма, не забывая следить за самопересечениями.


Возвратный алгоритм - это какой? По-видимому тут должна быть рекурсия (потому что лаба на тему "Рекурсия").
Перебирать половину доски или четверть несложно.
Но главный вопрос: как перебрать все варианты, не повторяясь, чтобы в конце концов получить спираль?

247
26 марта 2008 года
wanja
1.2K / / 03.02.2003
С рекурсией. Двигаемся вперед по массиву, заполняем его минимальными(влево, прямо, вправо) подходящими элементами, пока не дойдем до края, или не зайдем в тупик. Дойдя до края, выдаем решение, и меняем последний элемент на следующий по порядку(влево - на прямо, прямо - на вправо), и пытаемся идти дальше. Если не получается - сдвигаемся по массиву влево.
34K
28 марта 2008 года
Kostyan777
8 / / 24.03.2008
что-то я не понимаю...
Объясни, пожалуста, на примере, если не трудно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог