Можно сделать вот такое:
1. Я вручную сделаю порядка 100 групп паттернов. С расставленными простыми до 7 включительно.
2. В них каждая позиция будет помечена:
"0" -
не попадает. Это "проверяемая" позиция и без
"1" - можно поставить
,
или
. Если ставится
, то позиция становится проверяемой.
"2" - можно только
. Если ставится
, то позиция становится проверяемой.
Если в таком виде подойдет для дальнейшей автоматической генерации паттернов, то на выходных постараюсь сделать.
Ну так это всё легко алгоритмизируется и соответственно реализуется на PARI. Взять 6 паттернов с пятёрками и пытаться вставить туда
, если получилось, то пытаться и
. Делать это руками ... странно. Намного проще аккуратно сформулировать почему что-то куда-то нельзя поставить (для семёрки, для 11-ки условия простые). И ограничиться или центральной семёркой чисел (чтобы покрыть все возможные 11-ки), или лучше варианты "9-в-центре" плюс два "11-с-краю". Если что-то можно не слишком сложно переложить на комп, то так и надо делать.
Тогда идентификатор любого паттерна будет строкой длиной ровно 9 символов.
Это удобно, но совершенно не обязательно, длина обозначения паттерна нигде не критична.
Остальное не смотрел.
Ну так я уже выложил 13 паттернов. И именно в них, в уже готовых, никто ошибок пока не заметил.
Не сказали об ошибках не означает что их нет, может просто не проверяли. Хотелось бы ясного подтверждения что да, всё правильно и совпадает.
И 13 паттернов конечно прекрасно, но я так понял они лишь для одного варианта из семи с пятёрками и семёрками.
А как вчерашний запуск? Нашлось ли что-то выше 3е18?
Да оставил его считаться в одном потоке, что-то малоинтересное нашлось конечно (короче 8-ми в лог не выводил), до 3e19:
3439950928171579417: 12, 4, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 32, 6, valids=10, maxlen=9
4027400632776173017: 16, 32, 8, 12, 8, 12, 12, 12, 12, 12, 12, 12, 12,128, 24, valids=9, maxlen=8
5825942113694016217: 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 64, 24, valids=9, maxlen=9
5860039499314003417: 16, 32, 12, 12, 12, 12, 12, 12, 12, 12, 8, 12, 4, 64, 12, valids=10, maxlen=8
6798033470805845017: 2, 4, 12, 12, 12, 12, 12, 12, 12, 12, 16, 12, 32, 64, 6, valids=9, maxlen=8
7638870434878113817: 8, 16, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 16, 6, valids=9, maxlen=9
8863315803831936217: 32, 8, 48, 12, 4, 12, 12, 12, 12, 12, 12, 12, 12, 16, 36, valids=9, maxlen=8
10110329465900376217: 2, 48, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8,128, 12, valids=10, maxlen=9
10340594329951517017: 16, 16, 8, 12, 8, 12, 12, 12, 12, 12, 12, 12, 12, 16, 24, valids=9, maxlen=8
11992043826765725017: 4, 16, 12, 12, 12, 12, 12, 12, 12, 12, 32, 12, 8, 64, 24, valids=9, maxlen=8
12424727009994715417: 8, 8, 64, 12, 4, 12, 12, 12, 12, 12, 12, 12, 12, 32, 12, valids=10, maxlen=8
14153266331613105817: 8,256, 32, 12, 16, 12, 12, 12, 12, 12, 12, 12, 12, 16, 48, valids=9, maxlen=8
14999214006174432217: 2, 16,128, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 48, valids=9, maxlen=9
16793827386062376217: 4, 16, 16, 12, 12, 12, 12, 12, 12, 12, 12, 12, 2, 16, 6, valids=9, maxlen=9
17898487139729093017: 4, 8, 32, 12, 4, 12, 12, 12, 12, 12, 12, 12, 12, 16, 24, valids=9, maxlen=8
18100622923455288217: 8, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 6, valids=9, maxlen=9
18509024618870232217: 32, 32, 8, 12, 2, 12, 12, 12, 12, 12, 12, 12, 12, 16, 12, valids=10, maxlen=8
18836128191087595417: 8, 8, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 64, 24, valids=9, maxlen=9
22212340326452049817: 16, 16, 12, 12, 12, 12, 12, 12, 12, 12, 16, 12, 4, 32, 24, valids=9, maxlen=8
22683957009731285017: 4, 16, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 32, 6, valids=9, maxlen=9
23326375383552979417: 8, 8,256, 12, 4, 12, 12, 12, 12, 12, 12, 12, 12,512, 48, valids=9, maxlen=8
23656583988572923417: 8, 16, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 64, 96, valids=9, maxlen=9
29850280787656776217: 2, 8, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 64, 24, valids=9, maxlen=9