@ru_python

Страница 724 из 9768
Сергей
12.05.2016
21:45:03
могу, но это не оверхед будет? мне кажется мне нужен тупл туплов или типа того

Andrey
12.05.2016
21:45:46
могу, но это не оверхед будет? мне кажется мне нужен тупл туплов или типа того
Да, это оверзед. Можешь в данном случае написать свой велосипед - btree.

Хотz думаю, что либа на питоне есть для этого.

Aldar
12.05.2016
21:46:20
блин, что ты хочешь делать с этими объектами?

Google
Сергей
12.05.2016
21:46:29
операции вроде поиска соседей я могу считать самостоятельно, и тянуть по результирующим ключам

Сергей
12.05.2016
21:46:55
хорошо, спасибо

Aldar
12.05.2016
21:47:01
лол

зачем ему btree

Andrey
12.05.2016
21:47:30
зачем ему btree
Твои предложения?

Aldar
12.05.2016
21:48:19
btree во первых тяжело реализовывать, во вторых оно хорошо работает с жеским диском

Andrey
12.05.2016
21:48:40
Aldar
12.05.2016
21:48:42
и по какому ключу ты собрался строить дерево?

и зачем?

Сергей
12.05.2016
21:48:59
ну вот пример операции - есть несколько экземпляров с разными координатами и один, к которому нужно найти ближайший. Считаю, достаю. Всё.

Google
Andrey
12.05.2016
21:50:31
и зачем?
Предложения какие?

Aldar
12.05.2016
21:50:43
то есть ключ это тупл?

Andrey
12.05.2016
21:50:48
Aldar
12.05.2016
21:50:59
и что оно будет искать там?

Andrey
12.05.2016
21:51:18
и что оно будет искать там?
Ты понял свой вопрос? Я - нет.

Aldar
12.05.2016
21:51:24
что угодно, но не ближайшего соседа

Andrey
12.05.2016
21:51:54
что угодно, но не ближайшего соседа
Ок, структура, в которой можно быстро найти соседа в n-мерном пространстве? Давай.

Aldar
12.05.2016
21:52:34
quadtree

Сергей
12.05.2016
21:52:37
objects[15][154] - O(1) же достанет?

Aldar
12.05.2016
21:52:51
за логарифм ищет

Сергей
12.05.2016
21:52:52
только если ключи целые

Aldar
12.05.2016
21:53:16
btree тут вообще ни к селу ни к городу

аа гады кто забанил в С конфе

Andrey
12.05.2016
21:56:28
И правильно сделали.

Aldar
12.05.2016
21:56:39
я ж пошутить хотел

Andrey
12.05.2016
21:56:57
я ж пошутить хотел
Поверь. Хаскель заебал уже всех.

Aldar
12.05.2016
22:00:33
это уже обобщение

Andrey
12.05.2016
22:00:38
Ну вот, насоветовали. Выбирай то, что нравтся.

Aldar
12.05.2016
22:00:44
основная идея - рекурсивное разбиение пространства

Google
Andrey
12.05.2016
22:01:14
основная идея - рекурсивное разбиение пространства
Только вопрос - для представления точек оверхеда по памяти не будет?

Т.е. он будет. Не много ли это на мильён точек?

Aldar
12.05.2016
22:01:51
у любого дерева оверхед по памяти

тем более что можно задать определённую глубину

Andrey
12.05.2016
22:02:34
тем более что можно задать определённую глубину
Т.е. ты предлагаешь терять точность?

Andrei
12.05.2016
22:02:39
зависит от того чего хотят добиться.

r*-tree оченьхорошо подходит

из всех спэтиал три его чаще всего используют для геоданных.

и неслучайно.

для статических данных идеальный вариант

Andrey
12.05.2016
22:03:36
https://pypi.python.org/pypi/Rtree/

Andrei
12.05.2016
22:03:37
очень хорошо балансируется

Aldar
12.05.2016
22:03:45
для многомерных данных да

Andrey
12.05.2016
22:03:50
Нe вот, если лень разбираться, а хочется использовать.

Aldar
12.05.2016
22:03:55
для двумерных вполне норм quadtree

Andrei
12.05.2016
22:04:28
Нет, как раз таки для двухмерных.

И для максимального перфоманса именно r*

оно дороже строится, но работает на запросы быстрее.

Andrey
12.05.2016
22:05:41
для двумерных вполне норм quadtree
Вот смотри, у нас есть квадрат 1x1. Если добавить в quadtree точку 0.54 0.54, то какую структуру дерево будет иметь? А то я не сумел понять структуру quadtree.

Aldar
12.05.2016
22:05:55
quadtree примитивное вообще

Google
Andrey
12.05.2016
22:05:57
Я правильно понимаю, что там вся информация хранится в листах дерева?

Aldar
12.05.2016
22:06:03
берет квадрат и делит на 4 квадрата

Andrei
12.05.2016
22:06:09
квадтри просто четверит пространство.

Aldar
12.05.2016
22:06:14
и так рекурсивно

Andrei
12.05.2016
22:06:28
если в вершине слишком много точек она бьется на 4

Aldar
12.05.2016
22:06:28
можно задать глубину рекурсии, и тем самым точность поиска

Andrey
12.05.2016
22:07:17
можно задать глубину рекурсии, и тем самым точность поиска
Блин, здесь что-то мне кажется уж очень большой оверхед по памяти.

Andrei
12.05.2016
22:07:35
нопе

Admin
ERROR: S client not available

Andrei
12.05.2016
22:07:47
На самом деле обычный деревянный

в худшем случае nlogn

Как раз таки перформанс похуже.

Aldar
12.05.2016
22:11:23
проще взять готовую имплементацию какой либо структуры данных и заюзать

самому довольно сложно писать

деревья

Andrey
12.05.2016
22:12:09
проще взять готовую имплементацию какой либо структуры данных и заюзать
А почему на btree ты написал, что там очень сильно используется диск?

Aldar
12.05.2016
22:12:51
потому что btree читает блоками, обычно этот блок подгоняют по размер блока жесткого диска в базах данных

а в памяти юзают что нибудь попроще, типа red-black tree

Andrei
12.05.2016
22:14:14
btree вообще для базданных юзают

Google
Aldar
12.05.2016
22:14:20
не, твой косяк в том, что бинарное дерево с ключём из тупла (x,y) никак не помогает искать ближайшего соседа

по первых нужно определить операцию < для тупла

Andrei
12.05.2016
22:14:42
помогает на самом деле, но по хитрому.

Aldar
12.05.2016
22:15:13
ключ должен иметь операцию <

Andrei
12.05.2016
22:15:17
kd-tree

Aldar
12.05.2016
22:15:25
как определить операцию < для тупла (x,y)?

Andrei
12.05.2016
22:15:29
пространство делится бинарно, по очереди по каждому измерению.

Эм, как угодно.

сначала иксы, потом игреки

Другое дело, что он не отражает сути расстояния.

Andrey
12.05.2016
22:16:15
как определить операцию < для тупла (x,y)?
Так как это в плючах делается, к примеру.

Aldar
12.05.2016
22:16:18
в том то и дело

что ближайшего соседа так не найдешь

parikLS
12.05.2016
22:34:33
если ключ - обе координаты, тогда храни в редисе)

❄☁cybernetic life support system
13.05.2016
04:30:55
Ок

Подумаем

А на макоси есть пиратство?

Alexander
13.05.2016
04:32:14
да)

Страница 724 из 9768