(Python)
来自itertools导入产品
定义qf:
对于范围(1,len(s)//4+1)中的l:
对于范围内的i(长度-4*l+1):
如果s[i:i+l]==s[i+l:i+2*l]==s[i+2*l:i+3*l]==s[i+3*l:i+4*l]:
返回False
return True
定义a(n):
如果n==0:返回1
如果qf(“0”+“”.join(w)),则返回2*sum(1代表产品中的w(“01”,repeat=n-1))
(Python)#更快,但>内存,用于序列初始段的版本
def iqf(s):#增量4th-无功耗
对于范围(1,len(s)//4+1)中的l:
如果s[-4*l:-3*l]==s[-3*l:-2*l]==s[-2*l:-l]==s[-l:]:
返回False
return True
定义aupton(nn,verbose=False):
alst,qfs=[1],设置(“0”)
对于范围(1,nn+1)中的n:
an=2*len(qfs)
qfsnew=设置(如果iqf(q+i),则qfs中q的q+i代表“01”中i的q)
alst,qfs=alst+[an],qfsnew
如果详细:打印(n,an)
返回alst