Алгоритм обхода шахматной доски
От: Аноним  
Дата: 11.07.08 17:43
Оценка:
Здравствуйте. Может быть кто-нибудь поможет в решении следующей задачи:

Имеется шахматная доска размером 5x5 и одна фишка в левом верхнем углу. Требуется определить количество всевозможных вариантов ее перемещения в правый нижний (противоположный) угол.

Как я понимаю, решение сводится к составлению и обходу дерева вариантов, но я пока не представляю, как его составить. Если сможете, подскажите пожалуйста алгоритм.
Re: Алгоритм обхода шахматной доски
От: subdmitry Россия  
Дата: 11.07.08 19:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как я понимаю, решение сводится к составлению и обходу дерева вариантов, но я пока не представляю, как его составить.


И никто не представляет, пока вы не опишете, по каким правилам перемещается фишка.
And if you listen very hard the alg will come to you at last.
Re[2]: Алгоритм обхода шахматной доски
От: SLAER  
Дата: 12.07.08 04:10
Оценка:
Фишка может перемещаться на 1 клетку в любом направлении (по вертикали, по горизонтали и по диагонали)
Re[3]: Алгоритм обхода шахматной доски
От: Vintik_69 Швейцария  
Дата: 12.07.08 05:52
Оценка:
Здравствуйте, SLAER, Вы писали:

SLA>Фишка может перемещаться на 1 клетку в любом направлении (по вертикали, по горизонтали и по диагонали)


Тогда надо наложить ограничения на способы перемещения в правый нижний угол — потому что иначе их будет бесконечно много.
Re[4]: Алгоритм обхода шахматной доски
От: SLAER  
Дата: 12.07.08 05:55
Оценка:
но в этом случае не будут перебраны все возможные варианты, а задача заключается именно в этом.
Re[5]: Алгоритм обхода шахматной доски
От: Аноним  
Дата: 12.07.08 06:37
Оценка:
Здравствуйте, SLAER, Вы писали:

SLA>но в этом случае не будут перебраны все возможные варианты, а задача заключается именно в этом.


Так всех возможных вариантов бесконечное число, наложи хотя бы ограничение на длину пути.
Re[6]: Алгоритм обхода шахматной доски
От: SLAER  
Дата: 12.07.08 07:08
Оценка:
Ну например я хочу реализовать просмотр на 10 ходов вперед. Только вот не знаю как реализовать рекурсивную процедуру просмотра. Может быть Вы что нибудь подскажите?
Re: Алгоритм обхода шахматной доски
От: yudinetz Чехия  
Дата: 12.07.08 10:13
Оценка:
видимо, нужно ограничение что, на одном поле нельзя побывать больше одного раза. правильно я понимаю?
ну, делаешь тупой перебор и все
Re[2]: Алгоритм обхода шахматной доски
От: SLAER  
Дата: 12.07.08 11:08
Оценка:
Дак сложность то и заключается в том, чтобы сделать этот "тупой" перебор. Я не знаю, как реализовать этот перебор.
Re[3]: Алгоритм обхода шахматной доски
От: Passer  
Дата: 14.07.08 04:40
Оценка:
Здравствуйте, SLAER, Вы писали:

SLA>Дак сложность то и заключается в том, чтобы сделать этот "тупой" перебор. Я не знаю, как реализовать этот перебор.


прочитать про написание рекурсивных программ.
написать рекурсивную программу.которая начинается с запуска рекурсивной процедуры с параметроами координат x=0,y=0 и пустой историей пути которая пройдена (). в программе нужна глобальная переменная соличества.
процедура делает следуюшее.
1) проверить координаты на валидность. в случае не правильных координат покинуть процедуру.
2) проверить координаты на наличие данных координат в истории. в случае повторение координат покинуть процедуру.
2) проверить координаты на конечные координаты. если ты на конечных координатах, прибавляеш 1 к глобальной переменной количества.
3) процедура добавляет в историю пути свои координаты.
4) процедура вызывает себя 8 раз с кординатами (x+1,y),(x+1,y+1),(x,y+1),(x-1,y+1),(x-1,y),(x-1,y-1),(x,y-1),(x+1,y-1) и переменной истории пути.
5) процедура заканчивается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.