OFFSET
1,8
COMMENTS
Let S=(p_1, ..., p_m) be the ordered sequence of the first m prime numbers. The m-th Gilbreath polynomial is defined as the polynomial P_m such that the x-th term of the upper bound Gilbreath sequence of S, U(S)_x, is U(S)_x = 2^(m+x-1) + P_m where P_m = Sum_{n=1..m} T(m,n)*x^(n-1)/A347925(m).
The values T(m,1), ..., T(m,n) are the numerators of the coefficients of the (n-th)-degree terms of the m-th Gilbreath polynomial.
LINKS
Riccardo Gatti, Gilbreath Sequences and Proof of Conditions for Gilbreath Conjecture, Preprints 2020, 2020030145.
Riccardo Gatti, Program for the generation of the m-th Gilbreath polynomial calling GenMthGilbreathPolynomial(m)
A. M. Odlyzko, Iterated absolute values of differences of consecutive primes, Math. Comp. 61 (1993), 373-380.
EXAMPLE
Consider the triangle T(m,n) of the first terms of the sequence:
m\n 1 2 3 4 5 6 7 8
1 1
2 1 0
3 1 0 0
4 -1 -3 -1 0
5 -5 -5 -1 0 0
6 -57 -55 -15 -2 0 0
7 -282 -232 -77 -14 -1 0 0
...
The terms associated to P_6 are -57, -55, -15, -2, 0, 0. The numerators of coefficients of P_6 are in order of degree of the term of the polynomial: -57 for the term of degree 0, -55 for the term of degree 1 and so on until 0 for the terms of degree 4 and 5. Hence P_6 = (-57 - 55x - 15x^2 - 2x^3)/3, where A347925(6)=3, in fact the x-th term of the upper bound Gilbreath sequence of S=(p_1, ..., p_6) = (2, 3, 5, 7, 11, 13) is U(S)_x = 2^(x+5) + (-57 - 55x - 15x^2 - 2x^3)/3.
PROG
(PARI) polynomialfit(data) = Pol(Vecrev(matsolve(matrix(#data, #data, i, j, i^(j-1)), data~))); \\ from David A. Corneth
isg(v, k) = {my(w = concat(v, k), vd = w); for (i=1, #w-1, vd = vector(#vd-1, k, abs(vd[k+1] - vd[k])); if (vd[1] != 1, return (0)); ); return (1); }
nextx(v) = {my(k = nextprime(nextprime(vecmax(v)+1)+1)); while (isg(v, k), k+=2); k-=2; }
row(n) = {my(vp = primes(n), v = List()); for (i=1, n, my(x = nextx(vp)); vp = concat(vp, x); listput(v, x); ); v = Vec(v); my(cp = Vecrev(polynomialfit(vector(#v, k, v[k] - 2^(k+n-1))))); my(k = lcm(apply(denominator, cp))); while(#cp != n, cp = concat(cp, 0)); cp *= k; } \\ Michel Marcus, Sep 20 2021
CROSSREFS
KEYWORD
AUTHOR
Riccardo Gatti, Sep 20 2021
STATUS
approved