Size: a a a

2021 April 21

CD

Constantine Drozdov in pro.algorithms
int l = getSize(L), r = getSize(R), rang = rand() % (l + r);
if (rang > r)

вот так корень определяется в мердже
источник

NK

Nikolai Karpov in pro.algorithms
а почему она должна ?
источник

CD

Constantine Drozdov in pro.algorithms
ну мне непонятна логика рассуждений - корень равновероятен, хорошо, но дерево не равновероятно ни в каком смысле, потому что split порождает не равновероятные деревья
источник

NK

Nikolai Karpov in pro.algorithms
ну тоесть ведь у тебя распределение на деревьях тогда такое же как если бы строил случайное дерево на нужных вершинах
источник

CD

Constantine Drozdov in pro.algorithms
в том-то и дело, что после split вроде бы это неверно
источник

CD

Constantine Drozdov in pro.algorithms
а значит неверно и для самих аргументов merge
источник

CD

Constantine Drozdov in pro.algorithms
смотри, построим дерево из 100к элементов, у него высота 20, высплитаем 20 элементов подряд, неужели они образовали равновероятное дерево?
источник

NK

Nikolai Karpov in pro.algorithms
окей, я понимаю в чем проблема
источник

CD

Constantine Drozdov in pro.algorithms
возможно, что я туплю и ответ просто "да"
источник

NK

Nikolai Karpov in pro.algorithms
как я понимаю все доказательство строится не на том что каждое дерево равномерное
источник

NK

Nikolai Karpov in pro.algorithms
если смотреть на одно конкретное дерево то у него распределение равномерное
источник

CD

Constantine Drozdov in pro.algorithms
ну там равновероятное дерево в смысле выбора случайного корня
источник

NK

Nikolai Karpov in pro.algorithms
ну да
источник

NK

Nikolai Karpov in pro.algorithms
короче если у тебя есть алгоритм который приорететы ставит в начале
источник

NK

Nikolai Karpov in pro.algorithms
то понятно что каждое дерево которое появляется в работе алгоритма равномерно распределено
источник

NK

Nikolai Karpov in pro.algorithms
(тут надо предполагать что запросы не зависят от структуры дерева)
источник

NK

Nikolai Karpov in pro.algorithms
а такой процесс построения дерева более менее эквивалентен растановке приоритетов
источник

DP

Defragmented Panda in pro.algorithms
в тему про вырождение структур данных - какие вы бы предложили структуры которые устойчивы к этому даже после многих обновлений?
источник

NK

Nikolai Karpov in pro.algorithms
ну тоесть ответ не выродится в моем понимании надо только аккуратно делать coupling
источник

CD

Constantine Drozdov in pro.algorithms
хм... то есть split на самом деле породит правильно распределенное дерево?
источник