Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Как решать подобные задачи?

09.01.24 19:08
Re: Как решать подобные задачи?
 
в ответ MrSanders 09.01.24 14:02, Последний раз изменено 09.01.24 19:11 (Бесконечный цикл)

Не совсем так. Вернее совсем не так. Тут надо искать точку в пространстве траекторий, где траектория имеет определенное начало, определенный конец, и минимальную длину. Для этого

1) кодируем как-то все точки на графе. Одно состояние фишек на досек - одно состоняие. Всего N узлов графа. Если N=10! то траекторий будет дофигища.

2) задаем сам граф в виде множетсва пар e=(исходное состоняие ∈ N, конечное состоняие ∈ N) - каждая такая пара (стрелка графа) соответствует одной из 4 операций. Можно например явно определить таблицу из 2 колонок с 4*N строк. Но в зависимости от алгоритма (или памяти мало) можно и функцию определить. С 4 стрелками из каждой точки число траекторий будет уже существенно меньше чем дофигища. Но все равно много.

3) Применяем любимый алгоритм поиска кратчайшего пути на графе. Я помню только алгоритм Дейкстры но их существует туева хуча на все случаи жизни. В качестве параметров задаем начальное состоняние и желаемое конечное.

 

Перейти на