This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A370222 #37 Mar 27 2024 15:44:27 %S A370222 0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,2,0,0,0,0,0,0,0,1,0,0,1,0,0,0, %T A370222 1,1,0,0,1,2,0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,2,0,1,2,0,0,1,2,1, %U A370222 0,1,2,2,0,1,2,3,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 %N A370222 Irregular triangle T(n,k) read by rows: row n gives the inversion table (see comments) of the permutation encoded by row n of A370221. %C A370222 Knuth (2011) uses the inversion table c_1, c_2, ..., c_k (defined so that exactly c_k elements to the right of k are less than k) to encode the permutation given by row n of A370221. %C A370222 This way c_1 = 0 and 0 <= c_(k+1) <= c_k + 1 for 1 <= k < m, where m >= 1 is half the length of the corresponding properly nested string of parentheses (see example). %C A370222 The concatenation of terms in each row from row n = 23714 to 82498 (corresponding to strings of length 22, excluding the last one) gives the A000108(11) - 1 = 58785 terms of the finite sequence A239903. %D A370222 Donald E. Knuth, The Art of Computer Programming, Vol. 4A: Combinatorial Algorithms, Part 1, Addison-Wesley, 2011, Section 7.2.1.6, pp. 440-444. %H A370222 Paolo Xausa, <a href="/A370222/b370222.txt">Table of n, a(n) for n = 1..15521</a> (rows 1..2055 of the triangle, flattened). %F A370222 T(n,k) = 2*k - 1 - A370220(n,k). %e A370222 The following table lists c_k values for properly nested strings having lengths up to 8, along with d_k, z_k and p_k values from related combinatorial objects (see related sequences for more information). Cf. Knuth (2011), p. 442, Table 1. %e A370222 . %e A370222 | Properly | | A370219 | A370220 | A370221 | %e A370222 | Nested | A063171 | d d d d | z z z z | p p p p | c c c c %e A370222 n | String | (n) | 1 2 3 4 | 1 2 3 4 | 1 2 3 4 | 1 2 3 4 %e A370222 ----+----------+----------+---------+---------+---------+--------- %e A370222 1 | () | 10 | 1 | 1 | 1 | 0 %e A370222 2 | ()() | 1010 | 1 1 | 1 3 | 1 2 | 0 0 %e A370222 3 | (()) | 1100 | 0 2 | 1 2 | 2 1 | 0 1 %e A370222 4 | ()()() | 101010 | 1 1 1 | 1 3 5 | 1 2 3 | 0 0 0 %e A370222 5 | ()(()) | 101100 | 1 0 2 | 1 3 4 | 1 3 2 | 0 0 1 %e A370222 6 | (())() | 110010 | 0 2 1 | 1 2 5 | 2 1 3 | 0 1 0 %e A370222 7 | (()()) | 110100 | 0 1 2 | 1 2 4 | 2 3 1 | 0 1 1 %e A370222 8 | ((())) | 111000 | 0 0 3 | 1 2 3 | 3 2 1 | 0 1 2 %e A370222 9 | ()()()() | 10101010 | 1 1 1 1 | 1 3 5 7 | 1 2 3 4 | 0 0 0 0 %e A370222 10 | ()()(()) | 10101100 | 1 1 0 2 | 1 3 5 6 | 1 2 4 3 | 0 0 0 1 %e A370222 11 | ()(())() | 10110010 | 1 0 2 1 | 1 3 4 7 | 1 3 2 4 | 0 0 1 0 %e A370222 12 | ()(()()) | 10110100 | 1 0 1 2 | 1 3 4 6 | 1 3 4 2 | 0 0 1 1 %e A370222 13 | ()((())) | 10111000 | 1 0 0 3 | 1 3 4 5 | 1 4 3 2 | 0 0 1 2 %e A370222 14 | (())()() | 11001010 | 0 2 1 1 | 1 2 5 7 | 2 1 3 4 | 0 1 0 0 %e A370222 15 | (())(()) | 11001100 | 0 2 0 2 | 1 2 5 6 | 2 1 4 3 | 0 1 0 1 %e A370222 16 | (()())() | 11010010 | 0 1 2 1 | 1 2 4 7 | 2 3 1 4 | 0 1 1 0 %e A370222 17 | (()()()) | 11010100 | 0 1 1 2 | 1 2 4 6 | 2 3 4 1 | 0 1 1 1 %e A370222 18 | (()(())) | 11011000 | 0 1 0 3 | 1 2 4 5 | 2 4 3 1 | 0 1 1 2 %e A370222 19 | ((()))() | 11100010 | 0 0 3 1 | 1 2 3 7 | 3 2 1 4 | 0 1 2 0 %e A370222 20 | ((())()) | 11100100 | 0 0 2 2 | 1 2 3 6 | 3 2 4 1 | 0 1 2 1 %e A370222 21 | ((()())) | 11101000 | 0 0 1 3 | 1 2 3 5 | 3 4 2 1 | 0 1 2 2 %e A370222 22 | (((()))) | 11110000 | 0 0 0 4 | 1 2 3 4 | 4 3 2 1 | 0 1 2 3 %t A370222 clist[m_] := With[{r = 2*Range[2, m]-1}, Reverse[Map[Join[{0}, r-#] &, Select[Subsets[Range[2, 2*m-1], {m-1}], Min[r-#] >= 0 &]]]]; %t A370222 Array[Delete[clist[#], 0] &, 5] %t A370222 (* 2nd program: uses Algorithm Z from Knuth's TAOCP section 7.2.1.6, exercise 2 *) %t A370222 zlist[m_] := Block[{z = 2*Range[m] - 1, j}, %t A370222 Reap[ %t A370222 While[True, %t A370222 Sow[z]; %t A370222 If[z[[m-1]] < z[[m]] - 1, %t A370222 z[[m]]--, %t A370222 j = m - 1; z[[m]] = 2*m - 1; %t A370222 While[j > 1 && z[[j-1]] == z[[j]] - 1, z[[j]] = 2*j - 1; j--]; %t A370222 If[j == 1,Break[]]; %t A370222 z[[j]]--] %t A370222 ]][[2]][[1]]]; %t A370222 Join[{{0}}, Table[Delete[Map[2*Range[n] - 1 - # &, zlist[n]], 0], {n, 2, 5}]] (* _Paolo Xausa_, Mar 25 2024 *) %Y A370222 Cf. A000108, A063171, A072643 (row lengths), A239903. %Y A370222 Cf. A370219, A370220, A370221, A370292 (row sums). %K A370222 nonn,tabf %O A370222 1,20 %A A370222 _Paolo Xausa_, Feb 12 2024