Я создал алгоритм на Python для просеивания первых n простых чисел, затем перечисления упорядоченных пар индекса n и n-го первичного числа p_n #.
Далее я оцениваю функцию на основе n и p_n # инаконец, цель - определить, является ли функция f (n, p_n #) монотонной, поэтому алгоритм оценивает, где последовательность изменяется от повышения к падению и наоборот.Код указан здесь , что стоит.
Это, конечно, требует много памяти, и мой компьютер может справиться только с числами примерно до 2 000 000.
На любомдля данной точки все, что мне действительно нужно, это f (n-1), упорядоченная пара n, p_n #, простое число p_n (для быстрого поиска следующего простого числа) и логическое значение, указывающее, выросла ли последовательность последней или упала.
Каковы наилучшие подходы, позволяющие избежать сохранения в памяти ста тысяч или более простых чисел и простых чисел при сохранении скорости?
Я думал, что первым шагом будет создание ситакоторый находит одно следующее простое число выше некоторого данного простого, а не каждое простое число ниже некоторого максимумаЗатем я могу оценить следующее значение функции.
Но я также подумал, что было бы лучше просеивать партии по 100 простых чисел за раз.Это может быть поддержано некоторым «постоянным списком» упорядоченных троек [n, p_n, p_n #], содержащих только n = 100,200,300, ... которые я сгенерирую до выполнения.В процессе поиска я нашел концепцию «травления» списка и подумал, является ли это правильным сценарием, в котором его можно использовать, или есть лучший способ?