Хорошо, ещё более подробно расскажу.
Во-первых, для кортежа 3-12 есть
A047948. И строчку 3/3 можно сверить по b-файлу.
Во-вторых, опубликую программу. Здесь специально не используются 3 идеи ускорения, которые обсуждались ранее. Чтобы проще было понять.
(PARI)
Код:
{print; t0=getwalltime();
v=[0, 6, 12];
print(#v,"-",v[#v]," ",v);print;
per = 29; d=v[#v]; w=1; pro=1; m=vector(per,i,[]);
forprime(p=2,per, m[p]=setminus(vector(p,i,i-1),Set(-v%p));w*=p;pro*=#m[p];
print(p,": ",m[p],", len=",#m[p]," Period = ",w," Formul = ",pro));
print;
kkor=0; kcep=vector(#v+1); o1=vector(#v+1); o2=vector(#v+1);
x0=Mod(1,2);
foreach(m[29],m29,
foreach(m[23],m23,
foreach(m[19],m19,
foreach(m[17],m17,
foreach(m[13],m13,
foreach(m[11],m11,
foreach(m[7],m7,
foreach(m[5],m5,
foreach(m[3],m3,
y=chinese([x0,
Mod(m3,3),Mod(m5,5),Mod(m7,7),Mod(m11,11),Mod(m13,13),Mod(m17,17),Mod(m19,19),
Mod(m23,23),Mod(m29,29)
]);
kan=lift(y); kkan++;
valids=0;
if(isprime(kan+2) || isprime(kan+4) || isprime(kan+8) || isprime(kan+10), next);
if(isprime(kan), valids++);
if(isprime(kan+v[2]), valids++);
if(isprime(kan+v[3]), valids++);
kcep[valids+1]++;
))))) ))));
print;print;print(kkan);print;
for(i=0,#kcep-1,
if(i<10,print1(" "),print1(" "));
print1(i,"/",i);
if(i<10,print1(" "),print1(" "));
print1(kcep[i+1]);
if(i==0, print);
if(i>0 && kcep[i]>=0,
o1[i+1] = kcep[i]/kcep[i+1];
if(o1[i]>0, o2[i+1] = o1[i+1]/o1[i]);
if(o1[i+1]>0, print1(," ",round(o1[i+1]*1000)),print);
if(o2[i+1]>0, print (," ",round(o2[i+1]*1000)), if(o1[i+1]>0,print));
));
print;print(strtime(getwalltime()-t0));print;
}quit;
В-третьих, вот новые данные. Как видим, k2 сошлись к одному и тому же значению 3029. То есть схождения именно к 3000 в обозримой перспективе не будет, но вот с увеличением диаметра ожидаю улучшения сходимости.
Код:
0 -- 23#
Найдено k1 k2
штук
0/0 1271822
1/1 1957807 650
2/2 990769 1976 3042
3/3 165033 6003 3038
0 -- 29#
Найдено k1 k2
штук
0/0 41866178
1/1 52674606 795
2/2 21877244 2408 3029
3/3 2999271 7294 3029