#A055547:2、8、68。。。##下面的代码快速计算这些序列中较高的条目,#通过递归添加行和列。行r_i、r_j和列#ci,cj,其中内积#不相等,则可以在早期阶段丢弃。为了加快速度,#前三个函数可以使用Cython进行预编译。%赛马定义ip(v1,v2):返回和(范围内i的[v1[i]*v2[i](len(v1))])定义ips(Lr,Lc):flag=真i=0while标志和i<=len(Lr)-1:如果ip(Lr[i],Lr[-1])!=ip(Lc[i],Lc[-1]):返回Falsei+=1return True定义rc(Ltup,n):m=长度(Ltup)r=范围(m-1)内i的[Ltup[i][n-m]+Ltup[-1][n-m:]c=升程[-1][:n-m+1]+[升程[m-2-i][n+2-m+2*i],对于范围(m-1)内的ic.反转()返回r,c%圣人条目=[0,1]定义NrMat(Ltup,Lr,Lc,n):如果ips(Lr,Lc):m=长度(Lc)如果m==n:返回1其他:N=0L0=[范围(2*n-1-2*m)中i的条目]对于cartesian_product_iterator(L0)中的tup:Ltup1=Ltup+[list(tup)]r、 c=rc(Ltup1,n)N+=NrMat(长度1,Lr+[r],Lc+[c],N)返回N返回0为范围(1,4)中的n打印[NrMat([],[],[],n)]