Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2011, 09:48   #1
Zliw1x
 
Регистрация: 13.02.2011
Сообщений: 4
По умолчанию Предлагаю вашему вниманию интересную задачку :)

Вы в героев играли?) Так вот, здесь что-то подобное...
Дано поле (вообще поле задаёт пользователь, но мы возьмём поле 5x5 для примера) В левом верхнем углу находиться замок инферно, в правом нижнем - замок людей. Необходимо просичтать количество возможных ходов из замка инферно до замка людей При этом,
1) Некоторые клетки могут быть препятствиями, т.е там уже ходить нельзя, их обходить надо. Ну например в поле 5х5 клетка 3х3 являеться препятствием, значит её обходить надо. А вот если поля 1х2 2х2 2х1 заняты, то кол-во ходов = 0
2) Перемещатся можно ТОЛЬКО вправо, вниз, либо по диагонали вправо-вниз.
Ну вот и всё, жду ваших предложений

Последний раз редактировалось Zliw1x; 13.02.2011 в 11:56.
Zliw1x вне форума Ответить с цитированием
Старый 13.02.2011, 11:41   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Zliw1x Посмотреть сообщение
Вы в героев играли?)
Нет.

Цитата:
Сообщение от Zliw1x Посмотреть сообщение
В левом верхнем углу находиться замок инферно, в правом нижнем - замок людей. Необходимо просичтать количество возможных ходов из замка инферно до замка людей
...
2) Перемещатся можно ТОЛЬКО влево, вниз, либо по диагонали влево-вниз.
При таких условиях задача вообще не имеет решения.

Цитата:
Сообщение от Zliw1x Посмотреть сообщение
жду ваших предложений
Написать правильно условие задачи.
Vago вне форума Ответить с цитированием
Старый 13.02.2011, 11:56   #3
Zliw1x
 
Регистрация: 13.02.2011
Сообщений: 4
По умолчанию

to Vago
Исправил
Zliw1x вне форума Ответить с цитированием
Старый 13.02.2011, 12:18   #4
Zliw1x
 
Регистрация: 13.02.2011
Сообщений: 4
По умолчанию

Ну например лично у меня есть некоторые мысли по этой задаче.
1) Нужно использовать массив типа булеан для обозначения, есть ли в конкретном поле препятствие.
2) Искать нужно методом поиска в ширину.http://ru.wikipedia.org/wiki/Поиск_в_ширину
И да, как бонус, нужно найти также самый короткий путь. Для этого используем http://ru.wikipedia.org/wiki/Алгоритм_Дейкстры

Последний раз редактировалось Zliw1x; 13.02.2011 в 12:25.
Zliw1x вне форума Ответить с цитированием
Старый 13.02.2011, 12:36   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Спасибо. Классическая задача этого типа - об обходе шахматной доски конём. На таких обычно учат[ся] не бояться рекурсии. Хотите сами повозиться - задайте в поиске "рекурсивный алгоритм обхода шахматной доски конём". А эта задачка - она даже попроще будет...
Vago вне форума Ответить с цитированием
Старый 13.02.2011, 12:58   #6
Zliw1x
 
Регистрация: 13.02.2011
Сообщений: 4
По умолчанию

Да-да, нам препод что-то намекал про рекурсии насчёт этой задачи. Спасибо, будем искать.
Zliw1x вне форума Ответить с цитированием
Старый 13.02.2011, 18:50   #7
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Код:
n(x, y) = n(x - 1, y) + n(x, y - 1) + n(x - 1, y - 1)
Или рекурсивной функцией, или слева направо, сверху вниз в цикле. Второе быстрее.
Цитата:
Сообщение от Zliw1x Посмотреть сообщение
2) Искать нужно методом поиска в ширину.http://ru.wikipedia.org/wiki/Поиск_в_ширину
И да, как бонус, нужно найти также самый короткий путь. Для этого используем http://ru.wikipedia.org/wiki/Алгоритм_Дейкстры
Поиск в ширину находит кратчайший путь на невзвешенном графе, алгоритм Дейкстры - на взвешенном. Так что алгоритм Дейкстры тут не нужен.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу предложить вашему вниманию аналитическую задачу Dipost Помощь студентам 3 15.11.2010 09:42
нужно написать интересную задачку) Wasek Помощь студентам 11 06.11.2010 19:40
Кто решит интересную задачку? Alexxx92 Паскаль, Turbo Pascal, PascalABC.NET 3 05.06.2009 17:03
Помогите решить интересную математическую задачку на Паскале. skl1f Помощь студентам 9 04.12.2008 01:10