Вероятно получилось немного ускорить процесс. Шагаем по оси 14k:
Либо мой компьютер опять показывает неточные результаты из-за неразберихи в настройках,
либо шагать по оси немного быстрее. Я немного "хитрю", начиная поиск с первого известного кортежа)
Оцените код, пожалуйста.
Вот что получила: найдено 100 кортежей за 298 секунд.
Код:
Gotovo! Naydeno 100 za 298 sekund.
Vsego provereno: 437321607
Сам код:
Код:
search_100_CPAP_6_14K_FAST_TIMED(start_val) = {
\\ 1. Предрасчёт смещений для p на основе оси 14k
my(WHEEL_K = 2145);
my(allowed_k3 = [1, 2]);
my(allowed_k5 = [1, 2, 3, 4]);
my(allowed_k11 = [0, 1, 2, 9, 10]);
my(allowed_k13 = [0, 1, 4, 5, 8, 9, 12]);
my(p_offsets = []);
for(r = 1, WHEEL_K,
if(setsearch(allowed_k3, r % 3) > 0 &&
setsearch(allowed_k5, r % 5) > 0 &&
setsearch(allowed_k11, r % 11) > 0 &&
setsearch(allowed_k13, r % 13) > 0,
my(off = (14 * r - 75) % 30030);
if(off <= 0, off += 30030);
p_offsets = concat(p_offsets, off);
);
);
p_offsets = vecsort(p_offsets);
print("Predraschet zavershen. Naydeno ", #p_offsets, " dopustimyh smescheniy.");
print("ZAPUSK...\n");
\\ 2. Быстрый цикл
my(WHEEL_P = 30030);
my(base = start_val - (start_val % WHEEL_P));
my(found = 0);
my(count = 0);
my(t_start = getwalltime());
my(results = []);
while(found < 100,
for(j = 1, #p_offsets,
my(p = base + p_offsets[j]);
if(p < start_val, next);
count++;
if(ispseudoprime(p) && ispseudoprime(p+30) && ispseudoprime(p+60) &&
ispseudoprime(p+90) && ispseudoprime(p+120) && ispseudoprime(p+150),
if(nextprime(p+1) == p+30 && nextprime(p+31) == p+60 &&
nextprime(p+61) == p+90 && nextprime(p+91) == p+120 &&
nextprime(p+121) == p+150,
found++;
results = concat(results, p);
\\ ВЫВОД С ВРЕМЕНЕМ: номер, число и время
my(time_sec = (getwalltime() - t_start) / 1000.0);
print(found, ": ", p, " (vremya: ", time_sec, " sek)");
);
);
);
base += WHEEL_P;
);
my(total_time = (getwalltime() - t_start) / 1000.0);
print("\nGotovo! Naydeno ", found, " za ", round(total_time), " sekund.");
print("Vsego provereno: ", count);
return(results);
};
\\ ЗАПУСК
search_100_CPAP_6_14K_FAST_TIMED(121174811);
-- добавлено через 5 минут --У нас с вами разница получилась всего 398-342=56 секунд.
Мне кажется, что это в пределах погрешности.
Не-не-не. Это не стат. погрешность. Если запускать на пустом компе и в один поток, то, например у меня, результаты обычно очень надёжные, хорошо воспроизводимые. Если общее время 398, то так и будет

1-2 секунды.
Если сильно охладить его, например, отнести в подвал, то может секунд на 5 быстрее будет.
Вы, кстати, так и не рассказали что за комп у вас, какой проц, сколько ядер, потоков. Кроме многопоточноcти ведь есть ещё способ ускорения через компиляцию в С-код. Ну и конечно для простых чисел здорово ускоряет асм.
Поняла, ваш стабильные результаты дает, удобно.
С моим еще не всё понятно. Я запуталась при установки Пари на компьютер, несколько раз удаляла, устанавливала,
мало опыта) возможно из-за этого есть странности в работе программы.
По характеристикам попозже посмотрю, скажу в личке, хорошо? В целом ничего сверхъестественного в нем нет.