cp's OEIS Frontend

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.

A370983 Triangle read by rows: T(n, k) = (n + k - 1)! / (k!*(n - k)!) if k > 0 and T(n, 0) = 0^n.

This page as a plain text file.
%I A370983 #13 Mar 09 2024 13:22:32
%S A370983 1,0,1,0,2,3,0,3,12,20,0,4,30,120,210,0,5,60,420,1680,3024,0,6,105,
%T A370983 1120,7560,30240,55440,0,7,168,2520,25200,166320,665280,1235520,0,8,
%U A370983 252,5040,69300,665280,4324320,17297280,32432400
%N A370983 Triangle read by rows: T(n, k) = (n + k - 1)! / (k!*(n - k)!) if k > 0 and T(n, 0) = 0^n.
%C A370983 A signed version of Catalan's triangle (version A128899) can be generated as the scaled inverse of this triangle. The scaled inverse of T is the inverse I of T post-processed by I(n, k) -> I(n, k)/I(n, n).
%F A370983 Assume n > 0 and k > 0 for the next four formulas:
%F A370983 T(n, k) = ((-1)^k / n) * Product_{j=0..k-1} ((j - n)*(j + n)/(j + 1)).
%F A370983 T(n, k) = binomial(n, k) * Pochhammer(n, k) / n.
%F A370983 T(n, k) = A370706(n, k) / n.
%F A370983 T(n, k) = A370707(n, k) / (n*k!).
%e A370983 Triangle starts:
%e A370983 [0] 1;
%e A370983 [1] 0, 1;
%e A370983 [2] 0, 2,   3;
%e A370983 [3] 0, 3,  12,   20;
%e A370983 [4] 0, 4,  30,  120,   210;
%e A370983 [5] 0, 5,  60,  420,  1680,   3024;
%e A370983 [6] 0, 6, 105, 1120,  7560,  30240,  55440;
%e A370983 [7] 0, 7, 168, 2520, 25200, 166320, 665280, 1235520;
%p A370983 T := (n, k) -> `if`(k = 0, k^n, (n + k - 1)! / (k!*(n - k)!)):
%p A370983 seq(seq(T(n, k), k = 0..n), n = 0..9);
%p A370983 A370983 := (n, k) -> local j; ifelse(n = 0, 1, ifelse(k = 0, 0,
%p A370983 (-1)^k*mul((j - n) * (j + n) / (j + 1), j = 0..k - 1) / n)):
%t A370983 T[n_, k_] := If[n == 0, 1, If[k == 0, 0, (n + k - 1)! / (k! * (n - k)!)]];
%t A370983 Table[T[n, k], {n, 0, 8}, {k, 0, n}] // Flatten
%o A370983 (SageMath)
%o A370983 def A370983(n, k):
%o A370983     if k  > n: return 0
%o A370983     if n == 0: return 1
%o A370983     if k == 0: return 0
%o A370983     return binomial(n, k) * rising_factorial(n, k) // n
%o A370983 for n in range(7): print([A370983(n, k) for k in range(n + 1)])
%o A370983 (SageMath) # Added for the sake of reference only.
%o A370983 # For example ScaledInv(A370983, 7) gives the first seven rows of A128899.
%o A370983 def ScaledInv(T, dim): # We assume T(n, n) != 0 for all n.
%o A370983     M = matrix(QQ, dim, T).inverse()
%o A370983     for n in range(dim):
%o A370983         c = M[n][n]
%o A370983         M[n] = [M.row(n)[k] / c for k in range(dim)]
%o A370983     return M
%o A370983 (Python)
%o A370983 from math import prod
%o A370983 def T(n, k):
%o A370983     if n == 0: return 1
%o A370983     if k == 0: return 0
%o A370983     return (-1)**k * prod((j - n) * (j + n) / (j + 1) for j in range(k)) / n
%o A370983 for n in range(7): print([T(n, k) for k in range(n + 1)])
%Y A370983 Cf. A006963 (main diagonal), A001813 (subdiagonal), A371028 (row sums).
%Y A370983 Cf. A370706, A370707, A128899.
%K A370983 nonn,tabl
%O A370983 0,5
%A A370983 _Peter Luschny_, Mar 07 2024