И... тишина. Разве ж нечего обсудить.
Ответил в
теме.
Сначала с помощью отдельной программы — ГенПата, генерятся различные серии паттернов, идёт "полный" перебор. Ищется минимальный шаг для заявленной цели.
На выходе — болванка, то есть заготовка паттерна и список простых, которые затем будут добавляться в эту самую болванку уже в основной рабочей программе, тем самым формируя паттерн окончательно.
В случае с 24-я и 48-ю делителями это обычно только простые, которые будут возводиться в квадрат при такой расстановке. А для 96-и делителей ещё и простые, которые войдут в паттерн как есть, то есть в первой степени.
Проиллюстрирую более подробно. Напрасно
wrest говорил что якобы мне привычно валить всё в кучу. Скорее наоборот, я нередко пытаюсь разложить всё по полочкам, чтобы получше разобраться.
Ну вот, например, такую болванку для D(96,14) мне выдал ГенПат:
Код:
bolv = [1859, 72, 5, 98, 3, 4, 1, 150, 1, 2048, 1701, 242, 5, 156] 14
onlyp = [] 0
pq = [] 0
pqr = [2, 8, 10, 11, 14] 5
pqrs = [1, 3, 4, 5, 12, 13] 6
pqrst = [6, 7, 9] 3
Здесь приведена и раскадровка — на каких местах какая сборка ожидается.
Затем расставляются простые из трёх списков и раскадровка становится уже другой:
Код:
v = [113399, 6408, 96815, 6958, 79059, 6956, 1149517, 150, 2133617, 2048, 1701, 19118, 398815, 156] 14
onlyp = [] 0
pq = [2] 1
pqr = [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 13
pqrs = [] 0
pqrst = [] 0
mkv = [3, 5, 7, 9, 13] 5
rkp = [17, 19, 23, 29, 31] 5
rp1 = [37, 41, 43] 3
rp2 = [47, 53, 59, 61, 67, 71, 73, 79, 83] 9
rp3 = [89] 1
prter = [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89] 22
predp = Vecsmall([97, 101]) 6518
Паттерн я понимаю в узком смысле — массив v[]. И он ещё не полностью сформирован — квадраты простых из списка rkp[] пока не расставлены по местам mkv[].