login
A285267
Array read by antidiagonals: T(m,n) = number of m-ary words of length n with adjacent elements differing by 3 or less.
3
1, 4, 1, 16, 5, 1, 64, 23, 6, 1, 256, 107, 30, 7, 1, 1024, 497, 154, 37, 8, 1, 4096, 2309, 788, 203, 44, 9, 1, 16384, 10727, 4034, 1111, 252, 51, 10, 1, 65536, 49835, 20650, 6083, 1446, 301, 58, 11, 1, 262144, 231521, 105708, 33305, 8300, 1787, 350, 65, 12, 1
OFFSET
4,2
COMMENTS
All rows are linear recurrences with constant coefficients. See PARI script to obtain generating functions.
LINKS
EXAMPLE
Array starts (m>=4, n>=0):
1 4 16 64 256 1024 4096 16384 ...
1 5 23 107 497 2309 10727 49835 ...
1 6 30 154 788 4034 20650 105708 ...
1 7 37 203 1111 6083 33305 182349 ...
1 8 44 252 1446 8300 47642 273466 ...
1 9 51 301 1787 10619 63111 375091 ...
1 10 58 350 2130 12990 79258 483646 ...
1 11 65 399 2473 15381 95757 596341 ...
MATHEMATICA
diff = 3; m0 = 4; mmax = 13;
TransferGf[m_, u_, t_, v_, z_] := Array[u, m].LinearSolve[IdentityMatrix[m] - z*Array[t, {m, m}], Array[v, m]]
RowGf[d_, m_, z_] := 1+z*TransferGf[m, 1&, Boole[Abs[#1-#2] <= d]&, 1&, z];
row[m_] := row[m] = CoefficientList[RowGf[diff, m, x] + O[x]^mmax, x];
T[m_ /; m >= m0, n_ /; n >= 0] := row[m][[n + 1]];
Table[T[m - n, n], {m, m0, mmax}, {n, m - m0, 0, -1}] // Flatten (* Jean-François Alcover, Jun 17 2017, adapted from PARI *)
PROG
(PARI)
TransferGf(m, u, t, v, z)=vector(m, i, u(i))*matsolve(matid(m)-z*matrix(m, m, i, j, t(i, j)), vectorv(m, i, v(i)));
RowGf(d, m, z)=1+z*TransferGf(m, i->1, (i, j)->abs(i-j)<=d, j->1, z);
for(m=4, 12, print(RowGf(3, m, x)));
for(m=4, 12, v=Vec(RowGf(3, m, x) + O(x^9)); for(n=1, length(v), print1( v[n], ", ") ); print(); );
CROSSREFS
Rows 5-32 are A126473-A126500.
Sequence in context: A094361 A187926 A285281 * A067425 A188481 A138681
KEYWORD
nonn,tabl
AUTHOR
Andrew Howroyd, Apr 15 2017
STATUS
approved