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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 18:10   #1
sweex1234
 
Регистрация: 17.02.2011
Сообщений: 3
Печаль Лабиринт Ариадны

Попал в лабиринт, состоящий из одинаковых квадратных комнат, каждая из которых может иметь от 1 до 4 выходов в соседние комнаты, путник долго блуждал по нему, пока не нашел клад. Во время поиска он создал описание своего маршрута, обозначил каждый переход из комнаты в комнату буквами: П1 (север), С (восток), П2 (юг), С (запад). Описать алгоритм, определяющий по заданному записи кратчайший путь назад.
sweex1234 вне форума Ответить с цитированием
Старый 17.02.2011, 18:23   #2
nfb
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 13
По умолчанию

Восток и запад одинаково обозначаются?
nfb вне форума Ответить с цитированием
Старый 17.02.2011, 18:31   #3
sweex1234
 
Регистрация: 17.02.2011
Сообщений: 3
По умолчанию

извините, нет.... запад-z
sweex1234 вне форума Ответить с цитированием
Старый 17.02.2011, 18:37   #4
nfb
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 13
По умолчанию

Ну тогда как описать?

Читать маршрут с конца по порядку. Сначала первая (ну то есть последняя) буква.
Условие: если север, идем на юг, если юг, идем на север, если восток, идем на запад, если запад, идем на восток.
Далее читаем вторую букву, то же условие. Третью и т.д. Вуаля, и вот мы в первой комнате (дома).
nfb вне форума Ответить с цитированием
Старый 17.02.2011, 19:11   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Далее читаем вторую букву, то же условие. Третью и т.д
но
Цитата:
путник долго блуждал по нему,
стало быть возможны петли (проход через одну комнату несколько раз). А стоит задание найти КРАТЧАЙШИЙ путь.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 17.02.2011 в 19:28.
evg_m вне форума Ответить с цитированием
Старый 17.02.2011, 19:42   #6
nfb
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 13
По умолчанию

блин, вот слово кратчайший я пропустила))

значит так:
читаем путь в с начала, определяем две целочисленные переменные X и Y, равные 0, смотрим первую букву:
если север, х ++, если юг: х--, восток: у++, запад: у--
и так для каждой буквы в записанном пути.
после этого знаем х и у. исходя из того что начало пути 0 0, нетрудно вернуться туда.
если х > 0 идем на юг х раз, иначе если х<0 идем на север х раз, иначе стоим на месте;
если у>0 идем на запад у раз, иначе если у<0 идем на восток у раз, иначе стоим на месте


вроде так.
nfb вне форума Ответить с цитированием
Старый 17.02.2011, 22:01   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
если х > 0 идем на юг х раз, иначе если х<0 идем на север х раз,
а если там нет двери в нужном направлении?
Цитата:
каждая из которых может иметь от 1 до 4 выходов в соседние комнаты
Цитата:
иначе стоим на месте
означает пришли в тупик?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.02.2011, 22:47   #8
nfb
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 13
По умолчанию

тогда я просто пойду спать)))))
nfb вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабиринт - тест. Ulex Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 30.09.2010 10:10
Лабиринт GBTA Общие вопросы C/C++ 2 08.07.2010 12:03
Лабиринт Claster Помощь студентам 1 02.03.2009 11:41
Лабиринт)) Whiplash Паскаль, Turbo Pascal, PascalABC.NET 2 04.12.2008 17:12