Несколько способов увеличить скорость перебора случайных чисел:
- Оптимизировать накопление суммы. 1 Можно добавлять на каждом шаге вложенного цикла только те элементы, которых ещё не было в сумме на прошлой итерации. 1
- Использовать префиксные суммы. 1 Этот метод позволяет избежать излишних арифметических операций и получать суммы элементов подпоследовательностей за одну операцию вычитания. 1
- Перебирать подпоследовательности от максимальной длины к меньшей. 1 При нахождении суммы нужной кратности можно прерывать вложенный цикл. 1
- Распараллеливать вычисления. 4 Это может ускорить процесс, но, несмотря на количество процессов, всё равно придётся просмотреть каждый элемент массива. 4
- Использовать квантовые алгоритмы. 4 Например, алгоритм Гровера, который используется в квантовых вычислениях для решения задач перебора. 4
Также для увеличения скорости перебора случайных чисел можно выбирать генераторы с высокой производительностью, например, Xorshift или PCG. 5