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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Nailan
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 3
#1

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

13.12.2010, 20:15. Просмотров 2228. Ответов 14
Метки нет (Все метки)

Найти расстановку двенадцати коней на шахматной доске, при которой каждое поле будет находиться под ударом одного из них. Написать функцию для выполнения задачи с помощью рекурсий
ребят, помогите автомат на кону=)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти расстановку двенадцати коней на шахматной доске (C++):

Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N - C++
Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N. ;)

На шахматной доске стоят три ферзя. найти ту пару из них которые угрожают друг другу! - C++
помогите пожалуйста, или подскажите как начать)) на шахматной доске стоят три ферзя. найти ту пару из них которые угрожают друг другу!

Числа на шахматной доске в С++ - C++
В клетках шахматной доски находятся целые числа. --- Определить в программе глобальные данные- константу N=8 и двумерный числовой массив...

Ход на шахматной доске - C++
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Данные...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kastaneda
13.12.2010, 20:34
  #2

Не по теме:

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

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

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

Вечерком нужно будет сесть решить, интересная задачка
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
14.12.2010, 14:11 #7
Цитата Сообщение от Manjak Посмотреть сообщение
Да алгоритм решения задачи Ейлера очень простой, заводится массив [8][8] где для каждой ячейки указывается количество точек из которых конь может перейти на эту ячейку.
Там еще по-моему выбирается тот ход, с которого меньше всего следующих ходов.
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
14.12.2010, 14:33 #8
Само собой
0
valeriikozlov
Эксперт C++
4670 / 2496 / 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
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
14.12.2010, 17:02 #10
Что-то я не могу допереть, куда здесь рекурсию пихать? По-моему не самая идеальная задача для рекурсивного подхода в решении.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.12.2010, 00:27 #11
Kastaneda, самая идеальная для рекурсии, это наверное Ханойские башни. Рекурсивное решение - три строчки, не рекурсивное - ... Уууу, лучше не думать об этом)))
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
15.12.2010, 01:15 #12
Быстрая сортировка тоже в какой-то степени. Пришлось вчера с итеративной столкнуться. Не обрадовался.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.12.2010, 12:14 #13
ForEveR, а, ну да, быстрая сортировка итеративно - тоже гиблое дело...
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
15.12.2010, 14:37 #14
Тут похоже под рекурсией имеется ввиду глубина анализа, только я пока не закочнил с алгоритмом выбора следующего хода.
0
sergey1993
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 79
02.12.2012, 16:21 #15
valeriikozlov, можете помочь с задачей про 12 коней на шахматном поле
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 16:21
Привет! Вот еще темы с ответами:

Задача о зернах на шахматной доске - C++
Математическая задача, в которой вычисляется, сколько будет зёрен на шахматной доске, если класть на каждую следующую клетку доски вдвое...

Геометрическая прогрессия на шахматной доске - C++
Всем доброго времени суток.Отписывайтесь кто как решил. #include "head.h" void main() {//на поле 64 клетки ///сколько надо...

Замена фигур на шахматной доске - C++
задача. расставить случайным образом четырех коней на шахматной доске (два белых и два черных). вывести отдельно список полей под боем...

Расставить n ладей на шахматной доске n*n - C++
Вообщем нужно расставить n ладей на шахматной доске n*n Вот то что у меня получилось: #pragma argsused #include<iostream.h> int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.12.2012, 16:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru