########################################################## ##由Indranil Ghosh编码(indranilg49@gmail.com) # # ###########################################################Python 2.7.11,OEIS序列:A071662从辛导入二项式,阶乘为f,floor定义a072643(n):i=c=0a=1而n>c:a*=(4*i+2)/(2+i)i+=1c+=a返回i定义a014137(n):x范围(n+1)中k的返回和([f(2*k)/(f(k)**2*(k+1))])定义a009766(n,k):如果k<0或k>n其他二项式(n+k+1,k)*(n+1-k)/(n+1+k),则返回0定义加泰罗尼亚UnRank(n,rr):r=(二项式(2*n,n)/(n+1))-(rr+1)a=lo=0t=ny=n-1当t>0时:m=a009766(t,y)如果r<(lo+m):y=1a=2*a+1其他:lo+=米t-=1a*=2返回adef a014486(n):如果n==0,则返回0,否则为CatalanUnRank(a072643(n),(n-a014137(a0726(n)-1))定义a036044(n):如果n==0,则返回1 else int((“”.join(“1”if i==“0”else“0”for bin(n)[2:]中的i))[::-1],2)定义a080166(n):l=0当n>0时:l+=(-1)**n如果l<0:返回0n=楼层(n/2)如果l>0,则返回0,否则返回1定义a030101(n):返回int(bin(n)[2:][::-1],2)定义a014137(n):xrange(n+1)中k的返回和([f(2*k)/((f(k))**2*(k+1))])定义a215406(n):m=地板(长度(箱(n)[2:])/2)A=a030101(n)y=0t=1对于x范围(1,2*m)中的x:u=2*m-xv=m-(x+y+1)/2mn=二项式(u,v)-二项式(u,v-1)t+=mn*(1-A%2)y-=(-1)**AA=地板(A/2)返回a014137(m)-t定义a080300(n):返回a080166(n)*a215406(n)定义a070939(n):返回长度(bin(n)[2:])定义下一个子BinTree(N):n=否c=z=0而c<1:z=2*z+n%2c+=(-1)**nn=地板(n/2)返回zdef BinTreeLeftBranch(n):返回NextSubBinTree(楼层(n/2))def BinTreeRightBranch(n):return NextSubBinTree(floor(n/(2**(1+a070939(BinTreeLeftBranch(n))))))定义反射BinTreeAux(n):a=反射BinTree2(BinTree左分支(n))b=反射BinTree2(BinTree右分支(n))返回2**(a070939(b)+a070929(a))+b*(2**a070939a(a)def ReflectBinTree2(n):如果n==0,则返回0,否则ReflectBinTreeAux(a030101(n))def ReflectBinTree(n):返回ReflectBinTree2(n)/2定义a057163(n):返回a080300(ReflectBinTree(a014486(n)))定义a057164(n):返回a080300(a036044(a014486(n)))定义a057506(n):返回a057163(a057164(n))定义a(n):返回a057506(a057507(n))打印[a(n)表示x范围内的n(101)]