![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
alan |
![]()
Сообщение
#1
|
![]() zzz... ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Braingames Сообщений: 13 545 Регистрация: 23.2.2009 Из: Симферополь Пользователь №: 13 114 ![]() |
Представьте, что у вас есть множество А из M точек на плоскости (x_i,y_i). Есть информация о них - по две координаты.
Потом нам дают еще одну точку - B(b_x,b_y). Нужно найти: а) Точку из множества А ближайшую к B. б) N ближайших точек к B. в) Все точки на растоянии меньше чем R от B Задача - оптимально организовать информацию о точках А. Оптимальность определяется средней скоростью выполнения а), б) или в). |
![]() ![]() |
NLIzer |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Braingames Сообщений: 353 Регистрация: 7.3.2009 Из: Москва Пользователь №: 13 325 ![]() |
Представьте, что у вас есть множество А из M точек на плоскости (x_i,y_i). Есть информация о них - по две координаты. Потом нам дают еще одну точку - B(b_x,b_y). Нужно найти: а) Точку из множества А ближайшую к B. б) N ближайших точек к B. в) Все точки на растоянии меньше чем R от B Задача - оптимально организовать информацию о точках А. Оптимальность определяется средней скоростью выполнения а), б) или в). Первое что приходит на ум, это представление областей, в которых находятся точки, в виде квадрантного дерева. Для точки B определяется квадрант относительно других квадрантов в дереве и далее вычисляются квадранты ближайших точек обходом по дереву. В квадранте ближайших точек вычисляется R для каждой точки в квадранте, ну и т.д. |
alan |
![]()
Сообщение
#3
|
![]() zzz... ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Braingames Сообщений: 13 545 Регистрация: 23.2.2009 Из: Симферополь Пользователь №: 13 114 ![]() |
Первое что приходит на ум, это представление областей, в которых находятся точки, в виде квадрантного дерева. Для точки B определяется квадрант относительно других квадрантов в дереве и далее вычисляются квадранты ближайших точек обходом по дереву. В квадранте ближайших точек вычисляется R для каждой точки в квадранте, ну и т.д. Давай подробнее, пожалуйста ![]() 1. Что за квадратное дерево? Как его образовывать? 2. Как для В определять квадрант? Что значит определение квадранта Относительно других квадратнов? П.С. А может еще есть и не первое приходящее на ум? ![]() |
NLIzer |
![]()
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Braingames Сообщений: 353 Регистрация: 7.3.2009 Из: Москва Пользователь №: 13 325 ![]() |
Давай подробнее, пожалуйста ![]() 1. Что за квадратное дерево? Как его образовывать? 2. Как для В определять квадрант? Что значит определение квадранта Относительно других квадратнов? П.С. А может еще есть и не первое приходящее на ум? ![]() Все точки А описываются одним квадратом. Этот квадрат делится на 4 равные квадратные части – квадранты, каждый из квадрантов опять делится на 4 части и т.д. Таким образом строится квадрантное дерево, все родительские узлы этого дерева – квадранты, листья дерева – точки или списки точек входящие в родительский квадрант. Для каждого узла дерева вычисляется количество точек содержащиеся в квадранте. Ну и далее все операции выполняются сначала для квадрантов в которых есть точки, а потом для точек в них. ![]() |
alan |
![]()
Сообщение
#5
|
![]() zzz... ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Braingames Сообщений: 13 545 Регистрация: 23.2.2009 Из: Симферополь Пользователь №: 13 114 ![]() |
Все точки А описываются одним квадратом. Этот квадрат делится на 4 равные квадратные части – квадранты, каждый из квадрантов опять делится на 4 части и т.д. Таким образом строится квадрантное дерево, все родительские узлы этого дерева – квадранты, листья дерева – точки или списки точек входящие в родительский квадрант. Для каждого узла дерева вычисляется количество точек содержащиеся в квадранте. Ну и далее все операции выполняются сначала для квадрантов в которых есть точки, а потом для точек в них. ![]() Ого, даже рисунок ![]() А какой в этом смысл? Почему просто не разбить все на D^2 квадратов? Например, так что бы в каждом было или 0 или 1 точка. |
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 4.7.2025, 18:01 |