Нене, идеи у ИИ были весьма здравые. Оценка (без сильной переработки) там была ~200 раз, что у вас и получилось. Но есть и тонкости именно в pari/gp относящиеся к тому, что иногда логически тот же код начинает работать сильно быстрее если внести логику внутрь функций создания векторов и т.п. Я как раз и ждал что вы обратитесь за оптимизацией вашего кода (как индикатор, что интерес ещё не потерян).
А, понял, спасибо. Но 200 я пока не выжал, лишь ~10, есть еще значит потенциал для оптимизации. В примерно 500 раз быстрее оно теперь считает по сравнению с другой программой, которая дает гарантированный максимум, перебирая весь общий период (с учетом тонкостей, когда периоды не взаимнопросты). Текущая программа такой гарантии не дает: она по сути преследует сильно модифицированную наивную стратегию:
1. Как и в ней, в очередном проходе тыкаем в первую непроколотую клетку;
2. Но делаем это строго то слева от уже проколотого диапазона, то справа (именно это дает ускорение; стратегии с несбалансированным ростом влево/вправо не рассматриваются);
3. И не берем для очередного прохода обязательно младшие доступные вилку и проход и левый зубец, а перебираем все возможные варианты вилка-проход-зубец.
Интерес же во мне эта задача пробудила буйный

понятно, что без гарантии какого-либо результата, но ведь "пусть он проиграл, но занимался же делом достойным", не дословно из многих античных авторов; у них, как правило, "погиб" и т.п.
Ну с учётом того, что начиная с какой-то вилки по всей видимости будет

то есть все натруальные покроются целиком, это и неудивительно. А может и не покроются

Думаю, всё это безобразие можно выразить формулами, но я их не знаю.
Да, вот это вопросы на миллион

или на сто рублей по крайней мере.
Вот пока наилучшее для шести вилок,

проколотых клеток подряд:
- Вилка, i; Проход, s; Дырка, h=2i-1; Интервал, p=4i+2s-4; Период, d=6i+2s-3
-
- i s зубец тык h p d
- =============================
- 1 1 левый x 1 2 5
- 1 2 правый x+3 1 4 7
- 3 1 левый слева 5 10 17
- 2 1 левый справа 3 6 11
- 2 2 левый слева 3 8 13
- 6 2 левый справа 11 24 37
- 6 1 правый слева 11 22 35
- 4 2 правый справа 7 16 25
- 3 2 правый слева 5 12 19
- 5 2 левый справа 9 20 31
- 5 1 левый слева 9 18 29
- 4 1 левый справа 7 14 23