1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| 1qsd |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: 0 |
Помогите решить вот эту несложную задачу. Преподаватель говорит, что решать её нужно как то через матрицы.
Удав расположен в виде нескольких линий, из которых каждая следущая перпендикулярна предыдущей. Направление каждой линии и её протяженность задаются буквами "L" , "R" и числом. Например 25L15R5 ("25" - длина линии = 25, "L" - поворачивает на 90 градусов влево, "15" - длина линии = 15 , "R" - поворачивает на 90 градусов вправо , "5" - длина линии = 5). Определить, пересечет ли он себя. Сообщение отредактировано: 1qsd - |
![]() ![]() |
| Lapp |
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
По ходу дела, посмотрев на все сложности, возникшие в геометрическом методе (надеюсь, они все все же преодолены
Получилось действительно намного проще, на ее написание ушло замееееетно меньше времени. Я использую симметричный байтовый массив, который, если удовлетворять ограничениям ТР, не должен превышать 64К. Это значит, если округлить, что поле выходит примерно от -100 до 100 по каждой координате.. Разумеется, ситуация намного улучшится в FPC (например на 1 ГБ памяти можно сделать поле от -15000 до +15000), но все равно вряд ли кто станет спорить, что геометрическое решение лучше в смысле эффективности (хотя, при большом количестве поворотов и небольшом диаметре они все же могут конкурировать).. Правда, остается еще вариант со сжатием матрицы на лету - но это уже извращение.. Хотя, разве не извращение уже и то, что я потратил несколько часов на эту задачу? Надеюсь, не совсем зря.. {Search for Boa crossings, matrix method}
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1qsd Удав 26.03.2007 18:59
мисс_граффити С матрицами...
Единственная идея: берем матрицу из… 26.03.2007 21:04
1qsd 1) можно и не через матрицы
2) можно пользоваться … 26.03.2007 22:03
мисс_граффити Идея такая: разбиваем удавчика на отрезки, которые… 26.03.2007 23:15
1qsd давайте по порядку
1) как записывать в массив: сам… 26.03.2007 23:51
мисс_граффити 1) мне кажется, тут подойдет запись с тремя полями… 27.03.2007 0:09
1qsd А вы можете код с клеточками (во втором сообщении … 27.03.2007 0:37
мисс_граффити а сам не хочешь попробовать хотя бы? 27.03.2007 1:24
Michael_Rybak И уточни еще, что если он не пересекает себя, но к… 27.03.2007 2:15
Lapp Я тоже не придумал, как тут использовать матрицы, … 27.03.2007 11:43
Lapp
Идея такая: разбиваем удавчика на отрезки, которы… 27.03.2007 15:52
Michael_Rybak
В таком случае горизонтальные нельзя проверять т… 27.03.2007 17:43
Malice
В таком случае горизонтальные нельзя проверять то… 27.03.2007 18:54
Michael_Rybak 10L10L10R10R10R30 27.03.2007 21:02
Гость О чем я и говорил. Пересекает еще и смежные отрезк… 27.03.2007 22:23
Malice Эт я был.. Я же имел ввиду случай типа:
27.03.2007 22:29
Michael_Rybak Он не пересекает смежные отрезки. Я ведь специальн… 28.03.2007 1:06
Malice Гы :) В таком случает надо определьтся - включает … 28.03.2007 1:35
Michael_Rybak У меня не получался нигде квадрат 11х11. Получало… 28.03.2007 2:53
Lapp Критику принял.
Думаю.. 28.03.2007 4:06
Lapp Коллеги, я не вполне все же вас понял..
Michael_Ry… 28.03.2007 5:30
Lapp 2 Malice:
Случай с подходом к хвосту сзади лечится… 28.03.2007 6:23
Lapp
Неужели Michael_Rybak все же прав (сам того не зн… 28.03.2007 9:27
Lapp 2 Lapp:
(а с кем еще и поговорить-то ночью.. :))
В… 28.03.2007 10:26
1qsd Если удав выглядит как спираль, например так 1R2R3… 28.03.2007 12:33
Lapp
например так 1R2R3R4R5R6 ... программма не работа… 28.03.2007 14:19
Malice Теперь я думаю, как говорится, тема раскрыта :) Я … 28.03.2007 22:18
Michael_Rybak Я считаю, что нужно строго определить самопересече… 28.03.2007 22:23
Lapp Мужики, не драматизируйте ситуацию. Не забывайте … 29.03.2007 5:02![]() ![]() |
|
Текстовая версия | 5.11.2025 22:17 |