r“”OEIS序列号A005132的Python模块。里卡曼序列:a(0)=0;对于n>0,a(n)=a(n-1)-n如果该数字为正数且不在序列中,否则a(n)=a(n-1)+n。使用示例。----------------------------------------------------------------------->>>从005132导入*>>>打印005132_list(16)[0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24]>>>打印005132_offset0>>>对于a005132_list_pairs(6)中的x:…打印x...(0, 0)(1, 1)(2, 3)(3, 6)(4, 2)(5, 7)>>>打印a005132(3)6-----------------------------------------------------------------------"""从itertools导入islice、izip、count__all__=('005132_offset','005132_list','a005132_list_pairs','aw132','a005132_gen')__author__='尼克·霍布森'a005132_offset=偏移=0定义a005132_gen(发电机):“”“用于“Recaman变换”的生成器函数。”“”s、 x=设置(),0发电机下一个()对于发电机中的t:收益率xx=x-t,如果x-t>0且x-t不在s中,则x+ts.添加(x)定义a005132_list(n):“”“返回OEIS序列A005132的第一个n>=0项的列表。”“”如果n<0:引发ValueError,则“输入必须是非负整数”返回列表(islice(a005132_gen(count()),n))定义a005132_list_pairs(n):“”“返回第一个n>=0项的元组(n,a(n))列表。”“”如果n<0:raise ValueError,'输入必须是非负整数'返回列表(izip(xrange(offset,n+offset),a005132_gen(count()))定义a005132(n):“”“返回索引n>=0;偏移量为0的术语。”“”如果n<offset:raise ValueError,'输入必须是整数>=offset='+str(offset)返回列表(islice(a005132_gen(count()),n-offset,n-offset+1)).pop()