![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Mitya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Массив KOORD[1..2,1..n] представляет собой координаты N точек на плоскости: 1-я строка - абсциссы, 2-я строка - ординаты. Найти номера двух точек, расстояние между которыми максимально.
X 1 3 4 2 4 Y 2 3 5 4 1 В данном случае N=5 Всем огромное спасибо! |
|||
|
||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
Алгоритм тупой (O(N^2)) или умный (O(NlogN)) нужен?
|
|||
|
||||
| Mitya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
||||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| FireSnake |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 15.9.2006 Где: Украина, Донецк Репутация: нет Всего: 1 |
Эт ж что за умный сложностью NlogN? Поделиси соображениями.
Это сообщение отредактировал(а) FireSnake - 9.3.2007, 22:45 |
|||
|
||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
RTFM(кормен).
А если честно - я его сам не знаю... Но в кормене в разделе "Вычислительная геометрия" он точно есть. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 7 Всего: 18 |
Для нахождения пары с максимальным расстоянием за NLogN можно построить выпуклую оболочку (Convex Hull, есть метод с асимптотикой O(Nh), где h - число точек в оболочке, на практике методы обычно близки по скорости, если распределение точек не специально хитрое), наиболее удаленные точки будут ей принадлежать
Кроме того, есть методы с делением облака точек на клетки. Если клеток достаточно много, то достаточно проверять расстояния до небольшого количества дальних клеток |
|||
|
||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
А если все точки входят в выпуклую оболочку? Если я правильно понял - тогда всё равно квадрат выйдет... В кормене алгоритм типа "разделяй и властвуй"... надо будет разобратся... |
|||
|
||||
| FireSnake |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 15.9.2006 Где: Украина, Донецк Репутация: нет Всего: 1 |
Странник прав, оболочка строится за квадрат.
Кормен это точно FM:) Это сообщение отредактировал(а) FireSnake - 10.3.2007, 21:42 |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 7 Всего: 18 |
Strannik,
>А если все точки входят в выпуклую оболочку? Если я правильно понял - тогда всё равно квадрат выйдет... Выпуклая оболочка строится за O(NLogN), например, по Грэхему. Асимптотика в его методе не зависит от количества точек в оболочке, а обусловлена сортировкой Расстояние между наиболее удаленными точками на ней находится за линейное время (Rotating Calipers) FireSnake, >оболочка строится за квадрат. Можно и за экспоненциальное время, но незачем, если есть методы с гарантированным NLogN |
|||
|
||||
| Strannik |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: 1 Всего: 2 |
Это так, я не то имел ввиду...
Об этом по подробнее можно? Добавлено @ 14:48
Я имел ввиду поиск двух наиболее удалённых... |
||||||
|
|||||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 7 Всего: 18 |
>Об этом по подробнее можно?
гуглом много находится. Вот одна из первых ссылок http://cgm.cs.mcgill.ca/~orm/rotcal.frame.html |
|||
|
||||
| Mitya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Огромное спасибо всем, кто помог и помогает людям!!! Низкий всем Вам поклон!
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |