;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; http://www.research.att.com/~njas/sequences/juggling.scm.txt;;;; ;;;;由Antti Karttunen编码(Antti.Karttune(-AT-)iki.fi),2003;;;; ;;;;此文件包含计算序列的方案函数;;;;A084449-A084470、A084489-A084530和A084555-A084557已提交给;;;;尼尔·斯隆的整数序列在线百科全书(OEIS);;;;和位于http://www.research.att.com/~njas/sequences/;;;; ;;;;此源文件的副本也位于:;;;; 网址:http://www.iki.fi/~karttu/matikka/Schemuli/杂耍.scm;;;; ;;;;此方案代码位于公共域中并运行(至少);;;;在MIT Scheme Release 7.7.x中,可以找到文档;;;和预编译的二进制文件(适用于在中运行的各种操作系统;;;;Intel x86体系结构)位于URL:;;;; http://www.swiss.ai.mit.edu/projects/scheme(瑞士)/ ;;;; ;;;;这应该是一个独立模块。 ;;;; ;;;;请注意,此处提到的“Polster的书”是指:;;;;Burkard Polster,《拼凑的数学》,施普林格-弗拉格出版社,2003年。 ;;;; ;;;;如果您想计算,请随意在此处添加更多代码;;;;例如,2个、4个和5个球的相应序列。 ;;;;将编辑后的版本发送到我的地址;;;;(主题为“TOPIC:Juggling.scm.txt”);;;;或Neil在njas(-at-)research.att.com的地址;;;;以便附件;;;; http://www.research.att.com/~njas/sequences/juggling.scm.txt;;;;保持最新。 ;;;; ;;;;上次编辑时间2。2003年6月,Antti Karttunen。 ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;在我的系统中,我将其定位为C:\matikka\Schemuli\juggling.scm;;因此我可以将其加载为:;;(加载“c:\\matikka\\Schemuli\\jugging.scm”);;;;或编译为:;;(cf“c:\\matikka\\Schemuli\\juggling.scm”“c:\\matikka\\Schemauli\\”);;然后将编译后的图像加载为:;;(加载“c:\\matikka\\Schemuli\\juggling.com”);;;; (声明(通常整合));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;复制自网址:http://www.iki.fi/~kartturi/matikka/Schemuli/definech.scm;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定义一元缓存函数。语法如下;;(定义(函数参数)。..)方案。;;请注意,此函数和其他缓存函数依赖于MIT方案;;特性,例如向量被初始化为包含#f;;而且,f实际上和()是一回事。待更正。;;已添加此10。2002年7月,避免分配灾难;;是由于粗心使用缓存的整数函数导致的:(定义*MAX-CACHE-SIZE-FOR-DEFINEC*290512);;是131072(定义语法定义(语法规则()((定义(名称参数)e0)。..)(定义名称(letrec((_缓存_(向量#f#f#f#f#f#f#f#f#f#f#f#f#f#f))(姓名(λ(arg)(cond((null?arg)_cache_)((>=arg*最大尺寸-尺寸-定义*)电子0。..)(否则(如果(>=arg(矢量长度缓存))(设置!_缓存_(矢量增长_高速缓存_(最小值*最大尺寸-定义值*(最大值(1+arg)(*2(矢量长度_cache_)))))))(或(vector-ref_cache_arg)(λ(res)(向量集!缓存参数资源)物件)(开始e0…)))));条件)));letrec-定义名称);let录制) ;;(定义名称…))) ;;句法规则);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;复制自网址:http://www.iki.fi/~kartturi/matikka/Schemuli/lstfuns1.scm;;;;(总是有用!);;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(定义(compose-funs.funlist)(cond((null?funlist)(λ(x)x))(else(lambda(x)((car funlist)((应用compose-funs(cdr-funnist))x))))(定义reversed_iota(λ(n)(如果(零?n)(列表)(cons n(反向为iota(-n 1))))))(定义iota(lambda(n)(reverse!(reversed_ota n)))(定义(iota0到n)(let循环((n upto_n)(结果(列表)))(cond((零?n)(cons 0结果))(else(循环(-n 1)(cons n结果)))));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;复制自网址:http://www.iki.fi/~kartturi/matikka/Schemuli/intfuns1.scm;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(定义(first_pos_with_funs_val_gte函数n)(let循环((i 0))(如果(>=(fun i)n)i(回路(1+i)))))(定义(二项式n_2n)(/(*(-1+n)n)2));;由于;;IEEE 64位浮点数的精度有限。;;这是什么意思,以及如何使用严格的fixnum-only重新编码;;方式?(我需要一个fixnum-only平方根算法……)(定义(A025581 n);;方形{0..inf}数组的X分量(列)(-(二项式n_2(1+(楼面->精确(flo:+0.5(flo:sqrt(精确->不精确(*2(1+n)))));;(地图A002262(坐标0(iota 20)))-->(0 0 1 0 1 2 0 1 2 3 0 1 2 4 0 1 3 4 5)(定义(A002262 n);;方形{0..inf}数组的Y分量(行)(-n(二项式n_2(楼面->精确(flo:+0.5(flo:sqrt(精确->不精确(*2(1+n)))))(定义(A002024 n);;从n=1开始,重复n次。(地板->精确(+(/12)(平方米(*2n))))(定义(A003056 n);;从n=0开始,重复n+1次。(楼层->精确(-(平方(*2(1+n)))(/1 2))))(定义(A000265 n)(/n(A006519 n));;从n中删除2s;或n的最大奇数除数。(定义(A006519 n);;2除以n的最高幂:1,2,1,4,1,2,1,8,1,2,4,1,2,1,16(秒((零?n)0)(else(let循环((n n)(i 1))(cond((奇数?n)i)(其他(循环(地板->精确(/n 2))(*i 2))))))));;注意(A007814 33574912)=12。(定义(A007814 n);;A006519的指数。(秒((零?n)0)(else(let循环((n n)(i 0))(cond((奇数?n)i);;(else(循环(修复:lsh n-1)(1+i));;危险代码。(其他(循环(地板->精确(/n 2))(1+i)))))))(定义(A007088 n);; 0,1,10,11,100,101,110,111,1000,...(以十进制显示二进制形式)(让循环((z 0)(i 0)(n n))(如果(零?n)z(z)(循环(+z(*(导出10i)(模n 2)))(1+i)(地板->精确(/n 2))))));;基于一个:(定义(A018900 n)(+(导出2(A002024 n))(导出2)(A002262(-1+n)));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;一些异步的无限杂耍序列,具有状态和;;;;throw-hights(即通常的“siteswap”表示法)。 ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(定义(N2Z n)(*(导出-1 n)(楼层->精确(/n 2)))(定义(Z2n z)(+(*2(abs z)))(如果(不是(正?z))1 0));;(注意零不是正数。);;(地图N2Z(iota 30));; (0 1 -1 2 -2 3 -3 4 -4 5 -5 6 -6 7 -7 8 -8 9 -9 10 -10 11 -11 12 -12 13 -13 14 -14 15);;基本上是A001057,但使用偏移量=1而不是0。;;这六个是基于一的:(定义A065164(组合式Z2N 1+N2Z))(定义A065165(组合式Z2N 1+1+N2Z))(定义A065166(组合式Z2N 1+1+1+N2Z))(定义A065168(组合式Z2N-1+N2Z))(定义A065169(组合式Z2N-1+-1+N2Z))(定义A065170(组合式Z2N-1+-1+-1+N2Z));;例如:;(地图A065166(iota 20))-->(6 8 4 10 2 12 1 14 3 16 5 18 7 20 9 22 11 24 13 26);;(地图A065170(iota 20))-->(7 5 9 3 11 1 13 2 15 4 17 6 19 8 21 10 23 12 25 14)(定义(反射到Z,通过运行Z)(cond((零?z)z);;在节拍0处进行零掷。((正?z)(throw-fun z))(else;;在零之前跳动。。。(let循环((i(-z)))(秒((零?i)(*2(-z)))(=(+i(通过式i))(-z))(-(-z)i))(else(循环(-1+i)))) )));;应用“交错序列的逆”思想;;(见Polster的书,第25-27页)到无限排列:;;(这一个用于3球序列。)(定义(反射到Z-b3通过运行permfun Z)(cond((正?z)(throw-fun z))((<=(-z)3)(*2(-z))(其他(throw-fun(permfun(-(-z)3)))));; 84449 --- 84463.(定义(A084449 n);;A084451中7的位置(基态)。(秒((零?n)n)(否则(让回路((i(1+(A084449(-1+n))))(条件((=(A084451 0)(A08445 1 i))i)(else(循环(1+i)))))));;A084449的第一个差异:(定义(A084465 n)(-(A084449(1+n))(A084449 n))(定义(A084450 n)(A007088(A084451 n))(定义(A084451 n)(如果(零?n)7 ;;三个球(钻头)的地面状态。(/(-1+(+(A084451(-1+n)))(导出2(A0844.52 n))2)));;(定义(A084451v2 n);;旧版本。;;(条件((零?n)7);;三个球(位)的接地状态。;;(其他(+(楼层->精确(/(A084451v2(-1+n))2));;(楼层->精确(导出2(-(A084452 n)1));; );; );; );; );; (定义(A084452 n);;单基:4,4,4,1,5,5,0,0,6,3,5,(let(预状态(A084451(-1+n)))(第二((偶数?prevstate)0);;必须掷零!(否则;;(调用-当前包含;;(λ(返回)(让外循环(t 1))(cond(偶数?(地板->精确(/prevstate(expt 2 t)));;自由位置?(让inloop((c(+(floor->exact(/prevstate 2)))(出口2(-1+t))))(i(-1+n)))(cond((<i 0)t);;(返回t)((=c(A084451 i))(外循环(1+t))(其他(inloop c(-1+i)))))(其他(outloop(1+t))));; );; )))))(定义(A084453 n)(-(+n(A08445 2 n))3))(定义(A084454 n)(let loop((i 1)))(cond((=n(A08445 3 i))i)(else(loop(1+i))));;反转为A084466。(定义A084455(组合式Z2N(λ(z)(+z(反射到z A084452 z))N2Z公司))(定义A084455v2(组合式Z2N(λ(z)(+z(反射到-z-b3 A084452 A084454 z))N2Z公司))(定义(A084466 n)(let loop((i 1)))(cond((=n(A084455 i))i)(else(loop(1+i))));;;;;;;;;;;;(定义(A084456 n)(A007088(A0844.57 n))(定义(A084457 n)(如果(零?n)7 ;;三个球(钻头)的地面状态。(/(+-1(A084457(-1+n))(出口2(A0844.58 n)))2)))(定义(A084458 n);;单基:4,4,6,0,5,8,0,0,3,7,0,7,7,9,0,6,7,0,10,10,。..(let(预状态(A084457(-1+n)))(第二((偶数?prevstate)0);;必须掷零!(否则(让外循环(t 1))(cond(偶数?(地板->精确(/prevstate(expt 2 t)));;自由位置?(让inloop((c(A000265(+(floor->exact(/prevstate 2))))(出口2(-1+t)))))(i(-1+n)))(秒((<i 0)t)((=c(A084457 i))(外循环(1+t))(其他(inloop c(-1+i)))))(其他(outloop(1+t))))))))(定义(A084459 n)(-(+n(A084458 n))3))(定义(A084460 n)(let loop((i 1)))(cond((=n(A084459 i))i)(else(loop(1+i))))(定义A084461(组合式Z2N(λ(z)(+z(反射到z A084458 z))N2Z公司))(定义A084461v2(组合式Z2N(λ(z)(+z(反射到z-b3 A084458 A084460 z))N2Z公司))(定义(A084462 n)(let loop((i 1)))(cond((=n(A08446 1 i))i)(else(loop(1+i))));;基于一个:(定义(A084463 n);;84457中偶数状态的位置,即A084458-1中的零。(条件((=1n)3)(否则(让回路((i(1+(A084463(-1+n))))(条件(偶数?(A084457 i))i)(else(循环(1+i)))))));;84457中奇数状态的位置,即A084458-1中的非零throws。以个人为基础。(定义(A084464 n)(秒((=1n)0)(否则(让回路((i(1+(A084464(-1+n))))(条件((奇数?(A084457 i))i)(else(循环(1+i)))))));;基于一个:(定义(A084467 n)(A084457(A08446 n));;(地图A084467(iota 22));; (7 11 13 19 25 35 21 37 41 69 49 67 97 131 73 137 81 133 161 261 193 259);;(保持匹配项(映射A084457(iota0 64))奇数?);; (7 11 13 19 25 35 21 37 41 69 49 67 97 131 73 137 81 133 161 261 193 259 145 265 289);;基于一个:(定义(A084468 n)(1+(*2(A018900 n)));;(地图A084468(iota 22));; (7 11 13 19 21 25 35 37 41 49 67 69 73 81 97 131 133 137 145 161 193 259)(定义(A084469 n)(让回路((x(A084467 n))(i 1))(秒((=x(A084468 i))i)(else(循环x(1+i)))))(定义(A084470 n)(让回路((x(A084468 n))(i 1))(条件((=x(A084467 i))i)(else(循环x(1+i)))));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;依次从地面开始和返回地面的较大环路;;;;状态(具有各种条件)。 ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;此实现非常简单。;;合并函数会更有效;;下一个测试矢量!还有gs2gs?一起,别说了;;关于存在_unranking _算法的事实;;对于type=0的地面状态序列,除了我担心;;我们找不到会返回;;按升序排列的序列。;;见Polster的书,第28-29页,了解Martin Probert的;;“选择图案程序”,或:;;马丁·普罗伯特。四球对打。由Veronika Probert出版,英国,1995年。;;;;(即使有这个缺点,直接取消分级算法也很有用;;例如,计算A084529的项时)。;;(定义(vec-to-ec电视)(let循环((i 0)(s 0))(cond((=(矢量长度tv)i)s)(其他(循环(1+i)(+(*10s)(矢量参考tv i))))));;tv是一个向量,p=(向量长度tv),i=运行索引,初始值为0。;;(最后可能?(矢量)2 0 0)-->#t;;(最后可能的?(矢量3)3 1 0)-->#t;;(最后可能?(向量3 1)3 2 0)-->#t;;(最后可能?(向量5 3 1)5 3 0)-->#t;;(最后可能?(向量6 4 2 0)6 4 0)-->#t;;(最后可能?(向量7 5 3 1 0)7 5 0)-->#t;;(最后可能?(向量8 6 4 2 0)8 6 0)-->#t(定义(最后可能?tv u p i)(条件((=i p)#t)((=(矢量参考tv i)u)(最后可能?tv(最大值(-u 2)0)p(1+i)))(其他#f)))(定义(下一测试矢量!tv b);;b是球的数量。(let(p(矢量长度tv));;我们(子)模式的时期。(秒(最后可能?tv(+p(-1+b))p0)(make-vector(1+p)b);;返回一个元素更长的向量[b,b,b…,b])(else;;以里程表为基准从右向左递增:(let循环((i(-1+p))(ub))(秒((<i 0))(错误“next-test-vector!should not occurrent:tv=”tv“i=”i“u=”u“b=”b))(=(矢量参考tv i)u);;最高职位。这个方法的价值?(矢量集!tv i 0);;替换为零抛(回路(-1+i)(1+u));;继续向左。)(else;;找到一个尚未达到最大高度的位置。(矢量集!tv i(1+(矢量参考tv i));;增量电视;;然后返回。)))))));;;;上面的工作原理是这样的。;;或者,我们可以取b的倍数!,;;并丢弃b-1最低有效数字(零);;来自它们的阶乘展开。;;;;(begin(set!v(next-test-vector!(vector)3))v)-->#(3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 3 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 4 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 4 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 4 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 4 3);;(开始(set!v(next-test-vector!v 3))v)-->#(4 0 0);;(开始(set!v(next-test-vector!v 3))v)-->#(4 0 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 0 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 0 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 1 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 1 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 1 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 1 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 2 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 2 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 2 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 2 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 3 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 3 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 3 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 3 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 4 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 4 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 4 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(4 4 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 0 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 0 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 0 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 0 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 1 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 1 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 1 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 1 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 2 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 2 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 2 2);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 2 3);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 3 0);;(开始(设置!v(下一个测试向量!v 3))v)-->#(5 3 1);;(开始(设置!v(下一个测试向量!v 3))v)-->#(3 3 3 3);; ;;type=0:一切正常。;;type=1:中间不允许有接地状态。;;type=2:不应访问任何状态两次(即仅收集“主要”循环)。;;(gs2gs?(矢量3)30)-->#t;;(gs2gs?(矢量3 3)30)-->#t;;(gs2gs?(矢量3 3 3)3 0)-->#t;;(gs2gs?(矢量3 3 3)3 1)-->();;(gs2gs?(矢量3 3 3)3 2)-->();;(gs2gs?(矢量42)30)-->#t;;(gs2gs?(矢量4 2)3 1)-->#t;;(gs2gs?(矢量4 2)3 2)-->#t;;(gs2gs?(矢量4 2 3)3 0)-->#t;;(gs2gs?(矢量4 2 3)3 1)-->();;(gs2gs?(矢量4 2 3)3 2)-->();;(gs2gs?(矢量4 4 1)3 0)-->#t;;(gs2gs?(矢量4 4 1)3 1)-->#t;;(gs2gs?(矢量4 4 1)3 2)-->#t;;(gs2gs?(矢量5 3 1)3 0)-->#t;;(gs2gs?(矢量5 3 1)3 1)-->#t;;(gs2gs?(矢量5 3 1)3 2)-->#t;;(gs2gs?(矢量4 5 1 2)3 0)-->#t;;(gs2gs?(矢量4 5 1 2)3 1)-->#t;;(gs2gs?(矢量4 5 1 2)3 2)-->()(定义(gs2gs?tv b型)(设((gs(-1+(expt 2b)));;基态,例如b=3时为7。(p(矢量长度电视);;我们尝试模式的时期)(let循环(s gs)(i 0)(已访问(列表)));;完成后,仅当我们返回到基态时才返回true:(秒((=i p)(=s gs))(否则(let((tt(矢量参考tv i)))(条件(和(=1类型)(>i 0)(=s gs))#f)(和(=2种类型)(访问的内存数量))#f)((和(偶数)(非(零?tt))#f);;应为零抛!(不(偶数?(地板->精确(/s(出口2tt))))#f;;碰撞!)(否则(回路(地板->精确(/(+s(expt 2tt))2))(1+i)(如果(=2类)(访问了cons)访问了))))))) ;;康德) ;;let循环))(定义(第n个成功测试向量-3-0 n)(条件((零?n)(矢量))(否则(让循环(tv(next-test-vector!(矢量复制(第n次成功测试矢量-0(-1+n)))))(cond((gs2gs?tv 30)电视)(else(循环(下一测试矢量!tv 3)))))));;不像上面那样有无数个简单函数,;;我们现在有下面给出的复杂函数定义函数,;;我们可以将其重新用于所有可能的变体。;;例如,我们可以将上述函数的副本定义为:;;(定义另一个第n个成功测试向量3-0;;(cacfun-for-nh-successful-test-vec 30);; );;(定义(cacfun-for-nh-successful-test-vec球类型)(letrec((_缓存_(向量#f#f#f#f#f#f#f#f#f#f#f#f#f#f))(belgthor;;我们在这里定义和返回的函数。(λ(n)(条件((非(整数?n))缓存);;只是为了调试。(否则(如果(>=n(向量长度_cache_))(设置!_缓存_(矢量增长缓存_(最大值(1+n)(*2(向量长度_缓存_))))))(或(vector-ref _cache n)(λ(结果)(向量集!缓存n结果)结果)(条件((零?n)(矢量))(否则(让循环(tv(next-test-vector!(矢量复制(belgthor(-1+n)))))(cond((gs2gs?tv球型)tv)(否则(循环(下一测试矢量!电视球))))))) ;;lambda-form的调用) ;;) ;;其他) ;;康德);λ(n))) ;;letrec-定义。比利时) ;;letrec公司);;我们真正应该拥有的是宏,它将扩展到;;this,其调用的正文部分作为参数插入;;到那个内部的羔羊形态。;;即宏,我们可以用它定义返回;;lambda-forms(缓存其唯一参数)。(定义(cacfun-for-posfun-fun-start-from elem)(letrec((_缓存_(向量#f#f#f#f#f#f#f#f#f#f#f#f#f#f))(tvimadur;;我们在这里定义并返回的函数。(λ(n)(条件((非(整数?n))缓存);;只是为了调试。(否则(如果(>=n(向量长度_缓存_))(设置!_缓存_(矢量增长缓存_(最大值(1+n)(*2(向量长度_缓存_))))))(或(vector-ref _cache n)(λ(结果)(向量集!缓存n结果)结果)(秒((=从n开始)n)(否则(让循环(i(如果(=从n开始))n个(1+(tvimadur(-1+n)))))(cond((=(fun i)元素)i)(else(循环(1+i))))))) ;;lambda-form的调用) ;;) ;;其他) ;;康德);λ(n))) ;;letrec-定义。特维马杜尔) ;;letrec公司)(定义第n个成功测试-vec-3-0(cacfun-for-nh-successful-test-vec-30))(定义第n个成功测试-vec-3-1(cacfun-for-nh-successful-test-vec-31))(定义第n个成功测试-vec-3-2(cacfun-for-nh-successful-test-vec-32));;84489---84530为我们保留。;;非负整数和自然数的前12个置换;;由这三个无限的站点交换序列引起:;;基于一个:(定义(A084489 n)(-(+n(A084501 n))3))(定义(A084490 n)(let loop((i 1)))(cond((=n(A084489 i))i)(else(loop(1+i))))(定义A084491(组合式Z2N(λ(z)(+z(反射到z A084501 z))N2Z公司))(定义A084491v2(组合式Z2N(λ(z)(+z(反射到z-b3 A084501 A084490 z))N2Z公司))(定义(A084492 n)(let loop((i 1)))(cond((=n(A08449 1 i))i)(else(loop(1+i))));;;;;;;;;;;;;(定义(A084493 n)(-(+n(A084511 n))3))(定义(A084494 n)(let loop((i 1)))(cond((=n(A08449 3 i))i)(else(loop(1+i))))(定义A084495(组合式Z2N(λ(z)(+z(反射到z A084511 z))N2Z公司))(定义A084495v2(组合式Z2N(λ(z)(+z(反射到z-b3 A084511 A084494 z))N2Z公司))(定义(A084496 n)(let loop((i 1)))(cond((=n(A08449 5 i))i)(else(loop(1+i))));;;;;;;;;;;;;(定义(A084497 n)(-(+n(A084521 n))3))(定义(A084498 n)(let loop((i 1)))(cond((=n(A08449 7 i))i)(else(loop(1+i))))(定义A084499(组合式Z2N(λ(z)(+z(反射到z A084521 z))N2Z公司))(定义A084499v2(组成函数Z2N(λ(z)(+z(反射到z-b3 A084521 A084498 z))N2Z公司))(定义(A084530 n)(let loop((i 1)))(cond((=n(A084499 i))i)(else(loop(1+i))));;Siteswap-sequences(throws):A084501、A084511、A084521;;Siteswap-sequences(有限十进制符号):A084502、A084512、A084522;;关联的状态序列(十进制表示法):A084503、A084513和A084523;;关联的状态序列(二进制表示法):A084504、A084514和A084524;;下一个的部分和:A084505、A084515、A084 525;;每个gs->gs站点swap-子模式的长度,~以上-6的第一个差异;;A0845[0-2]1:-7中n的第一个位置;;1在其中的位置。 -8;;它们的第一个差异(~统计每个时段的站点交换数量)-9;;除州序列或另有说明外,所有都是基于一的。;;这些说明了在哪个站点交换子模式(如A0845所示{0,1,2}2);;是A0845的第n项{0-2}1:(定义(A084500 n)(第一个pos_with_funs_val_gte A084505 n))(定义(A084510 n)(first_pos_with_funs_val_gte A084515 n))(定义(A084520 n)(第一个pos_with_funs_val_gte A084525 n));;(等于?(地图A084510(iota 64))(地图A084 520(ioda 64)))-->#t;;(A084510 65)-->19;;(A084520 65)-->18(定义(A084501 n)(矢量参考(第n次成功测试-第3-0次(A084500 n))(-n(1+(A084505(-1+(A08.4500 n))))))(定义(A084511 n)(矢量参考(第n次成功测试-第3-1次(A084510 n))(-n(1+(A084515(-1+(A084 510 n))))))(定义(A084521 n)(矢量参考(第n次成功测试-第3-2次(A084520 n))(-n(1+(A084525(-1-(A084520 n))))));;Siteswap-sequences(有限十进制符号):A084502、A084512、A084522(定义A084502(compose-funs vec-to-dec nth-successful-test-vec-3-0)(定义A084512(compose-funs vec-to-dec nth-successful-test-vec-3-1)(定义A084522(组成funs vec到dec nth-successful-test-vec-3-2));;这些是从零开始的:(定义(A084503 n)(条件((零?n)(-1+(导出23)));;7=三个球(位)的地面状态。(其他(/(+-1(A084503(-1+n)))(导出2(A084501 n))2))))(定义(A084513 n)(条件((零?n)(-1+(导出23)));;7=三个球(位)的地面状态。(其他(/(+-1(A084513(-1+n)))(导出2(A08451 n))2))))(定义(A084523 n)(条件((零?n)(-1+(导出23)));;7=三个球(位)的地面状态。(其他(/(+-1(A084523(-1+n)))(导出2(A0845.21 n))2))));;以及:(定义A084504(组合框A007088 A084503))(定义A084514(组合框A007088 A084513))(定义A084524(组合框A007088 A084523));;下一个数的部分和,从零开始。(定义(A084505 n)(如果(零?n)n(+(A08450 5(-1+n))(A08450.6 n)))(定义(A084515 n)(如果(零?n)n(+(A084551(-1+n))(A0845126 n)))(定义(A084525 n)(如果(零?n)n(+(A08452(-1+n))(A0841526 n)));;A084506(130)=6(定义A084506(合成-运行向量长度n个-成功-测试-矢量-3-0))(定义A084516(合成-运行向量长度n-成功-测试-秒-3-1))(定义A084526(合成-运行向量长度n-成功-测试-矢量-3-2));;基于零,A0845[0-2]1中n的第一次出现:(定义(A084507 n)(let loop((i 1)))(cond((=n(A084501 i))i)(else(loop(1+i))))(定义(A084517 n)(let loop((i 1)))(cond((=n(A0845121 i))i)(else(loop(1+i))))(定义(A084527 n)(let loop((i 1)))(cond((=n(A08452 1 i))i)(else(loop(1+i))));;charfun-for-A084508首次与A007489的特征函数不同;;当n=129时(其中前者的值为1,后者的值为下次;;n=153时值为1。);;不要提交这三个,OEIS中已经有足够的失败:(定义(字符为A084508 n)(-(A084506(1+n))(A08450.6 n))(定义(charfun-for-A084518 n)(-(A084516(1+n))(A0845126 n))(定义(charfun-for-A084528 n)(-(A084526(1+n))(A08452 n))(定义A084449v2(针对posfun的cacfun A084451 0 7));;请参阅;; http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=A007489;;(阶乘的部分和,和k!,k=1..n.0,1,3,9,33153,;;(地图A084508(iota 7))-->(1 3 9 33 129 513 2049)(定义(A084508 n)(如果(零?n)n(+(A08450.8(-1+n))(A0845009 n)))(定义A084508v2(cacfun-for-posfun-charfun-for-A084508 1 1))(定义A084518(cacfun-for-posfun-charfun-for-A084518 1 1))(定义A084528(cacfun-for-posfun-charfun-for-A084528 1 1));;第一个基本上等同于:1,2,然后是:(检查n=8->6144)。;;A002023=6,24,9638415366144245769830439321615728646291456,。.. ?;;名称:6*4^n。;;是的,请参阅Burkard Polster,《拼凑的数学》,Springer-Verlag出版社,2003年,第48页。;;(国际标准书号0-387-95513-5);;这些不在OEIS中:;;(地图A084509(iota 8))-->(1 2 6 24 96 384 1536 6144 24576);;(地图A084519(iota 7))-->(1 1 3 13 47 173 639 2357 8695);;(地图A084529(iota 7))-->(1 1 3 12 42 142 502 1702 5878)(定义(A084509 n)(如果(<n 4)(!n)(*4(A08450.9(-1+n))))(定义(A084509v2 n)(如果(=1 n)(A08450 8 1)(-(A08450.8 n)(P084508(-1+n))))(定义(A084519 n)(如果(=1 n)(A08451 1)(-(A0845128 n)(P084518(-1+n))))(定义(A084529 n)(如果(=1 n);;Maple代码:;;;;A084509:=n->`如果`((n<4),n!,6*(4^(n-3));;;使用(组合);A084519:=过程(n)选项记忆;局部c,i,k;;;A084509(n)-添加(添加(mul(A084519(i),i=c),c=成分(n,k)),k=2..n);;;结束;;;;;是否有更简单的方法定义A084519???;;另请参见http://www.cs.brandeis.edu/~ira/papers/enum.pdf第8页;;对于不可分解排列(A003319),以及它们的g.f.:;;>powseries[powcreate](f(n)=n!):tps形式(f,x,8);;; ;; 2 3 4 5 6 7 8;;1+x+2x+6x+24x+120x+720x+5040x+O(x);; ;;>g:=幂级数[逆](f):tps形式(g,x,8);;; ;; 2 3 4 5 6 7 8;;1-x-x-3 x-13 x-71 x-461 x-3447 x+O(x);; ;; > ;;>powseries[powcreate](h(n)=`if`((n<4),n!,6*(4^(n-3))):粉末[tpsform](h,x,8);;; ;; 2 3 4 5 6 7 8;;1+x+2x+6x+24x+96x+384x+1536x+O(x);; ;;>j:=幂级数[逆](h):幂级数[tpsform](j,x,9);;; ;; 2 3 4 5 6 7 8 9;;1-x-x-3 x-13 x-47 x-173 x-639 x-2357 x+O(x);; ;;>[序列(A084509(n),n=1..12)];;; ;; [1, 2, 6, 24, 96, 384, 1536, 6144, 24576, 98304, 393216, 1572864];; ;;>[序列(A084519(n),n=1..12)];;; ;; [1, 1, 3, 13, 47, 173, 639, 2357, 8695, 32077, 118335, 436549];; ;;>内底([seq(A084509(n),n=1..12)]);;; ;; [1, 1, 3, 13, 47, 173, 639, 2357, 8695, 32077, 118335, 436549];; ;;>反转([seq(A084519(n),n=1..12)]);;; ;; [1, 2, 6, 24, 96, 384, 1536, 6144, 24576, 98304, 393216, 1572864];;;; 84551 --- 84560;;基于零,在A084452和A084458中首次出现n:;;是否曾经发生过2?从n=3开始计算。尚未提交。;;(定义(A084552 n)(let loop(i 1))(cond((=n(A084452 i))i)(else(loop(1+i))));;(定义(A084558 n)(let loop(i 1))(cond((=n(A084458 i))i)(else(loop(1+i))));;还有更多。;;基于零:(定义(!n)(如果(零?n)1(*n(!(-1+n))));;A000142号(定义(A007489n)(如果(零?n)0(+(!n)(A007499(-1+n))))(定义(A084555 n)(如果(零?n)0(+(A0845506 n)(A08455(-1+n)));;下一次PSUM(定义(A084556 n)(first_pos_with_funs_val_gte A007489 n);;n发生n!次。(定义(A084557 n)(first_pos_with_funs_val_gte A084555 n);;n发生A084556(n)次;;(等于?(地图A084505(iota0 129));;(A084505 130)-->605;;(A084555 130)-->604;;(等于?(地图A084500(iota0 604));;(A084500 605)-->130;;(A084557 605)-->131;;(等于?(地图A084506(iota0 130))(地图A084 556(iota 130))-->();;(A084506 130)-->6;;(A084556 130)-->5;;(output-check-html“C:\\matikka\\seqs\\juggling.htm”检查杂耍119 45#f)(定义支票杂耍(列表;;排列:(列表120 1 84469 A084469 AO84470)(列表120 1 84470 A084470 P084469)(列表120 1 84453 A084453 A084454)(列表120 1 84454 A084454 AO84453)(列表120 1 84455 A084455 P084466(列表A084455v2))(列表120 1 84466 A084466 AO84455)(列表120 1 84459 A084459 AO84460)(列表120 1 84460 A084460和A084459)(列表120 1 84461 A084461 P084462(列表A084461v2))(列表120 1 84462 A084462 AO84461)(列表120 1 84489 A084489 AO84490)(列表120 1 84490 A084490 P084489)(列表120 1 84491 A084491 A084492(列表A084491v2))(列表120 1 84492 A084492 P084491)(列表120 1 84493 A084493 P084494)(列表120 1 84494 A084494 AO84493)(列表120 1 84495 A084495 P084496(列表A084495v2))(列表120 1 84496 A084496 P084495)(列表120 1 84497 A084497 P084498)(列表120 1 84498 A084498 P084497)(列表120 1 84499 A084499 P084530(列表A084499v2))(列表120 1 84530 A084530 P084499);;其他,与A084452和A084458相关:(列表15 0 84449 A084449#f(列表A084449v2))(列表14 0 84465 A084465)(列表80 0 84450 A084450)(列表100 0 84451 A084451)(列表120 1 84452 A084452)(列表80 0 84456 A084456)(列表100 0 84457 A084457)(列表120 1 84458 A084458)(列表100 1 84463 A084463)(列表100 1 84464 A084464)(列表100 1 84467 A084467)(列表100 1 84468 A084468);;与三球地面状态序列的三种变体相关:(列表100 0 84500 A084500)(列表100 0 84510 A084510)(列表100 0 84520 A084520)(列表120 1 84501 A084501)(列表120 1 84511 A084511)(列表120 1 84521 A084521)(列表120 1 84502 A084502)(列表120 1 84512 A084512)(列表120 1 84522 A084522)(列表100 0 84503 A084503)(列表100 0 84513 A084513)(列表100 0 84523 A084523)(列表80 0 84504 A084504)(列表80 0 84514 A084514)(列表80 0 84524 A084524)(列表100 0 84505 A084505)(列表100 0 84515 A084515)(列表100 0 84525 A084525)(列表130 1 84506 A084506)(列表120 1 84516 A084516)(列表120 1 84526 A084526)(列表12 0 84507 A084507)(列表12 0 84517 A084517)(列表12 0 84527 A084527)(列表62 0 84508 A084508)(列表9 1 84518 A084518)(列表9 1 84528 A084528)(列表80 1 84509 A084509)(列表8 1 84519 A084519)(列表8 1 84529 A084529)(列表130 0 84555 A084555)(列表130 0 84556 A084556)(列表130 0 84557 A084557)))