######################################################### # # # Coded by Indranil Ghosh (indranilg49@gmail.com) # # # ######################################################### #Python 2.7.11, OEIS sequence: A071152 from sympy import binomial, factorial as f def a072643(n): i=c=0 a=1 while n>c: a*=(4*i + 2)/(2 + i) i+=1 c+=a return i def a014137(n): return sum([f(2*k)/(f(k)**2*(k + 1)) for k in xrange(n + 1)]) def a009766(n, k): return 0 if k<0 or k>n else binomial(n + k + 1, k)*(n + 1 - k)/(n + 1 + k) def CatalanUnRank(n, rr): r=(binomial(2*n, n)/(n + 1)) - (rr + 1) a=lo=0 t=n y=n - 1 while t>0: m=a009766(t, y) if r<(lo + m): y-=1 a=2*a + 1 else: lo+=m t-=1 a*=2 return a def a014486(n): return 0 if n==0 else CatalanUnRank(a072643(n), (n - a014137(a072643(n) - 1))) def a(n): return 2*int(bin(a014486(n))[2:]) print [a(n) for n in xrange(101)]