![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.01.2013
Сообщений: 7
|
![]()
Здравствуйте.
Задачка такая: Есть плоскость размером 30(абсцисс) на 15 (ординат). Пользователь должен ввести координаты точек на этой плоскости. Задача программы найти путь между начальной точкой (видимо это будет точка с самым малым иксом) до конечной точки (с самым большим значением икса). Как объяснил препод я должен представить что это "деталь" и мы "сверлим" линию от начала детали(начальной точки) то конца(конечной точки).При этом вычислив оптимальный путь(минимальны от первой до последней точки). Написать на любом языке программирования =) Заранее спасибо =) Последний раз редактировалось Shpuntik=); 09.01.2013 в 15:03. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Если же мы разрезаем деталь, то... разрез должен идти с постоянным неубыванием x? разрез не должен иметь самопересечений? ещё какое-то условие? |
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 09.01.2013
Сообщений: 7
|
![]()
Задача коммивояжёра для графов,которые уже имеют весы и т.п. атрибуты.
Деталь не то что бы "разрезается",в нем делается кривой вырез и хорошо замечено что от точки к точке Х должен возростать.Вы правы,самопересечений не должно быть. З.Ы. Спасибо,что помогаете. |
![]() |
![]() |
![]() |
#4 | |||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Цитата:
Цитата:
А вообще, можете привести пример входных данных и ожидаемых выходных? |
|||
![]() |
![]() |
![]() |
#5 | |
Регистрация: 09.01.2013
Сообщений: 7
|
![]() Цитата:
Вводим 6 точек A(10.6) B(1.7) C(23.2) D(18.10) E(26.4) F(14.4) в конечном итоге программа доодна выбрать точку B - началом. Точку E - концом Путь рассчитать по простой мат.формуле d = \/(х2— х1)^2 + (y2— y1)^2 и получить кратчайший путь : B-A-F-D-E (C-упускаем из результатов,т.к. самая ближеяя к D - E) ![]() Как-то так |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Тогда совсем непонятно. То есть, нужно пройти через подмножество точек? Что делать, если расстояния до пары точек в какой-то момент одинаковы? Вообще, что мешает тогда вести линию напрямую от "старта" до "финиша" - она явно будет кратчайшей? Нормально ли, что при подобном анализе "ближнего прицела" мы можем получить не самый короткий путь? (Если точки - (0,0), (8,8), (10,0), (10,10), (19,0) и (20,20), то мы упустим точки (8,8) и (10,10) и пройдём "углом", по длинному пути)
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 09.01.2013
Сообщений: 7
|
![]()
Честно говоря,меня устроит программа,которая будет просто искать путь до ближайшей точки,но с бОльшим значением икса.Главное что бы получилась кривая от точки ближайшей к началу осей(х.у) до конечной,самой далней точки от начала отсчета.
|
![]() |
![]() |
![]() |
#8 | ||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
B(1.7) A(10.6) F(14.4) D(18.10) C(23.2) E(26.4) Цитата:
DE =(26-18)^2 + (4-10)^2 =8^2 + 6^2 =64+36 =100 DC =(23-18)^2 + (2-10)^2 =5^2 + 8^2 =25+64 = 89 кратчайшим как уже заметили будем B - E следующим пожалуй B - F - E (или В - А - E ?) чем больше точек использовано, тем длинее путь. (точнее тем он не короче). Цитата:
добавляем "расстояния" до всех последующих точек анализируем и выбираем нужную нам следующую. Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 10.01.2013 в 09:25. |
||||
![]() |
![]() |
![]() |
#9 |
Регистрация: 09.01.2013
Сообщений: 7
|
![]()
Все было бы прекрасно,знал бы хоть какой-то язык программирования=(
Я бы тут не сидел,алгоритм я и сам понимаю и составить могу.Написать программу - нет. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск кратчайшего пути в графе | zokwild | Помощь студентам | 0 | 30.11.2012 18:22 |
Поиск кратчайшего пути в графе | BaceK | Помощь студентам | 0 | 18.12.2011 11:49 |
Даны координаты n точек на плоскости. Найти номера двух точек, расстояние между которыми наибольшее. | Viwwna | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 19.11.2011 06:33 |
поиск кратчайшего пути | LENA_M | Общие вопросы C/C++ | 0 | 29.05.2010 22:15 |