Прошу Дмитрия и Евгения тоже замерить скорость для этого паттерна.
До 1e22 ждать несколько часов не стал, посчитал до
1e21, но так как время линейно, то на 10 домножите сами:
Win x64, gp64, AVX2:
LCM14642258400-2398005945-4:50953382534746363545: 12, 16, 16, 12, 64, 12, 12, 12, 12, 12, 12, 12,128, 64, 32, valids=9, maxlen=7
LCM14642258400-2398005945-4:397205950551315115545: 64, 32, 12, 96, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 4, valids=9, maxlen=8
LCM14642258400-2398005945-4:421504074747029961945: 96, 32, 12, 12, 12, 12, 12, 12, 12, 12, 8, 12, 8, 8, 16, valids=9, maxlen=8
LCM14642258400-2398005945-4:823933771266299827545: 48, 32, 4, 12, 12, 12, 12, 12, 12, 12, 32, 12, 64, 32, 12, valids=9, maxlen=7
LCM14642258400-2398005945-4:983096238918548688345: 12, 16, 4, 12, 12, 12, 12, 12, 12, 12, 32, 12, 64, 8, 2, valids=9, maxlen=7
LCM14642258400-2398005945-4: end, time: 1083.769s
Win x64, gp32, SSE:
LCM14642258400-2398005945-4:50953382534746363545: 12, 16, 16, 12, 64, 12, 12, 12, 12, 12, 12, 12,128, 64, 32, valids=9, maxlen=7
LCM14642258400-2398005945-4:397205950551315115545: 64, 32, 12, 96, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 4, valids=9, maxlen=8
LCM14642258400-2398005945-4:421504074747029961945: 96, 32, 12, 12, 12, 12, 12, 12, 12, 12, 8, 12, 8, 8, 16, valids=9, maxlen=8
LCM14642258400-2398005945-4:823933771266299827545: 48, 32, 4, 12, 12, 12, 12, 12, 12, 12, 32, 12, 64, 32, 12, valids=9, maxlen=7
LCM14642258400-2398005945-4:983096238918548688345: 12, 16, 4, 12, 12, 12, 12, 12, 12, 12, 32, 12, 64, 8, 2, valids=9, maxlen=7
LCM14642258400-2398005945-4: end, time: 1839.615s
Аккуратная оценка времени для ускорения с перебором дополнительного простого для этого паттерна даёт время 30 минут до 1e22. Из которых на перебор простого до 44721359549 и вычисление КТО уходит 25 минут, на компиляцию 138-ми ускорителей для простых до 823 и перебор ими до 1e22 уходит 3 минуты (2 минуты только на компиляцию, с запасом), на перебор в PARI простых от 823 до 826403 и проверку каждого получаемого паттерна до 1e22 уходит 2 минуты, на проверку только начального числа если оно меньше 1e22 (таковых всего 57 тысяч) всех остальных простых уходит меньше секунды. Вместо где-то трёх часов на перебор текущими ускорителями AVX2. Хорошая оценка, мне нравится.
Проверил что будет реально: скомпилил все 138 ускорителей, компиляция заняла минуту, написал перебор в PARI, запустил.
Перебор всеми ускорителями до 1e22 занял 63 секунды.
Перебор в PARI простых от 823 до 826403 с перебором по каждому паттерну до 1e22 тоже в самом PARI занял 188 секунд.
Перебор простых от 826404 до 44721359549 и проверкой получившегося начального числа (их 56825 штук меньше 1e22 и все меньше 2.34e9) занял 35 минут. 98% которых занял перебор простых больше 2e9 и подсчёт КТО, давшая начальное число больше 1e22 и проверке не подлежащее. Есть у меня подозрение что проверять все простые до десятков миллиардов не нужно, КТО вроде бы гарантирует что начиная с некоторого простого все начальные числа будут больше 1e22 и перебор можно оборвать (спустя примерно минуту), осталось лишь аккуратно вычислить это самое простое.
Найдена 21 восьмёрка (все с ускорителями с простыми до 300), в том числе одна из показанных выше (397205950551315115545). Вторая восьмёрка (421504074747029961945) не нашлась так как на перебираемом месте (с 5 в паттерне) имеет не квадрат другого простого.
Суммарное время составило 40 минут. Совпадение с оценкой в 30 минут считаю хорошим.
Новая прога их найти не смогла. В отличие от старой.
И это правильно: они обе в позиции F имеют не
, а
, т.е. должны находиться по совсем другому паттерну, попробуйте LCM6098400-5575545-4, у меня он их обе находит:
Код:
T:\M12n11_x32SSE\M12n11>LCM6098400-5575545-4.exe 502018378297 1
[0x74E2A08A39]
T:\M12n11_x32SSE\M12n11>LCM6098400-5575545-4.exe 502437170065 1
[0x74FB96CB91]
А дальше дело PARI кода проверки.
-- 05.11.2022, 18:57 --Интересно оценить для другого паттерна, возьму LCM42688800-377145-4 как вероятно наиболее сложный из семейства
.
Текущими ускорителями его проверять 1e22/42688800/4e7=68 дней.
Размещая простое до 15300 (их 1780 штук) затратим на компиляцию и работу ускорителей 15.1ч (на компиляцию 0.5ч расчётных), на перебор в PARI простых до 15e6 и каждого паттерна до 1e22 нужно 24 минуты, плюс минут 30-35 на перебор простых до 44721359549 с КТО и проверкой лишь если начальное число меньше 1e22.
Итого порядка 16ч.