Experimenting with Standard Young Tableaux Shalosh B. EKHAD and Doron ZEILBERGER

In fond memory of Herbert Wilf and Albert Nijenhuis, and in honor of Curtis Greene

Abstract: Using Symbolic Computation with Maple, we can discover lots of (rigorously-proved!) facts about Standard Young Tableaux, in particular the distribution of the entries in any specific cell, and the sorting probabilities. Maple package This article is accompanied by a Maple package, SYT.txt, available from:

https://sites.math.rutgers.edu/~zeilberg/tokhniot/SYT.txt .

The web-page of this article

https://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimhtml/syt.html ,

contains many input and output files, some of which will be referred to later. Preface One of the most iconic objects in mathematics, both concrete [K], and abstract [F], are Standard Young Tableaux [Wi]. Recall that an integer partition, or partition, for short, aka shape, of a non-negative integer n, with k parts, is a non-increasing sequence of positive integers

λ = (λ_{1}, λ_{2}, …, λ_{k}),

where

λ_{1} ≥ λ_{2} ≥ … ≥ λ_{k} > 0,

such that

λ_{1} + … + λ_{k} = n.

The Ferrers diagram (or Young diagram) of a partition λ is a left-justified array of dots (or empty boxes) where the top row has λ_{1} dots (boxes), the second row has λ_{2} boxes, …, the k-th row has λ_{k} dots. For example, the Ferrers diagram of (4, 4, 3, 1) is

\begin{matrix}∗ & ∗ & ∗ & ∗ \\ ∗ & ∗ & ∗ & ∗ \\ ∗ & ∗ & ∗ \\ ∗ \end{matrix} .

Given a shape λ = (λ_{1}, …, λ_{k}) with n boxes, a standard Young tableau is a way of filling the boxes with the integers {1, …, n}, such that each of them shows up (necessarily once) and both rows and columns are increasing. More formally, it is an array

T_{i,j}, where 1 ≤ i ≤ k, 1 ≤ j ≤ λ_{i},

such that T_{i,j} < T_{i,j+1} and T_{i,j} < T_{i+1,j} whenever they exist.

Here are the five standard Young tableaux of shape (2, 2, 1):

1 2 3 4 5 , 1 2 3 5 4 , 1 3 2 4 5 , 1 3 2 5 4 , 1 4 2 5 3 .

To see the set of standard Young tableaux of shape L in our Maple package, type SYT(L); . For example to see the above five tableaux type SYT([2,2,1]); .

The total number of standard Young tableaux of shape λ, denoted by f^{λ}, is famously given by the hook length formula, or equivalently (and more convenient for us) by the Young-Frobenius formula (see [K]).

f^{λ} = \frac{(λ_{1} + λ_{2} + … + λ_{k})!}{(λ_{1} + k − 1)!(λ_{2} + k − 2)! ⋯ λ_{k}!} · ∏_{i=1}^{k} ∏_{j=i+1}^{k}(λ_{i} − λ_{j} + j − i).

Fix a shape λ and fix a cell [i, j], 1 ≤ i ≤ k, 1 ≤ j ≤ λ_{i}.

Who can be the occupant of that cell?

Calling that occupant r, we have:

ij ≤ r ≤ λ_{1} + λ_{2} + … + λ_{i−1} + λ′_{1} + λ′_{2} + … + λ′_{j−1} − (i − 1)(j − 1) + 1,

where λ′ = (λ′_{1}, …, λ′_{λ_{1}}) is the conjugate partition.

This gives a certain probability distribution. What is it?

For example, with the shape λ = (2, 2, 1) again, and the cell [2, 1], the set of possible occupants is \{2, 3\}, and the probability of it being 2 is \frac{3}{5} and of it being 3 is \frac{2}{5}.

Later on we will be interested not in specific shapes, but in general (mostly rectangular) shapes, with a fixed number of rows, but arbitrary (i.e. symbolic) shape. Fixing the number of rows to be k (where k is numeric), and regarding the shape (n, n, …, n), where n is repeated k times, we would be interested in deriving closed-form expressions (as rational functions of n), for the probability distribution of the possible occupants of a given first row cell [1, j], for any given numeric integer j. Note that the possible occupants of [1, j] are j, j + 1, j + 2, …, k(j − 1) + 1.

