r“”OEIS序列号A000120的Python模块。1的计数序列:n的二进制展开中1的个数。使用示例。----------------------------------------------------------------------->>>从a000120导入*>>>打印000120_列表(20)[0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3]>>>打印000120_偏移0>>>对于a000120_list_pairs(6)中的x:…打印x...(0, 0)(1, 1)(2, 1)(3, 2)(4, 1)(5, 2)>>>打印a000120(4)1-----------------------------------------------------------------------"""从itertools导入islice,izip__all__=('000120_offset','a000120_list','a000120_list_pairs','an000120')__author__='尼克·霍布森'a000120_offset=偏移=0数字={“0”:0,“1”:1,“2”:1,“9”:2,“a”:2定义a000120_list(n):“”“返回前n>=0个术语的列表。”“”如果n<0:raise ValueError,'输入必须是非负整数'a=[0]*n如果n<2:返回aa[1]=t=1而t<n:对于x范围(t,t+t)中的m:如果m+m<n:a[m+m]=a[m]else:中断如果m+m+1<n:a[m+m+1]=a[m]+1else:中断t+=t返回a定义a000120_list_pairs(n):“”“返回第一个n>=0项的元组(n,a(n))列表。”“”如果n<0:raise ValueError,'输入必须是非负整数'返回列表(zip(xrange(偏移量,n+offset),a000120_list(n)))定义a000120(n):“”“返回索引n>=0;偏移量为0的术语。”“”如果n<offset:raise ValueError,'输入必须是整数>=offset='+str(offset)返回和(十六进制(n)[2:]中x的数字[x])