|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.12.2009, 23:44 | #1 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 12
|
Рекурсия-Шахматы
Для шахматной доски размера k*k (k<=7) определить минимальное количество f (f < k) ферзей так, чтобы существовала такая их расстановка, что каждое поле доски находится под ударом хотя бы одного ферзя.
Какие есть идеи по поводу алгоритма? как я понимаю, тут функция должна вызывать саму себя.. |
03.12.2009, 15:58 | #2 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Массив полей шахматной доски лучше сделать глобальной переменной.
Внешний цикл: перебираем количество ферзей n от 1 до k, вызывая рекурсивную функцию f(n). Эта функция принимает аргумент - количество оставшихся ферзей. -Если n=0, проверяем главное условие ("каждое поле доски находится под ударом хотя бы одного ферзя"): --Если не выполняется - выходим из функции. --Если выполняется - выдаём ответ и выходим из программы. -Если n>0, перебираем возможные позиции ферзя, вызывая каждый раз f(n-1). Последний раз редактировалось ds.Dante; 03.12.2009 в 16:01. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пишу шахматы на делфи | -COREY- | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 32 | 07.05.2011 19:32 |
задача шахматы | darter96 | Помощь студентам | 7 | 25.06.2009 13:43 |
Шахматы онлайн | LAGOX | PHP | 1 | 08.05.2009 21:15 |
Delphi шахматы | kacky | Помощь студентам | 3 | 30.10.2008 20:09 |
Шахматы | Shchetnev | Фриланс | 10 | 27.05.2008 00:36 |