A350530 Square array read by antidiagonals downwards: T(n,k) is the number of sequences of length n with terms in 0..k such that the (n-1)-st difference is zero, but no earlier iterated difference is zero, n, k >= 1.
1, 1, 0, 1, 1, 0, 1, 2, 0, 0, 1, 3, 0, 0, 0, 1, 4, 2, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 1, 6, 8, 0, 0, 0, 0, 0, 1, 7, 12, 4, 0, 0, 0, 0, 0, 1, 8, 18, 12, 8, 4, 0, 0, 0, 0, 1, 9, 24, 28, 36, 28, 4, 0, 0, 0, 0, 1, 10, 32, 52, 84, 116, 48, 16, 0, 0, 0, 0
Offset: 1
Examples
Array begins: n\k| 0 1 2 3 4 5 6 7 8 9 10 ---+-------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 1 1 2 | 0 1 2 3 4 5 6 7 8 9 10 3 | 0 0 0 2 4 8 12 18 24 32 40 4 | 0 0 0 0 0 4 12 28 52 84 132 5 | 0 0 0 0 0 8 36 84 176 332 568 6 | 0 0 0 0 4 28 116 308 704 1396 2548 7 | 0 0 0 0 4 48 232 728 2104 4940 11008 8 | 0 0 0 0 16 100 556 1936 7092 19908 49364 9 | 0 0 0 0 12 176 1348 6588 23356 74228 202504 10 | 0 0 0 0 8 268 2492 15544 72820 259800 842688 For n = 4 and k = 6, the following T(4,6) = 12 sequences are counted: 1454, 1564, 2125, 2565, 3126, 3236, 4541, 4651, 5212, 5652, 6213, 6323.
Links
- Pontus von Brömssen, Antidiagonals n = 1..19, flattened
Crossrefs
Programs
-
Python
def A350530_col(k,nmax): d = [] c = [0]*nmax while 1: if not d or all(d[-1][:-1]): if d and d[-1][-1] == 0: c[len(d)-1] += 1 + (0 != 2*d[0][0] != k+1) elif len(d) < nmax: d.append([-1]) for i in range(len(d)-1): d[-1].append(d[-1][-1]-d[-2][i]) while d and d[-1][0] == k: d.pop() if not d or len(d) == 1 and 2*d[0][0] >= k: return c for i in range(len(d)): d[-1][i] += 1
Comments