Алгоритмическая задача из проекта
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Задача для иллюстрации.
Рассмотрим простой пример из 5 последоватльностей:
А. (1, 3, 5, 20, 35, 123)
B. (1, 3, 5, 20, 39, 123, 277, 302, 388, 500 )
C. (1, 3, 7, 23, 35, 125, 277, 302, 388)
D. (1, 3, 8)
Попробуем выбрать ТОП 1 для каждой из последовательностей:
Возьмем первую последовательность А
А и B => 5 чисел совпало, 4 не совпало
А и С => 3 чисел совпало, 6 не совпало
А и D => 2 числа совпало, 4 не совпало.
Итого наиболее похожая последовательность B
Задача из практики.
Это можно былобы общитать в лоб без эвристик, если бы не:
есть 24 миллиона последовательностей натуральных чисел, все числа от
1 до 1700000
В каждой последовательности от 1 до 1700000 элементов.
Все последовательности имеют не равномерно распределенное количество чисел. Предположим по принципу Паретто, 20% на 80%. Тоесть 20% последовательностей вместе взятые имеют больше чисел, чем остальные 80% вместе взятых последовательностей.
Нужно для каждой из 24 миллиона последовательностей, найти топ 25 наиболее похожих на нее последовательностей из этого же списка.
96 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів