Я специально не складывал (чтобы меньше программу исправлять), написал же "между степенями десятки", а не "от нуля до степени десятки".
Ну так я от нуля и не считал. Смотрите как я сделал:
Код:
for(po = 10, 100,
otr = intnum(t=10^(po-1), 10^po, C/log(t)^#v);
Li2 += otr;
Ещё бы долю чистых вычислить ...
Вот здесь как раз могут помочь те самые ww[] и a[] из более ранних прог.
Нужно считать изначальный паттерн, затем из результата вычесть результат обсчёта паттернов с одинарным загрязнением, а паттерны с двойным и тройным загрязнением нужно считать только в случае их уникальности, если они не преемники.
Говорю же, я сегодня подробно описал как считать чистый кортеж 3-12. Вот прога. Да, там Li2 по старому считался.
Код:
{CalcHL()=my(C,MC,BC,PM,v,p,m);
v=ve;
MC = 2^(#v-1);
forprime(p=3,#v, m=p-#Set(-v%p);MC *= m/p/(1 - 1/p)^#v);
PM = 1;
forprime(p=#v+1,v[#v]/2, m=p-#Set(-v%p);PM *= m/(p - #v));
C = MC * PM;return(C);}
{print(); Liold=1;
vchis=[0, 6, 12];
print();print(#vchis," ",vchis);print();
fc = [ 0, 1, 13, 58, 322, 1929, 12313, 83446, 595279, 4383099, 0 ];
ve=vchis;
C1=CalcHL();
BC = prodeulerrat(( p^#ve - #ve*p^(#ve-1) )/(p-1)^#ve, 1, nextprime(#ve
+1)); C1*=BC;v1=ve;
ve=[0, 2, 6, 12];
C2=CalcHL();
BC = prodeulerrat(( p^#ve - #ve*p^(#ve-1) )/(p-1)^#ve, 1, nextprime(#ve
+1));C2*=BC;v2=ve;
ve=[0, 4, 6, 12];
C3=CalcHL();
BC = prodeulerrat(( p^#ve - #ve*p^(#ve-1) )/(p-1)^#ve, 1, nextprime(#ve
+1));C3*=BC;v3=ve;
print("10^ HL-1 Posl/Pred Fact Pogresh");
print();
for(po = 1, #fc,
H1 = intnum(t=2, 10^po, C1/log(t)^#v1);
H2 = intnum(t=2, 10^po, C2/log(t)^#v2);
H3 = intnum(t=2, 10^po, C3/log(t)^#v3);
Li2 = H1 - 2*H2 - 2*H3;
if(fc[po]<>0,
printf("%d %.8g %.3g %d %.3g\n",po,Li2,Li2/Liold,fc
[po],(Li2-fc[po])/fc[po]),
printf("%d %.8g %.3g\n",po,Li2,Li2/Liold));
Liold=Li2;
);
print();
}quit;
Вот ключевая формула:
Li2 = H1 - 2*H2 - 2*H3;
А в этом я значит неправ, ведь длина того грязного кортежа 22, а значит и интеграл будет достаточно другим (и константа перед ним).
Нет, здесь и дальше Вы перемудрили. Для ВСЕХ длин сразу для 19-252 работает HL-1 : от 19 до 49 включительно. Можете проверить на других паттернах.