Предположим, что на некотором интервале ищутся кортежи по определённому паттерну из просто простых. Какова вероятность (хотя это несколько некорректно, но допустим речь идёт о доле именно на этом интервале) того, что в очередном найденном кортеже простые окажутся кроме того и строго последовательными?
Оказалось, что маленькая.
Чем дальше диаметр паттерна от минимально возможного (а для длины 19 он 76), тем меньше вероятность. Но для минимального диаметра (и следующих разрешённых по модулям, до 80, это уже паттерн длиной 20) она ровно
(нет более длинных паттернов с тем же диаметром). Так что нельзя говорить что она
просто маленькая, она маленькая
для диаметра 252.
Оказалось, что на 32-битной версии получается ускорение в два раза, а на 64-битной — в один раз.
На каких числах (примерная величина)? Если меньше
, то объяснимо, хотя и странно.
Кстати помнится кто-то (и как бы даже не Вы сами) не так уж давно проверял все ли числа в паттерне (не помню в каком) одинаково вероятно простые и оказалось что нет, не все (помню даже такую квадратную табличку в экселе с числами типа 33000-68000), разница была раза в два или три, так что порядок проверки на простоту тоже может давать двух-трёхкратное ускорение, это неоднократно наблюдал и сам. Правда вопрос в любом ли диапазоне или эти вероятности меняются от диапазона и в среднем остаются равными.
Ещё, проверить кортеж на 19 простых можно другим способом, не знаю будет ли быстрее, но точно короче/удобнее:
if(#(pr=primes([bpt,bpt+252]))==19, и далее действия если в этот интервал влезло ровно 19 простых.
Я для пробы запускал вот такую простую программку:
setrand(getwalltime()); while(1, x=nextprime(random(10^22)); if(!ispseudoprime(x+252), next); p=primes([x,x+252]); if(#p>=18, print(x,": ",p-vector(#p,i,x),", len=",#p)))Вот что она находит буквально за несколько минут если убрать убрать
setrand и перезапустить PARI (чтобы
random выдавал случайные числа с начала):
7176500001746175660587: [0, 2, 14, 26, 54, 56, 80, 84, 132, 144, 170, 174, 186, 200, 210, 222, 242, 252], len=18
839663805627023139281: [0, 36, 56, 78, 96, 116, 120, 122, 158, 162, 168, 180, 198, 210, 228, 242, 246, 252], len=18
8850690690994070720611: [0, 6, 12, 18, 28, 36, 42, 52, 60, 112, 118, 150, 162, 186, 190, 196, 222, 252], len=18
1273385466926817165599: [0, 2, 18, 44, 84, 98, 104, 108, 110, 122, 140, 152, 170, 210, 222, 240, 248, 252], len=18
951414135191911502401: [0, 6, 16, 28, 58, 72, 78, 90, 108, 120, 156, 160, 162, 166, 190, 198, 210, 250, 252],
len=195967900227694961025947: [0, 12, 16, 64, 96, 100, 126, 142, 144, 156, 166, 184, 190, 196, 204, 210, 222, 252], len=18
8520129502766569440821: [0, 18, 26, 32, 68, 98, 110, 122, 158, 168, 180, 182, 186, 200, 210, 242, 248, 252], len=18
А эти нашёл за несколько минут уже с
setrand и пределом
:
57484528757347888035079: [0, 10, 18, 22, 48, 52, 58, 60, 78, 94, 102, 120, 148, 160, 168, 204, 220, 238, 252], len=19
97880988687260639051827: [0, 4, 52, 70, 96, 114, 126, 132, 154, 172, 174, 184, 192, 210, 214, 216, 226, 240, 252], len=19
43193050465398538004017: [0, 12, 16, 40, 42, 46, 72, 82, 84, 132, 154, 160, 172, 174, 186, 202, 210, 246, 252], len=19
И с пределом
:
80680983185978346719: [0, 8, 18, 38, 42, 44, 48, 72, 80, 84, 98, 114, 132, 144, 158, 182, 240, 248, 252], len=19
84533634999426000667: [0, 4, 6, 10, 42, 54, 60, 66, 90, 112, 136, 156, 192, 214, 220, 222, 226, 244, 252], len=19
Поставив предел ещё меньше (
) девятнашки и не только начинаются сыпаться каждые несколько секунд:
283311309698690887: [0, 6, 12, 22, 40, 42, 76, 96, 102, 126, 136, 144, 162, 180, 196, 204, 210, 250, 252], len=19
531899786198031619: [0, 18, 54, 58, 84, 88, 130, 132, 142, 144, 168, 208, 210, 222, 232, 240, 244, 250, 252], len=19
717472567021952531: [0, 12, 18, 26, 30, 38, 66, 110, 122, 128, 158, 168, 180, 188, 210, 216, 236, 248, 252], len=19
102173220136265419: [0, 10, 12, 40, 78, 82, 88, 100, 108, 114, 120, 124, 142, 150, 180, 234, 238, 240, 252], len=19
921112940912402417: [0, 32, 36, 50, 54, 56, 60, 84, 90, 116, 134, 174, 186, 194, 222, 230, 240, 242, 246, 252], len=20
832873447622304757: [0, 4, 6, 22, 30, 54, 60, 70, 76, 82, 96, 114, 160, 166, 186, 190, 196, 216, 246, 252], len=20
62658514456039057: [0, 6, 12, 30, 34, 84, 90, 106, 124, 142, 154, 160, 190, 204, 210, 222, 234, 240, 244, 252], len=20
683400754887881057: [0, 26, 30, 32, 44, 54, 56, 122, 132, 144, 150, 164, 170, 180, 192, 200, 212, 216, 240, 252], len=20
28169489958533047: [0, 4, 10, 12, 22, 24, 34, 36, 40, 60, 90, 106, 120, 172, 190, 202, 204, 232, 244, 252], len=20
401970815909916247: [0, 10, 16, 22, 30, 60, 64, 82, 96, 100, 106, 114, 124, 166, 180, 184, 220, 222, 234, 252], len=20
512272261661372041: [0, 30, 40, 46, 76, 78, 88, 90, 100, 118, 120, 156, 166, 168, 180, 196, 232, 240, 246, 252], len=20
895048499258721901: [0, 18, 42, 52, 60, 70, 88, 90, 120, 130, 132, 136, 150, 162, 168, 190, 196, 228, 240, 252], len=20
872076830577542831: [0, 42, 50, 62, 68, 72, 90, 98, 126, 150, 152, 156, 170, 180, 182, 206, 216, 222, 230, 252], len=20
596065496263855087: [0, 12, 40, 42, 54, 60, 84, 96, 126, 130, 144, 166, 172, 184, 192, 196, 210, 220, 226, 250, 252], len=21
573100692195101261: [0, 8, 42, 48, 78, 86, 92, 116, 120, 126, 132, 146, 162, 182, 192, 206, 240, 242, 246, 252], len=20
767713238297005909: [0, 30, 34, 54, 58, 88, 108, 112, 138, 150, 154, 168, 178, 192, 214, 238, 240, 244, 250, 252], len=20
С пределом в
буквально каждую секунду по девятнашке или длиннее:
534697406220409: [0, 12, 22, 40, 48, 64, 78, 90, 132, 154, 174, 180, 190, 202, 204, 208, 220, 222, 238, 252], len=20
48914808659: [0, 2, 8, 68, 72, 80, 90, 110, 120, 134, 150, 164, 168, 182, 194, 210, 222, 248, 252], len=19
166747076205049: [0, 54, 58, 64, 70, 90, 114, 130, 138, 142, 148, 168, 172, 184, 208, 222, 228, 238, 240, 252], len=20
90868120442767: [0, 16, 64, 72, 82, 84, 90, 100, 114, 132, 136, 156, 160, 166, 180, 196, 204, 220, 232, 252], len=20
876883674847321: [0, 10, 16, 30, 36, 40, 42, 60, 78, 82, 120, 126, 130, 138, 162, 166, 190, 232, 240, 250, 252], len=21
277156635697031: [0, 2, 6, 12, 18, 26, 38, 98, 110, 132, 138, 150, 158, 188, 198, 200, 206, 216, 242, 252], len=20
Заметьте, тут есть даже девятнашка до
!
Но и это не предел, убрав случайность и перебрав простые до
, можно найти (исключая начало числового ряда до 10000 где есть кортеж длиной аж 53 начиная с 5) кортежи диаметром 252 длиной до 33 (показываю только последнее вхождение):
112921: [0, 6, 18, 30, 46, 58, 76, 90, 96, 100, 102, 106, 118, 120, 130, 142, 160, 162, 168, 172, 190, 196, 202, 210, 222, 226, 228, 232, 238, 240, 246, 250, 252], len=33
1219639: [0, 4, 10, 12, 18, 24, 40, 64, 78, 82, 88, 100, 108, 114, 124, 144, 148, 150, 154, 168, 172, 192, 198, 204, 208, 210, 220, 222, 232, 238, 240, 252], len=32
5803841: [0, 8, 18, 26, 36, 38, 42, 50, 60, 66, 86, 92, 96, 98, 102, 110, 120, 128, 138, 150, 158, 176, 182, 192, 200, 212, 218, 228, 240, 246, 252], len=31
461224117: [0, 4, 6, 22, 34, 40, 46, 60, 70, 72, 76, 84, 100, 102, 106, 120, 124, 126, 144, 154, 156, 172, 202, 210, 216, 222, 226, 250, 252], len=29
925594261: [0, 16, 22, 28, 48, 60, 82, 88, 118, 120, 130, 138, 148, 168, 172, 180, 186, 196, 198, 202, 208, 210, 216, 226, 228, 232, 238, 246, 250, 252], len=30
Более короткие продолжают встречаться.
Ради интереса проверил последний паттерн длиной 30 другим способом и он действительно больше не встречается вплоть до
(но могли бы встретиться другие паттерны длиной 30, этого не знаю).
Девятнашек диаметром 252 до
нашлось более 1.2млн (считалось полчаса и лог занял 240МБ текста).
Много информации о текущих мировых достижениях есть
здесь (ссылка взята из OEIS).