editing
approved
Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).
editing
approved
Robert A. Sulanke, <a href="https://citeseerx.ist.psu.edu/viewdocpdf/summary?doi=10.1.1.43.373743f55a444127be30366676c977e9d7e412d25614">The Narayana distribution</a>, J. Statist. Plann. Inference, 2002, 101: 311-326, formula 2.
approved
editing
editing
approved
This is the second triangle in a hierarchy sequence of Narayana triangles. The first is A090181, whose n-th row is a refinement of Catalan(n), whereas here the n-th row of T is a refinement of 2*Catalan(n-1). We can show that T(n, k) <= A090181(n, k) for all n, k. The third triangle in this sequence is A353279, where also a recurrence for the general case is given.
We Here we give a recurrence for the row polynomials, which correspond to the recurrence of the classical Narayana polynomials combinatorially proved by Sulanke (see link).
The polynomials can also be represented as the difference between generalized Narayana polynomials, see the formula section.
Hrow[n_] := CoefficientList[H[n, x], x]; Table[Hrow[n], {n, 0, 9}] // TableForm
Table[Hrow[n], {n, 0, 9}] // TableForm
Triangle read by rows, a Narayana related triangle with whose rows which are refinements of twice the Catalan numbers (for n >= 2).
This is the second triangle in a hierarchy of Narayana triangles. The first is A090181, whose n-th row sums are the is a refinement of Catalan numbers. Here (n), whereas here the n-th row sums are twice the of T is a refinement of 2*Catalan numbers (leaving aside index adjustmentsn-1). We can show that T(n, k) <= A090181(n, k).
We can show that T(n, k) <= A090181(n, k). It follows that whatever the Narayana refinement of the Catalan numbers count, the T(n, k) count a particular subclass of these objects. A combinatorial study of this triangle thus essentially means to identify the constraint that these objects are subject to in our setup.
We give a recurrence for the row polynomials , which correspond to the recurrence of the classical Narayana polynomials combinatorially proved by Sulanke (see link).
The polynomials (n >= 1) have only real zeros and form a Sturm sequence. This follows from the recurrence along the lines given in the Chen et al. paper.
A bundle of Some interesting sequences turns turn out to be the evaluation of the polynomial sequence at a fixed point (see the cross-references), for example the reversion of the Jacobsthal numbers A001045 essentially is -(-2)^n*P(n, -1/2).
The polynomials can be represented as the difference between generalized Narayana polynomials, see the formula section.
if n == 0< 3: return ([1], [0, 1], [0, 1, 1])[n]
if n == 1: return [0, 1]
if n == 2: return [0, 1, 1]
# Represented by generalized Narayana polynomials:
N := (n, k, x) -> add(((k+1)/(n-k))*binomial(n-k, j-1)*binomial(n-k, j+k)*x^(j+k), j=0..n-2*k): seq(print(ifelse(n=0, 1, expand(N(n, 0, x) - N(n, 1, x)))), n=0..7);
A generalization of the Narayana polynomials is given by
N{n, k}(x) = Sum_{j=0..n-2*k}(((k + 1)/(n - k)) * binomial(n - k, j - 1) * binomial(n - k, j + k) * x^(j + k)).
A090181 - T N{n, 0}(x) are the classical Narayana polynomials A001263 and N{n, 1}(x) is a shifted version of A145596 based in (3, 2). Our polynomials are the difference P(n, x) = N{n, 0}(x) - N{n, 1}(x) for n >= 1.
Explicit formula (additive form):
With Multiplicative formula with the same boundary conditions:
Bivariate generating function:
Recursion based on polynomials:
Recursion based on rows (see the second Python program):
T(n, k) = (((B(k) + B(k-1)) * (2*n - 3) - (A(k) - 2*A(k-1) + A(k-2))*(n-3))/n), where A(k) = T(n-2, k) and B(k) = T(n-1, k), for n >= 3.
Hypergeometric representation:
Row sums:
Difference with Narayana triangle:
from functools import cache@cache def T_row(n): if n == 0: return [1] if n == 1: return [0, 1] if n == 2: return [0, 1, 1] A = T_row(n - 2) + [0, 0] B = T_row(n - 1) + [1] for k in range(n - 1, 1, -1): B[k] = (((B[k] + B[k - 1]) * (2 * n - 3) - (A[k] - 2 * A[k - 1] + A[k - 2]) * (n - 3)) // n) return B for n in range(10): print(T_row(n))
from functools import cache
@cache
def T_row(n):
if n == 0: return [1]
if n == 1: return [0, 1]
if n == 2: return [0, 1, 1]
A = T_row(n - 2) + [0, 0]
B = T_row(n - 1) + [1]
for k in range(n - 1, 1, -1):
B[k] = (((B[k] + B[k - 1]) * (2 * n - 3)
- (A[k] - 2 * A[k - 1] + A[k - 2]) * (n - 3)) // n)
return B
for n in range(10): print(T_row(n))
return ((binomial(n, k)**2 * (k * (2 * k**2 + (n + 1) * (n - 2 * k))))//(n**2*(n-1)*(n-k+1))
// (n**2 * (n - 1) * (n - k + 1)))
(Python) # The recursion with cache is (much) faster:
from functools import cache@cache def T_row(n): if n == 0: return [1] if n == 1: return [0, 1] if n == 2: return [0, 1, 1] A = T_row(n - 2) + [0, 0] B = T_row(n - 1) + [1] for k in range(n - 1, 1, -1): B[k] = (((B[k] + B[k - 1]) * (2 * n - 3) - (A[k] - 2 * A[k - 1] + A[k - 2]) * (n - 3)) // n) return B for n in range(10): print(T_row(n))
Cf. A000108 (Catalan), A090181 and A001263 (Narayana), A000108 (Catalan), A145596, A172392 (central terms), A000124 (subdiagonal, column 2).
Values of the polynomial sequence: A068875 (row sums): P(1), A154955: P(-1), A238113: P(2)/2, A125695 (also A152681): P(-2), A054872: P(3)/2, P(3)/6 probably probable A234939, A336729: P(-3)/6, A082298: P(n,4)/5, A238113: 2^n*P(1/2), A154825 and A091593: 2^n*P(-1/2).