Once we found these expressions in n, we can ask about the limiting distribution, that Maple can find for us. Then we can also hope to see how it varies with j and look at the meta-limiting behavior as j gets larger.

Another kind of question, inspired by the beautiful work of Chan, Pak, and Panova [CPP1, CPP2], is to study the sorting probabilities. Given two cells c_{1} and c_{2}, draw a standard Young tableau uniformly at random. Who is bigger?

The occupant of c_{1} or the occupant of c_{2}?

Of course if the two cells are related, i.e. one of them, say c_{2}, is (weakly) below and (weakly) to the right of the other, c_{1}, i.e. in the underlying poset c_{1} < c_{2}, then of course, always T_{c_{1}} < T_{c_{2}}, but what if they are not related i.e. writing

c_{1} = [i_{1}, j_{1}], c_{2} = [i_{2}, j_{2}],

we have i_{1} < i_{2} but j_{1} > j_{2}.

The sorting probability is defined by:

SP (λ, c_{1}, c_{2}) := P r(T_{c_{1}} > T_{c_{2}}) − P r(T_{c_{2}} > T_{c_{1}}) = 2 P r(T_{c_{1}} > T_{c_{2}}) − 1,

where T is a random standard Young tableau of shape λ.

In particular, following Chan-Pak-Panova, we are interested in the minimal (absolute value) of the sorting probabilities, over all pairs of cells, as the shapes get larger.

Going back to the shape λ = (2, 2, 1), we see that for the first two tableaux the occupant of (1, 2) is less than the occupant of (2, 1), while for the last three ones it is the reverse. Hence the probability of T_{1,2} < T_{2,1} is \frac{2}{5}, and so SP (221, [1, 2], [2, 1]) = \frac{3}{5} − \frac{2}{5} = \frac{1}{5}. The minimal sorting probability for that shape is also \frac{1}{5} (check!).

Simulation

One way to answer these questions, approximately, is via simulation. The amazing Greene-Nijenhuis-Wilf [GrNW] algorithm (that also led to a beautiful probabilistic proof of the hook length formula) inputs a shape, λ, and outputs, uniformly at random, one of the f^{λ} standard Young tableaux of that shape. By sampling many of them, we can get approximations to the quantities of interest.

Procedure GNW(L) in our Maple package SYT.txt implements the Greene-Nijenhuis-Wilf algorithm. For example, try GNW([4,3,2]); , in order to get, uniformly at random, one of the 168 standard Young tableaux of shape (4, 3, 2).

To get approximations for the probability generating function, using the variable x, of the distribution of the occupants of cell c in a random Young tableau of shape L, by sampling K random

tableaux, type SiOcGF(L,c,x,K);.

For example for the shape (4, 4, 4) and the cell [2, 2], with 10000 tries, type:

SiOcGF([4,4,4],[2,2],x,10000);

getting something like (of course it is slightly different each time)

.1090000000 x^{7} + .2875000000 x^{6} + .3639000000 x^{5} + .2396000000 x^{4}.

To get approximations for the sorting probability of cell c1 vs. cell c2, in the shape L, by sampling K

tableaux: enter: SiPr(L,c1,c2,K);. For example, SiPr([3,3,3],[1,2],[2,1],10000); would

give something like 0.010400000. Of course, in this particular case the exact answer is obviously zero, by symmetry, so getting something close to 0 is a good sanity check.

Symbol crunching in order to find the probability distribution of the occupants of a specific cell in a symbolic shape

For the sake of exposition, we will mostly be concerned with standard Young tableaux of rectangular shape. Fix the number of rows k (implicitly taken ≤ n, and the case k > n can be handled by the symmetries), and consider the shape

(n, n, …, n),

where n is repeated k times. More generally all our algorithms carry over to the general symbolic shape

(n_{1}, n_{2}, …, n_{k}),

where n_{1} ≥ n_{2} ≥ n_{k} ≥ 0, and they are all left symbolic. Using Young-Frobenius we get an explicit formula for their total number in the form of a certain rational function, of (n_{1}, …, n_{k}) times the multinomial coefficient

\frac{(n_{1} + … + n_{k})!}{n_{1}! ⋯ n_{k}!}.

In the special case of a k × n rectangular shape: (i.e. (n, …, n), where n is repeated k times), it is a certain rational function of n (namely \frac{(k−1)!}{(n+1)_{1}(n+1)_{2}···(n+1)_{k−1}} , where, as usual (x)_{m} := x(x + 1) ⋯ (x + m − 1)) times

\frac{(n k)!}{n!^{k}}.

Now also fix a specific (numeric) cell, c = [i, j], and a specific (numeric) integer r. We want an explicit formula, as a rational function of n, for the probability that, when you draw (say using the GNW algorithm) uniformly at random, one of the \frac{(n k)!(k−1)!}{n!···(n+k−1)!} standard Young tableaux, of shape n^{k}, that the occupant of the cell c = [i, j] is the integer r, in symbols: P r(T_{ij} = r).

We will soon explain how to do it, but you are welcome to try it out first using our Maple package SYT.txt. Let’s give a few examples.

• To get the explicit expression for the probability that the occupant of cell [1, 3] in a random standard Young tableau of shape (n, n, n) happens to be 7, type: OcCs([n,n,n],7,[1,3]); getting

\frac{5n (n + 1)^{2} (n + 2)}{9 (3n − 1) (3n − 2) (3n − 4) (3n − 5)}.

• For a more complicated example, to get the expression for the probability that the occupant of cell [3, 3] in a random standard Young tableau of shape (n, n, n) happens to be 13, type:

OcCs([n,n,n],13,[3,3]); getting

\frac{110n^{2} (−1 + n) (n + 1)^{2} (2 + n) (233n^{2} − 1933n + 3984)}{81 (−1 + 3n) (−2 + 3n) (−4 + 3n) (−5 + 3n) (−7 + 3n) (−8 + 3n) (−10 + 3n) (−11 + 3n)}.

• For yet another example, OcCs([n[1],n[2],n[3]],3,[1,2]); gives the rational function (in n_{1}, n_{2}, n_{3}) for the probability that cell [1, 2] would be occupied by 3 for the three-rowed shape (n_{1}, n_{2}, n_{3}):

\frac{n_{1}^{2}n_{2} + n_{1}^{2}n_{3} + n_{1}n_{2}^{2} + 2n_{1}n_{2}n_{3} + n_{1}n_{3}^{2} + n_{2}^{2}n_{3} + n_{2}n_{3}^{2} − n_{1}n_{2} − n_{1}n_{3} + n_{2}^{2} − n_{3}n_{2} + 2n_{3}^{2} − 2n_{2} − 6n_{3}}{(n_{1} − 2 + n_{2} + n_{3}) (n_{1} − 1 + n_{2} + n_{3}) (n_{1} + n_{2} + n_{3})} .

• If the cell is at the first row, c = [1, j], for some j > 1, then there are only finitely many possible occupants r, namely r = j, j + 1, …, k(j − 1) + 1, and to get the probability generating function, using the variable x, type OcGFs1(L,j,x);.

For example, entering OcGFs1([n,n,n],2,x); gives you

\frac{2 (−1 + n) x^{2}}{−1 + 3n} + \frac{8 (−1 + n) (n + 1) x^{3}}{3 (−1 + 3n) (−2 + 3n)} + \frac{(n + 1) (2 + n) x^{4}}{3 (−1 + 3n) (−2 + 3n)},

meaning that the cell [1, 2] in a standard Young tableau of shape (n, n, n) is occupied by either 2, 3, or 4, with respective probabilities of \frac{2(−1+n)}{−1+3n}, \frac{8(−1+n)(n+1)}{3(−1+3n)(−2+3n)}, and \frac{(n+1)(2+n)}{3(−1+3n)(−2+3n)}.

To get the limiting distribution as n → ∞, as well as the expectation, variance, and the first few moments up to the K-th, try OcGFs1L(L,n,i,x,K); .

How does Maple perform these amazing calculations? In other words how does it compute P r(T_{ij} = r) for a random standard Young tableau of a symbolic shape?

Given a (symbolic, or numeric) shape λ, a cell c = [i, j], and an integer r, how can it happen that T_{ij} = r? The cells occupied by {1, 2, …, r} form a certain standard Young tableau with r cells, that is a certain subshape, which must contain the cell c = [i, j], that must be a corner, of course. So let’s ask our beloved computer to find all the shapes with r cells that contain the cell [i, j] as a corner, or equivalently the set of partitions, ν, of r with at least i rows such that ν_{i} = j. Let’s call this (finite) set S([i, j], r).

Let, as usual, f^{λ/ν} denote the number of standard Young tableau of skew-shape λ/ν (recall that these are shapes where ν is a subshape of λ, and the cells of ν are removed). Then our quantity of interest is

∑_{ν∈S([i,j];r)} f^{ν′}f^{λ/ν},

where ν′ is the shape ν with the cell [i, j] removed.

The number f^{ν′} is easily computed using the Young-Frobenius formula. How do we compute the (symbolic) expression f^{λ/ν}?

Recall that standard Young tableaux of shape λ = (λ_{1}, …, λ_{k}) are in bijection with walks from the origin to the point λ in the k-dimensional discrete lattice N^{k}, that always must stay in the region

x_{1} ≥ x_{2} ≥ … ≥ x_{k} ≥ 0.

Similarly, standard Young tableaux of skew-shape λ/ν are in bijection with such ‘sub-diagonal’ walks from ν to λ. Now following the ideas of André [Z] (see also [GeZ]), put mirrors on the hyperplanes

x_{1} − x_{2} = −1, x_{2} − x_{3} = −1, …, x_{k−1} − x_{k} = −1,

and look at the set of k! images of the point ν under the action of the group generated by these k − 1 reflections. As is well-known (and fairly easy to see), the underlying group is the symmetric group S_{k}, and the sign is 1 or −1 according to whether the number of inversions is even or odd. Calling the set of images IMAGE(ν), we have:

f^{λ/ν} = ∑_{μ∈IMAGE(ν)} ±W (μ, λ),

where W (μ, λ) is the number of walks in the lattice from μ to λ given by the multinomial coefficient

\frac{(λ_{1} + … + λ_{k} − μ_{1} − … − μ_{k})!}{(λ_{1} − μ_{1})!(λ_{2} − μ_{2})! ⋯ (λ_{k} − μ_{k})!}.

But since we are interested in probabilities, we can divide everything by f^{λ} and stay in the realm of rational functions. This is implemented in the procedure Swee(L,M).

Computing the sorting probabilities for symbolic shape and any two cells where one of them is at the first row

The numeric procedure Pr(L,c1,c2), for a random standard Young tableau of shape L, manually finds the sorting probability of cell c1 vs. cell c2, and the numeric procedure MinPr(L) finds the minimal sorting probabilities among all pair of cells, followed by the ‘champions’. For example, if you type MinPr([10,4,3]);, you would get

1/273, {[[1, 5], [3, 1]]},

meaning that the minimum (absolute value) of the sorting probabilities among all the \binom{17}{2} = 136 pairs of cells is \frac{1}{273} and it is achieved with the pair of cells [1, 5] and [3, 1]. But we want to do things symbolically. Alas, things get complicated if neither cells are at the first row.

But we can, exactly, and symbolically, compute a closed-form expression, as a rational function of the symbols, of the sorting probabilities between any cell [1, j] on the first row and any cell below it (to the left, of course, or else the sorting probability is trivially −1).

This is implemented in procedure PrS(L,j,c2), where L is the symbolic shape and c2 is the cell below the first row that we compare it to [1,j]. For example, to get the sorting probability of cell [1, 3] vs. the cell [2, 2], for the shape (n, n, n), type

PrS([n,n,n],3,[2,2]); getting

−\frac{(17n − 4) (n − 3)}{3 (3n − 1) (3n − 4)}.

How does Maple find the symbolic sorting probabilities?

How do we do it? Look at all the possible occupants of cell c_{1} = [1, j] (there are finitely many of them). Suppose it happens to be r. How can it be larger than the occupant of cell c_{2} = [m_{1}, m_{2}]?. We find the (finite) set of shapes with r cells that include c_{1} = [1, j], and in addition it is a corner. In other words all the shapes ν with r cells such that ν_{1} = j, ν has at least m_{1} rows, and m_{2} ≤ ν_{m_{1}}.

As before add-up f^{ν′} times f^{λ/ν}, and then add-them-up for all possible legal occupants of [1, j]. Getting a nice (or not so nice, but still explicit) expression for P r(T_{1,j} > T_{m_{1},m_{2}}), and hence for the sorting probability 2 P r(T_{1,j} > T_{m_{1},m_{2}}) − 1 .

Of course, we always divide by f^{λ} (but this is already built-in in all our macros).

A one-line proof that the minimal sorting probability for the Catalan poset is O (\frac{1}{n})

In a deep and beautiful work [CPP2], the authors proved that the minimal sorting probability of the Young lattice, as the shapes get larger, tends to 0. In the more specific paper [CPP1], they proved, by an ingenious and delicate asymptotic analysis, that for the two-rowed case, [n, n], (what they call the Catalan poset), it is O (\frac{1}{n^{5/4}} ). But using our Maple package, we can get, without human effort, a (rigorous!) proof that it is at least O (\frac{1}{n}).

Indeed, entering in our Maple package SYT.txt, the command: PrS([n,n],3,[2,1]);, we get, in one nano-second :

\frac{3}{2n − 1}.

So we have the following computer-generated proposition (that admittedly could have been done by humans only using paper and pencil).

Proposition: The sorting probability of the cell [1, 3] and the cell [2, 1] in a random standard Young tableau of shape (n, n) is

\frac{3}{2n − 1} = \frac{3}{2} · \frac{1}{n} + \frac{3}{4} · \frac{1}{n^{2}} + \frac{3}{8} · \frac{1}{n^{3}} + O (\frac{1}{n^{4}} ) .

Hence the minimal sorting probability of the Catalan lattice is O (\frac{1}{n}).

Similarly, typing PrS([n,n],5,[2,2]); gives the following proposition.

Proposition: The sorting probability of the cell [1, 5] and the cell [2, 2] in a random standard Young tableau of shape (n, n) is

\frac{45n^{2} − 135n + 30}{2 (2n − 5) (2n − 1) (2n − 3)} = \frac{45}{16} · \frac{1}{n} + \frac{135}{32} · \frac{1}{n^{2}} + \frac{75}{16} · \frac{1}{n^{3}} + O (\frac{1}{n^{4}} ) .

Hence, again, the minimal sorting probability of the Catalan poset is O (\frac{1}{n}).

Procedure FindZerO(L,n,K) searches for all pairs of cells c_{1} = [1, j], c_{2} = [m_{1}, m_{2}] where c_{1} is in the first row, and j, m_{2} ≤ K, such that the sorting probability tends to 0 (and hence is, of course O(1/n)). Alas, except for the above two pairs (for the Catalan poset), none exists for K = 100. Note that here we really lucked out, since the pairs {[1, 3], [2, 1]} and {[1, 5], [2, 2]} are numeric (and small), and given an upper bound for the minimal sorting probability. In order to get to the true minimum, both c_{1} and c_{2} must be symbolic (that what was essentially done in [CPP1] and [CPP2] with great human effort).

The special case of the Catalan poset (2-rowed tableaux)

For the Catalan case things can get much faster (as noticed in [CPP1]) and the procedures implementing this can be found by typing ezraD(); .

Anij(n,i,j) is a faster version of PrS([n,n],i,[2,j]). It turns out that in this case we can get closed-form expressions, for the occupancy distribution of an arbitrary cell [1, i] at the first row of a standard Young tableau of shape (n, n) for symbolic i, that entail, in turn, closed-form expressions for the limiting distribution as n goes to ∞, and surprise! we can get explicit expressions for the average, variance, and higher moments for that limiting distribution for symbolic i, and even the meta-limiting behavior, as i goes to infinity.

We have

Proposition: The expectation of the occupant of cell [1, i] in a random standard Young tableau of shape (n, n), as n goes to infinity is

2i + 2 − \frac{2 · 4^{−i} (1 + 2i)!}{i!^{2}},

confirming Richard Stanley’s observation mentioned in [CPP1], Eq. (5.1). The asymptotics is

2i + 2 − \frac{4}{\sqrt{π}} i^{1/2} − \frac{3}{2\sqrt{π}} i^{−1/2} + \frac{7}{32\sqrt{π}} i^{−3/2} − \frac{9}{256\sqrt{π}} i^{−5/2} + O (i^{−7/2}) .

The variance is

−\frac{4 · 16^{−i} (1 + 2i)!^{2}}{i!^{4}} − \frac{2 · 4^{−i} (1 + 2i)!}{i!^{2}} + 6i + 6.

The limiting (as i goes to infinity) skewness is \frac{2(5π−16)\sqrt{2}}{(3π−8)^{\frac{3}{2}}} = −0.4856928234 … The limiting (as i goes to infinity) kurtosis is \frac{15π^{2}+16π−192}{(3π−8)^{2}} = 3.108163850 … The limiting (as i goes to infinity) scaled-fifth-moment is \frac{2(51π^{2}−80π−256)\sqrt{2}}{(3π−8)^{\frac{5}{2}}} = −4.642979574 … The limiting (as i goes to infinity) scaled-sixth-moment is \frac{105π^{3}+648π^{2}−2240π−2560}{(3π−8)^{3}} = 18.66866547 … For more details see the output file

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYT9new.txt .

We note that, by miracle, the (limiting, as n goes to infinity) average, variance, and any higher moment, happened to be Gosperable so Maple is able to evaluate them in closed-form using the Maple command sum. We doubt whether this will happen for more rows, but we did not try. We believe that the Maple package SYT.txt can be used to explore further and possibly suggest improvements to the already very impressive work in [CPP1] and [CPP2]. Sample output The web-page of this article

https://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimhtml/syt.html ,

contains lots of output files. Let’s just mention some highlights.

• If you want to see a computer-generated article with lots of explicit expressions (as rational functions of n) for the probability distribution of the occupant of cell [1, i] in a (uniformly-at) random-generated Young tableau of rectangular shape with 2 rows and n columns (i.e. of shape [n, n]) for all i between 2 and 40, see the output file

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYT1.txt .

If you want to see an abbreviated version, with only the limiting distribution as n goes to infinity, but all the way to i = 60, as well as the expectation, variance, skewness, and kurtosis, see

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYT1L.txt .

If you want to see the plot of the occupancy distribution of the cell [1, 40] as n goes to ∞, look here:

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYTpic2.html .

• For the analogous output for 3-rowed rectangular shapes, (i.e. (n, n, n)), see, respectively

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYT2.txt ,
https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYT2L.txt ,
https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYTpic3.html .

For the analogous information for up to 8 rows (but with less data) see the above-mentioned front of this article.

• For testing the amazing Greene-Nijenhuis-Wilf algorithm vs. the exact results, see the output file

https://sites.math.rutgers.edu/~zeilberg/tokhniot/oSYTsi1.txt .

To get lots of explicit expressions for sorting probabilities refer to the above web-page. References

[CPP1] Swee Hong Chan, Igor Pak, and Greta Panova, Sorting probabilities of Catalan Posets, Advances in Applied Mathematics 129 (2021), article 102221, 13 pp.

https://www.math.ucla.edu/~pak/papers/Cat-sort15.pdf .

[CPP2] Swee Hong Chan, Igor Pak, and Greta Panova, Sorting probability for large Young diagrams, Discrete Analysis, Paper 2021:24,

https://www.math.ucla.edu/~pak/papers/Sorting20.pdf .

[F] William Fulton, “Young Tableaux, with Applications to Representation Theory and Geometry”, Cambridge University Press, 1997.

[K] Donald E. Knuth, “The Art of Computer Programming, Vol. III: Sorting and Searching (2nd ed.)”, Addison-Wesley, (1973), (section 5.1.4).

[GeZ] Ira Gessel and Doron Zeilberger, Random walk in a Weyl chamber, Proc. Amer. Math. Soc. 115 (1992), 27-31.

https://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimPDF/weyl.pdf .

[GrNW] Curtis Greene, Albert Nijenhuis, and Herbert Wilf, A probabilistic proof of a formula for the number of Young Tableaux of a given shape, Adv. in Math. 31 (1979), 104-109.

https://www2.math.upenn.edu/~wilf/website/Probabilistic%20proof.pdf .
[Wi] Wikipedia, Young tableaux, https://en.wikipedia.org/wiki/Young tableau .

[Z] Doron Zeilberger, André’s reflection proof generalized to the many-candidate ballot problem, Discrete Mathematics 44 (1983), 325-326.

https://sites.math.rutgers.edu/~zeilberg/mamarimY/Andre1983.pdf .

[Christian Krattenthaler noticed a very long time ago that on the second page (p. 326), last word on line 3: first → last] .

Shalosh B. Ekhad and Doron Zeilberger, Department of Mathematics, Rutgers University (New Brunswick), Hill Center-Busch Campus, 110 Frelinghuysen Rd., Piscataway, NJ 08854-8019, USA.

Email: ShaloshBEkhad at gmail dot com , DoronZeil at gmail dot com .

Written: March 29, 2023.