Почти наверняка алгоритмы у вас однотипные и еще более вероятно, возможно переиспользование данных из соседних последовательностей где-то из середины алгоритма.
Я пришел к выводу что можно разбить на блоки весь диапазон и смотреть сколько попало значений в диапазон, допустим по 10 000 диапазоны, тогда если в него попало 100 значений, то данный диапазон не рассматриваю, так как при пересечении с другой последовательностью вероятность что в диапазоне 10 000 значений пересекутся 100 очень мала.
GO обязательно гляну на предмет данной задачи, спасибо за подсказку
1) интересная мысль с учетом того что можно на один пиксель повесить огромное количество значений, если хранить rgb, вопрос как считывать значения, сохранить не беда, но вот при считывании цвета будут правильно ли определяться, проверю, мысль интересная
5,6) Выборки не случайны, задаются по формуле, по поводу 3 минут ошибся, последовательности считаются цугами(блоками), 3 минуты один блок. Формула вычисления последовательности дает смещение, сейчас изучаю, возможно получится по другому задавать последовательности
Adamos, придется объединять N последовательностей из 15 000 000, а это (Ц из N по K, где N[3..1000], а K=15 000 000 )
] N=10 => количество комбинаций по N последовательностей = 15 000 000!/ (15 000 000-10)!*10!
Очень много комбинаций последовательностей. Или я не так понял вашу идею?
Перспективность одной последовательности можно попробовать оценить, если разбить диапазон 15 000 000 допустим по 1000, и смотреть какие диапазоны охватывает последовательность( в какие диапазоны попадают значения последовательности), допустим все скучковалось в последних, тогда с большей долей вероятности данной последовательности подойдет, та в которой диапазоны в начале списка.
Можно тогда свести задачу к сравнению не 500 000 значений последовательности, а к сравнению 500 диапазонов. Которые можно хранить кстати.
Adamos, Я скорей всего запутал словами "Последовательность значений".
Значения располагаются по возрастанию, но не являются непрерывно последовательными.
Пример:
1,5,6,68,97,150,......
Adamos, Правильно я понял идею брать N последовательностей и объединять в одну на этапе расчета?
Если честно не могу сообразить как на этапе заполнения сформировать все возможные варианты 10-ток,
ведь надо сравнивать каждую последовательность с каждой, а таких последовательностей по N получается (Ц из N по K, где N[3..1000], а K=15 000 000 )
] N=10 => количество комбинаций 15 000 000!/ (15 000 000-10)!*10! Мне кажется многовато и где-то опять надо хранить.
sim3x, Данные каждой последовательности рассчитываются по формуле, которая меняется, можно считать функция RAND(0, 15000000)
Конечная цель получить список последовательностей с максимальным охватом, количество последовательностей задает гость, но в пределах N[3..1000]