Форум программистов, компьютерный форум CyberForum.ru

Найти расстановку двенадцати коней на шахматной доске - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Nailan
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 3
13.12.2010, 20:15     Найти расстановку двенадцати коней на шахматной доске #1
Найти расстановку двенадцати коней на шахматной доске, при которой каждое поле будет находиться под ударом одного из них. Написать функцию для выполнения задачи с помощью рекурсий
ребят, помогите автомат на кону=)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
13.12.2010, 20:34
  #2

Не по теме:

Да, я бы поломал голову, но сегодня уже некогда, завтра... Только до завтра здесь наверно уже несколько вариантов будет, задача интересная)

Nailan
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 3
13.12.2010, 20:36  [ТС]     Найти расстановку двенадцати коней на шахматной доске #3
=) моему преподу тоже понравилась))
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.12.2010, 13:09     Найти расстановку двенадцати коней на шахматной доске #4
Цитата Сообщение от Nailan Посмотреть сообщение
Написать функцию для выполнения задачи с помощью рекурсий
Написать функцию довольно просто. Но кол-во возможных перестановок 12 коней на поле 8*8 равно 1573144097507348889600. Результата не дождетесь.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
14.12.2010, 13:23     Найти расстановку двенадцати коней на шахматной доске #5
valeriikozlov, знаете задачу про коня (шахматным конем обойти все поле, не вставая на одну клетку дважы)? Я когда-то тоже написал ее перебором - результата недождался (реально на ночь оставлял))), потом нашел в инете решение в 50 строчек, результат выводит практичеси сразу же. Оказывается алгоритм решения этой задачи был придуман еще в начале 20го века, можно попробовать эту подобным образом решить.

Добавлено через 1 минуту
где-то в этой теме http://www.cyberforum.ru/cpp-beginne...ead153746.html есть подробности алгоритма и несколько решений (в т.ч. и неправильных)
Manjak
 Аватар для Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
14.12.2010, 14:04     Найти расстановку двенадцати коней на шахматной доске #6
Да алгоритм решения задачи Ейлера очень простой, заводится массив [8][8] где для каждой ячейки указывается количество точек из которых конь может перейти на эту ячейку. По этим данным и выбирается следующий ход.

Вечерком нужно будет сесть решить, интересная задачка
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
14.12.2010, 14:11     Найти расстановку двенадцати коней на шахматной доске #7
Цитата Сообщение от Manjak Посмотреть сообщение
Да алгоритм решения задачи Ейлера очень простой, заводится массив [8][8] где для каждой ячейки указывается количество точек из которых конь может перейти на эту ячейку.
Там еще по-моему выбирается тот ход, с которого меньше всего следующих ходов.
Manjak
 Аватар для Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
14.12.2010, 14:33     Найти расстановку двенадцати коней на шахматной доске #8
Само собой
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.12.2010, 16:35     Найти расстановку двенадцати коней на шахматной доске #9
0 0 0 0 0 0 0 0
0 0 0 0 0 К 0 0
0 К К 0 К К 0 0
0 0 К 0 0 0 0 0
0 0 0 0 0 К 0 0
0 0 К К 0 К К 0
0 0 К 0 0 0 0 0
0 0 0 0 0 0 0 0
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
14.12.2010, 17:02     Найти расстановку двенадцати коней на шахматной доске #10
Что-то я не могу допереть, куда здесь рекурсию пихать? По-моему не самая идеальная задача для рекурсивного подхода в решении.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
15.12.2010, 00:27     Найти расстановку двенадцати коней на шахматной доске #11
Kastaneda, самая идеальная для рекурсии, это наверное Ханойские башни. Рекурсивное решение - три строчки, не рекурсивное - ... Уууу, лучше не думать об этом)))
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.12.2010, 01:15     Найти расстановку двенадцати коней на шахматной доске #12
Быстрая сортировка тоже в какой-то степени. Пришлось вчера с итеративной столкнуться. Не обрадовался.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
15.12.2010, 12:14     Найти расстановку двенадцати коней на шахматной доске #13
ForEveR, а, ну да, быстрая сортировка итеративно - тоже гиблое дело...
Manjak
 Аватар для Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
15.12.2010, 14:37     Найти расстановку двенадцати коней на шахматной доске #14
Тут похоже под рекурсией имеется ввиду глубина анализа, только я пока не закочнил с алгоритмом выбора следующего хода.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 16:21     Найти расстановку двенадцати коней на шахматной доске
Еще ссылки по теме:

C++ Замена фигур на шахматной доске
Ход на шахматной доске C++
C++ Геометрическая прогрессия на шахматной доске

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sergey1993
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 79
02.12.2012, 16:21     Найти расстановку двенадцати коней на шахматной доске #15
valeriikozlov, можете помочь с задачей про 12 коней на шахматном поле
Yandex
Объявления
02.12.2012, 16:21     Найти расстановку двенадцати коней на шахматной доске
Ответ Создать тему
Опции темы

Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru