A215406 A ranking algorithm for the lexicographic ordering of the Catalan families.
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4
Offset: 0
Links
- G. C. Greubel, Table of n, a(n) for n = 0..1000
- A. Karttunen, Catalan's Triangle and ranking of Mountain Ranges
- D. L. Kreher and D. R. Stinson, Combinatorial Algorithms, Generation, Enumeration and Search, CRC Press, 1998.
- F. Ruskey, Algorithmic Solution of Two Combinatorial Problems, Thesis, Department of Applied Physics and Information Science, University of Victoria, 1978.
Crossrefs
Programs
-
Maple
A215406 := proc(n) local m,a,y,t,x,u,v; m := iquo(A070939(n), 2); a := A030101(n); y := 0; t := 1; for x from 0 to 2*m-2 do if irem(a, 2) = 1 then y := y + 1 else u := 2*m - x; v := m-1 - iquo(x+y,2); t := t + A037012(u,v); y := y - 1 fi; a := iquo(a, 2) od; A014137(m) - t end: seq(A215406(i),i=0..199); # Peter Luschny, Aug 10 2012
-
Mathematica
A215406[n_] := Module[{m, d, a, y, t, x, u, v}, m = Quotient[Length[d = IntegerDigits[n, 2]], 2]; a = FromDigits[Reverse[d], 2]; y = 0; t = 1; For[x = 0, x <= 2*m - 2, x++, If[Mod[a, 2] == 1, y++, u = 2*m - x; v = m - Quotient[x + y, 2] - 1; t = t - Binomial[u - 1, v - 1] + Binomial[u - 1, v]; y--]; a = Quotient[a, 2]]; (1 - I*Sqrt[3])/2 - 4^(m + 1)*Gamma[m + 3/2]*Hypergeometric2F1[1, m + 3/2, m + 3, 4]/(Sqrt[Pi]*Gamma[m + 3]) - t]; Table[A215406[n] // Simplify, {n, 0, 86}] (* Jean-François Alcover, Jul 25 2013, translated and adapted from Peter Luschny's Maple program *)
-
Sage
def A215406(n) : # CatalanRankGlobal(n) m = A070939(n)//2 a = A030101(n) y = 0; t = 1 for x in (1..2*m-1) : u = 2*m - x; v = m - (x+y+1)/2 mn = binomial(u, v) - binomial(u, v-1) t += mn*(1 - a%2) y -= (-1)^a a = a//2 return A014137(m) - t
Comments