2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 расстояние межу точками
Сообщение12.12.2009, 16:17 


12/12/09
2
Доброго времени суток!
Вопросик думаю не тяжелый но все-же.
Есть массив mass1 из точек с координатами x1,y1...x10,y10...xn,yn
Есть точка с координатами xa,ya.
Вопрос ....по каким мормулам найти в mass1 ближайшую точку к xa,ya.
Спасибо. поиск юзал но не нашел ничего на форуме.
Если есть возможность ткните носом.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 16:20 
Заслуженный участник
Аватара пользователя


03/06/09
1497
Есть в любом учебнике по аналитической геометрии. И в школьной геометрии тоже.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 16:49 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Похоже, что тему надо в программирование переносить.

-- Сб дек 12, 2009 19:51:54 --

Какая Вас формула, в самом деле, интересует? Расстояние между точками $(x_a,y_a)$ и $(x_i,y_i)$? Оно равно $\sqrt{(x_a-x_i)^2 + (y_a-y_i)^2}$.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 17:00 


21/06/06
1721
Следует ли это понимать, что данная задача просто эквивалентна задаче, найти наименьшее число из n данных чисел?

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 17:05 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Мне просто больше ничего в голову не приходит. Потому и предположил, что это задача по программированию; дескать, дан массив из $n$ точек и ещё одна точка, надо найти точку массива, ближайшую к данной.

(Оффтоп)

Ник malefik намекает на силы зла. Может, не стоит ему помогать, дабы не приближать торжество дьявола? :mrgreen:

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 17:22 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
 !  Профессор Снэйп, предупреждение за комментирование ников!

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 17:49 


12/12/09
2
думаю лучше в программирование

Профессор Снэйп в сообщении #270664 писал(а):
Мне просто больше ничего в голову не приходит. Потому и предположил, что это задача по программированию; дескать, дан массив из $n$ точек и ещё одна точка, надо найти точку массива, ближайшую к данной.

(Оффтоп)

Ник malefik намекает на силы зла. Может, не стоит ему помогать, дабы не приближать торжество дьявола? :mrgreen:



прав

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 18:43 


21/06/06
1721
Наверное единственное, что Вам тут поможет (если это можно так назвать), так это только использование равносильности двух неравенств

$(x_1-a)^2+(y_1-b)^2\geq{(x_2-a)^2+(y_2-b)^2}$
и
$(x_1-x_2)(x_1+x_2-2a)+(y_1-y_2)(y_1+y_2-2b)\geq{0}$

Умножений меньше. Хотя, стоит ли оно того, ведь не миллион же точек у Вас.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 19:36 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Точек, по условию задачи, $n$ штук :) Как в анекдоте про военных: "Пусть у противника $n$ танков... нет, $n$ слишком мало, пусть будет $m$ танков!" :)

Если уж оптимизировать алгоритм, предполагая, что количество точек будет очень велико... Можно, в первом приближении, искать минимальное расстояние в метрике $|x_a-x_i| + |y_a-y_i|$, там умножать ничего не надо, а с обычной евклидовой метрикой она очень хорошо связана. Но это уже действительно лучше обсуждать в программировании.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 20:15 
Заслуженный участник


11/05/08
32166
Профессор Снэйп в сообщении #270727 писал(а):
предполагая, что количество точек будет очень велико...

(Оффтоп)

вот тогда уж точно надо $N$, а не $n$


Профессор Снэйп в сообщении #270727 писал(а):
искать минимальное расстояние в метрике $|x_a-x_i| + |y_a-y_i|$, там умножать ничего не надо, а с обычной евклидовой метрикой она очень хорошо связана.

Это как это-как это связана?...

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 20:30 
Заслуженный участник
Аватара пользователя


06/10/08
6422
ewert в сообщении #270736 писал(а):
Это как это-как это связана?...

Ну как же. Любые две нормы в $\mathbb{R}^n$ эквивалентны, так что вот. Только в данной задаче это сильно не помогает.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 20:33 
Заслуженный участник


11/05/08
32166
Xaositect в сообщении #270739 писал(а):
Ну как же. Любые две нормы в $\mathbb{R}^n$ эквивалентны, так что вот. Только в данной задаче это сильно не помогает.

Зато сильно вредит: эквивалентность норм никак с этой задачей не связана.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение12.12.2009, 23:52 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
ewert в сообщении #270740 писал(а):
Зато сильно вредит: эквивалентность норм никак с этой задачей не связана.

Может навредить, а может и помочь. В типичном случае скорее помогает, чем вредит.

Пусть $\| \cdot \|_1$ --- норма с модулями, $\| \cdot \|_2$ --- евклидова норма. Справедливо $\| x \|_1 \leqslant \| x \|_2 \leqslant 2 \| x \|_1$. Теперь если евклидово расстояние от $(x_a,y_a)$ до различных точек массива различается больше, чем в $2$ раза, то можно смело использовать норму $\| \cdot \|_1$ и будет найдена нужная точка. А если разброс расстояний просто велик, то можно сначала из огромного массива точек выделить малую часть таких точек, что расстояние от выбранной до каждой из них в норме $\| \cdot \|_1$ не более чем в $2$ раза больше чем расстояние от выбранной до минимальной в той же норме, а потом этой части уже смотреть минимум по евклидовой норме.

Просто норму $\| \cdot \|_1$ считать проще, чем норму $\| \cdot \|_2$, там не надо ничего перемножать. Если для гигантского числа случаев нужно будет считать $\| \cdot \|_1$, а затем лишь для малого числа этих случаев $\| \cdot \|_2$, то получится быстрее, чем для всех без исключения случаев считать $\| \cdot \|_2$.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение13.12.2009, 00:00 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Вообще-то далеко не факт, что быстрее. Вычисление модуля требует условного перехода (сменить знак, если отрицательно); на современных процессорах это будет работать медленнее, чем умножения без каких-либо условий.

 Профиль  
                  
 
 Re: расстояние межу точками
Сообщение13.12.2009, 00:05 
Заслуженный участник
Аватара пользователя


06/10/08
6422
2Профессор Снэйп
Да ну, умножение не настолько медленнее сложения. Данные читать все равно дольше будет.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group