电子邮件服务器和超级搜索的源代码N.J.A.斯隆2010年8月15日自1994年以来,电子邮件服务器和Superseeker一直在网络上运行。它们在中进行了描述http://www.research.att.com/~njas/sequences/ol.html。现在,OEIS由OEIS基金会公司所有(参见http://oeisf.org),即将成为wiki,并将移至新主机(请参见http://oeis.org/classic/http://oeis.org/wiki/)许多人建议电子邮件服务器和超级搜索应该“开源”。当然,他们也将被转移到新的东道主。我们已经拥有Maple和Mathematica的许可证那台机器。因此,下面是源代码的当前版本这两种服务。记住这些程序是我一个人写的,超过16年,并且不打算公开了。他们在得到许可的情况下使用了朋友写的几个程序,可能不属于公共领域。这些程序在一系列机器上运行,特别是一个叫“fry”的,最近是“prim”。它们有不同的操作系统,因此一些命令和子程序有两种版本。程序使用包含所有序列的普通平面文件称为“cat25”。当然,这一直在改变。$wc类别252761057 22805802 187271736类别25非常感谢米拉·伯恩斯坦、哈姆·德克森、奥利维尔·杰拉德,Christian Kratthentaler、John Linderman、Simon Plouffe、,布鲁诺·萨维(Bruno Salvy)、保罗·齐默尔曼(Paul Zimmermann)和其他项目负责人并入Superseeker。有些节目很长,包含很多评论。为了帮助分隔不同的部分下面的程序都是从八行等号开始的,例如:====================================================================================================================================================================================================================程序或文件的名称====================================================================================================================================================================================================================第1部分:电子邮件查找服务器我之所以包括这个,是因为它使用了Russ-Cox的快速查找-search.db-测试序列是否在OEIS中。相比之下,Superseeker,在第2部分中,使用我的旧grep,它要慢得多。如果我有更多我会切换Superseeker使用search.db。这是一个名为“hisP”的程序[整数序列查找手册,prim版本]它使用dehtml3和getfrom2程序在第2部分中进行了更详细的描述。它还提到了一些其他文件(例如,剥离文件)目前未使用。作为发送给“sequences@research.att.com“到了,他们来了输入到这个程序中。====================================================================================================================================================================================================================程序“hisP”====================================================================================================================================================================================================================#!/垃圾桶/桶#hisP公司#prim版本,2008年11月6日#自动回答序列查询的程序#作者:N J A Sloane,1994年1月至6月#修改日期:6.04.96,4.23.98,1999年1月27日#2000年12月4日:致电他的安排,将seqs与“最佳”seqs放在第一位#2002年11月3日:允许调用按a编号检索序列#2003年1月8日:添加回复时间戳#包括原始主题行,2003年1月8日#将“ex”更改为/bin/ex;将ex改为$ex-s;2005年6月10日#添加了awk脚本以去除垃圾邮件防护程序中的行-2005年6月10日#2007年10月26日:将“usr”改为“home”,修改程序#为了简单起见,我决定使用grep而不是gre,#到处都呆呆地看着,而不是一副呆呆的样子#2007年10月27日#prim版本,2008年11月6日至2008年11月月9日#2008年11月11日:在搜索命令中添加了“eval”#2008年11月12日:根据Dave Applegate的建议,对搜索命令进行了进一步修改#2009年10月29日:我通过dehtml3P删除了管道,因为它引入了错误!#例如,它会将A003136更改为A0E6#文件“header”具有位于末尾的样板文件#文件“footer1”中有一条消息,如果未找到序列,则会显示该消息#文件“helper.txt”包含他们获得的帮助文件#如果他们正在查找序列号,请致电hisAnumP#使用简单的shell程序dehtml3更改奇怪的字符#在bin中使用“getfrom”#为了测试这一点,我执行以下操作#cp hisP测试#rm jink(倒霉鬼)*#此处设置debug=1#注释掉trap命令#取消注释所有(许多)“^#if.*debug”行#将包含序列的文件设为hiswork67(例如),例如:#来自njas#查找1 2 3 5 8 13 21 34#查找66666 5 555455 5667777#查找1 10 100 1000 10000 100000##然后键入$cat hiswork67 | testhis#查看jink***文件以监视整个程序的进度##记住在写回superasst之前设置debug=0!#和取消对trap命令的注释#并注释掉if调试行路径=:/home/njas/bin:/bin:/usr/bin:/usr/local/bin;导出PATH#设置参数、文件名等。mach=`uname-n`案例“$mach”在里面“油炸”)GETFROM=/home/njas/bin/GETFROMDEHTML3=/home/njas/bin/dehtml3F;;“prim.research.att.com”)GETFROM=/home/njas/bin/getfrom2DEHTML3=/home/njas/bin/dehtml3P;;欧洲安全理事会ex=/bin/ex#选择好的exdebug=0#set=1用于调试limreq=30#允许的请求数limans=50#将其设置为每个序列的最大响应D1=/home/njas/bin#将D1定义为该目录D2=/home/njas/tmp#D2是临时目录DA=/home/njas/www-etc/oeisDB=$DA/箱DD=$DA/搜索.dblog=$D1/logP#log是一个日志文件#files=`echo/home/njas/gauss/hisdir/catfry23*`;导出文件files=/home/njas/gauss/hisdir/cat25;导出文件#“文件”是大目录,是cat25的副本striped=/home/njas/gauss/hisdir/strippedfry#“striped”是简短的目录(由stripfry制作。1)shortbib=/home/njas/gauss/hisdir/shortbib#图书的普通版本shortbib3=/home/njas/gauss/hisdir/shortnew#新裁判的普通版本header=$D1/header#header是实际出现在回复末尾的样板文件helper=$D1/helper.txt#helper是发送它们的帮助文件footer1=$D1/footer1#未找到序列时收到的消息orig=$D2/orig$$#将orig定义为保存原始请求的文件名req=$D2/请求$$#将req定义为保存请求序列的文件名tmp=$D2/$$.tmp#tmp还保存请求的序列tmp2=$D2/$$.tmp2#另一个临时文件tmp3=$D2/$$.tmp3#另一个临时文件tmp4=$D2/$$.tmp4#另一个临时文件陷阱“rm-f$orig$req$tmp$tmp2$tmp3$tmp4;exit”0 1 2#完成或中断时进行清理date=`date`#时间戳cd$D1####################################捕获输入####################################改变任何奇怪的字符;规范化单词“查找”,#从垃圾邮件防护程序中删除行#删除任何html内容#2009年10月29日:我更改了下一行:#猫|$DEHTML3|gawk'猫|呆呆的'开始{good=1}/内容预览:/{good=0;next}/内容分析详细信息:/{good=1;next}好==0{next}{打印}'|sed的/[Ll][Oo][Oo][Kk]/外观/s/[Uu][Pp]/up/查找/查找/秒/=20$//秒/=$//s/^.*查找/查找//查找/s/<*$///^$原始如果[“$debug”-eq 1];然后是cp$orig jink0001;echo“在0001”;####################################记录请求###################################(回声echo“新消息:”回声猫$orig)>>$log####################################获取返回地址###################################addr=`$GETFROM<$orig`案例X$addr in十) echo“”>>$logecho“坏蛋”>>$logecho“”>>$log退出0;;# Xarlin@iquest.com)echo“”>>$log#echo“Arlin Anderson再次”>>$log#echo“”>>$log#退出0;;欧洲安全理事会如果[“$debug”-eq 1];然后是cp$orig jink0002;回波“在0002”;如果[“$debug”-eq 1];然后echo“addr=”$addr;####################################捕获原始主题行:###################################SUBJECT_0=`grep“^[Ss][Uu][Bb][Jj][Ee][Cc][Tt]”$orig`####################################构建回复####################################有没有一行只写“查找”而没有其他内容?如果grep“^[Ll]ookup*$”$orig>/dev/null然后#/usr/lib/sendmail-f序列应答“$addr”<$helper(echo“To:$addr”;echo”主题:的帮助文件sequences@research.att.com";cat$helper)|/usr/lib/sendmail-f sequences-reply“$addr”echo“”>>$logecho“我将helper文件发送到$addr”>>$logecho“”>>$log退出0如果[“$debug”-eq 1];然后是cp$orig jink0003;echo“在0003”;####################################格式正确吗?###################################如果grep查找$orig>/dev/null然后echo“”>/dev/null其他#/usr/lib/sendmail-f序列应答“$addr”<$helper(echo“To:$addr”;echo”主题:的帮助文件sequences@research.att.com";cat$helper)|/usr/lib/sendmail-f sequences-reply“$addr”echo“”>>$logecho“我将helper文件发送到$addr”>>$logecho“”>>$log退出0如果[“$debug”-eq 1];然后cp$orig jink0004;echo“在0004”;####################################检查请求是否太多###################################noreq=`grep查找$orig|wc-l`如果[“$noreq”-gt“$limreq”]然后(echo“To:$addr”;echo”主题:查找过多“;echo“对不起,只允许$limreq查找!”;echo“要获取帮助文件,请向sequences@research.att.com“)|/usr/lib/sendmail-f sequences-reply”$addr“#echo抱歉,只允许$limreq查找|#upasname=sequences-reply邮件“$addr”echo“”>>$logecho“告诉他们查找太多了!”>>$logecho“”>>$log退出0如果[“$debug”-eq 1];然后是cp$orig jink0005;echo“在0005”;####################################处理请求####################################拉出查找行#1998年4月23日,我删除了下面的ex命令中的下一行#但最后我把它放回去了#2007年10月27日,我正在尝试让前脚本正常运行!cp$原始$req#cat$orig|awk'/ulookup/{print}'>$req如果[“$debug”-eq 1];然后是cp$orig jink0006;echo“在0006”;如果[“$debug”-eq 1];然后是cp$req-jink0006req;$ex-s$req</开发/空if grep“lookup*A[0-9]”“$orig”>/dev/null然后如果[“$debug”-eq 1];然后cp$orig jink002;echo“at 002”;$D1/hisAnumP$地址$orig&睡眠1退出0如果[“$debug”-eq 1];然后是cp$req jink001a;echo“在001a处”;####################################检查查找行中的非数字字符####################################1998年4月23日,我修改了下一行,插入\055以允许减号#但最后我把它拿了出来intern1=`cat$req|tr-d“0123456789\012\055”`如果[-n“$intern1”]然后#echo“抱歉,查找行只能包含数字和空格”|#/usr/lib/sendmail-f序列-回复“$addr”(echo“To:$addr”;echo”主题:非法字符“;echo“抱歉,查找行只能包含数字和空格”;echo“要获取帮助文件,请向sequences@research.att.com“)|/usr/lib/sendmail-f sequences-reply”$addr“echo“告诉他们只允许数字!”>>$log退出0#如果[“$debug”-eq 1];然后是cp$req jink001b;echo“在001b处”;####################################进行进一步处理#David Applegate版本,2008年11月12日:###################################cp$req$tmp2猫$tmp2|sed的/^*//秒/*$//s/*/,/g'>$req#如果[“$debug”-eq 1];然后是cp$req jink002;echo“at 002”;####################################查找所有匹配的序列###################################:>$tmp读取ta时cat$req |;echo“”>>$tmpecho“为\”$ta\“”>>$tmp找到匹配项(最多50个)echo“”>>$tmp/home/njas/www-etc/oeis/bin/search-f 3-q-n 50/home/njas/www.etc/oeis/search.db“$ta”>>$tmpecho“”>>$tmp完成#如果[“$debug”-eq 1];然后是cp$tmp jink003;echo“在003”;猫$footer1>>$tmp#保存副本(回声echo“我对$addr的回复:”猫$tmp回声)>>$log#添加时间戳和主题行echo“传入消息的主题行(如果有):$Subject_0”>>$tmpecho“”>>$tmpecho“搜索在$date执行”>>$tmp#添加样板:猫$header>>$tmp#发送结果:#$addr是电子邮件地址,$tmp包含响应#cat$tmp |/usr/lib/sendmail-f sequences-reply“$addr”(echo“收件人:$addr”;echo“主题:整数序列在线百科全书的回复”;cat$tmp)|/usr/lib/sendmail-f sequences-reply“$addr”出口====================================================================================================================================================================================================================节目“hisP”结束====================================================================================================================================================================================================================第2部分:监督员&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&总结:以下是Superseeker的工作总结:&&& &&&-Runs supercrocfan(米拉·伯恩斯坦写),&&&它反复计算逆二项式&&&序列的变换(如果这些三角形是&&&他们粘在一起形成了一个“粉丝”——看伯恩斯坦-斯隆&&&关于特征序列的论文)。如果其中任何一个可以识别,&&&我们有一个公式。&&& &&&-运行proc8(superproc8.f的编译版本)&&&它测试某些阶的差异是否是周期性的&&& &&&-如果序列只取两个值,即a和b,即“二进制”序列,&&&proc9(superproc9.f的编译版本)计算&&&六个典型的相关序列,并在OEIS中查找它们。&&&这6个序列都相当于&&&原始为:将a、b替换为1,2;乘以2,1;a的位置,&&&b的;运行长度;和导数。&&& &&&-superproc2prim调用“gfun”Maple包的“guessgf”部分&&&布鲁诺·萨维和保罗·齐默尔曼&&&寻找生成函数。&&&请参见&&& http://www.maplesoft.com/support/help/Maple/view.aspx?path=gfun&&&或&&&pictor.math.uqam.ca/~plouffe/articles/gfun.pdf&&&了解更多关于gfun的信息&&& &&&-superproc4prim调用“gfun”Maple包的“listtorec”部分&&&布鲁诺·萨维和保罗·齐默尔曼&&&寻找复发。&&& &&&-使用Harm Derksen的程序“超级猜测”进行尝试&&&猜测公式或循环。&&&[Harm Derksen的程序“猜测”使用Pade'-Hermite近似值&&&-请参阅http://www.maples.com/CyberMath/share/guess.html。&&&该算法描述如下:&&&计算广义Pade'-Ermite形式的算法,&&&9403号报告(1994年),数学系。,奈梅亨天主教大学&&&(可从以下位置获得http://www.math.lsa.umich.edu/~hderksen/prints/pade.ps)。]&&& &&&-使用Christian Kratthentaler的Mathematica程序Rate(“superrate.m”),试图&&&猜测序列的闭合形式(在德语中,“rate”是“guess”)。&&&有关速率的描述,请参见&&& http://radon.mat.univie.ac.at/People/kratt/rate.html。&&& &&&-对序列应用许多转换并查找&&&OEIS中的结果。&&&转换是使用Mathematica执行的&&&Olivier Gerard程序seqtranslib.m的帮助&&&使用的变换列表位于“supertrans”中。&&& &&&-对序列应用许多转换并查找&&&形成序列表的结果&&&通过获取OEIS中所有序列的第一个差异。&&&使用差异序列的压缩文件“滴落”。&&&转换是使用Mathematica执行的&&&Olivier Gerard程序seqtranslib.m的帮助&&&使用的变换列表位于“supertrans”中。&&& &&&-supperroc6prim调用“gfun”Maple包的“listtoalgeq”部分&&&布鲁诺·萨维和保罗·齐默尔曼&&&寻找代数方程&&& &&&-使用Simon Plouffe编写的superbeattyprim,&&&测试序列是否为Beatty序列&&& &&&-使用John Linderman的程序CheckSeq.pl&&&查看序列是否与部分重叠&&&任何现有序列&&& &&&-使用unix实用程序“agrep”在OEIS中查找序列&&&具有给定序列的编辑距离1、2或3。&&& &&&-(目前未使用)运行“supercorr2”查看&&&对于与给定序列高度相关的序列。&&& &&&-其他几个人向OEIS提供了他们的猜测程序&&&序列的公式或解释,但我没有&&&有时间将其纳入Superseeker。&&&希望这可以在wiki版本上完成。&&& &&&注意,下面包含的文件“superhelp.txt”&&&对Superseeker的工作做了另一个总结。&&& &&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&作为发送给“superseeker@research.att.com“到了,他们来了输入程序superisP,然后输入supersstprim。这是第一个程序:====================================================================================================================================================================================================================程序“superisP”====================================================================================================================================================================================================================#!/垃圾桶/桶#自动回答序列查询的supervisP程序,#努力寻找解释#N.J.A.Sloane 1994年5月2日#使用dehtml,dehtml3#所有的硬性工作都是由$D1/supersstprim完成的,在本文结尾处调用#要调试它,请设置debug=1,注释掉trap命令#并取消注释所有“if-debug…”语句#然后rm jank*,做一些类似的事情#cat hiswork67|superisP,其中hiswork67有两行:#来自njas#查找10 20 30 40 0 60 70 80 90 100 110#或#查找220 1210 6655 34243 180829 963886 5093737#油炸版本7/12/96#修改12.30.97和3.5.98以及6/4/99#1999年8月2日删除除第一行外的所有查找行#1999年6月4日添加了额外的行,将提交的副本放入QUEUE目录。不!#2002年7月19日,85号线超级跑车坏了-嗯,不工作了!#2002年7月22日固定#更改的帮助文件2002年11月5日#将“ex”更改为/bin/ex;将ex改为$ex-s;2005年6月10日#添加了awk脚本以去除垃圾邮件防护程序中的行-2005年6月10日#2007年10月27日#将awk改为gawk,2007年10月27日#原始版本,2008年11月9日#添加队列命令,2008年11月17日#将gre改为grep,2009年7月22日-超级好人过滤器#不工作了#设置路径路径=:/home/njas/bin:/bin:/usr/bin:/usr/local/bin;导出PATH#设置参数、文件名等。mach=`uname-n`案例“$mach”在里面“炸”)GETFROM=/home/njas/bin/GETFROMTIMESTAMP=/home/njas/bin/IP27/TIMESTAMPDEHTML=/home/njas/bin/DEHTMLDEHTML3=/home/njas/bin/dehtml3F;;“prim.research.att.com”)GETFROM=/home/njas/bin/getfrom2TIMESTAMP=/home/njas/bin/x86_64/timstampDEHTML=/home/njas/bin/dehtmlPDEHTML3=/home/njas/bin/dehtml3P;;欧洲安全理事会#2007年11月2日临时#echo“mach=”$machex=/bin/ex#选择好的exdebug=0#set=1用于调试limreq=1#允许的请求数D1=/home/njas/bin#将D1定义为该目录D2=/home/njas/tmp#D2是临时目录#定义作业排队的目录D3=/home/njas/bin/QUEUEDA=/home/njas/www-etc/oeisDB=$DA/箱DD=$DA/搜索.dblog=$D1/suplogP#日志是一个日志文件Phelper=$D1/superhelp.txt#helper是发送人的帮助文件orig=$D2/超钻机$$#定义orig以保存原始请求需求=$D2/超级需求$$#定义req以保存请求的序列tmp=$D2/$$.tmp3#tmp文件polite=3600#通话之间的最短时间(秒)陷阱“rm-f$orig$tmp;退出0”0 1 2#完成或中断时进行清理#$addr将有返回地址cd$D1#捕获输入猫>$tmp#如果[“$debug”-eq 1];然后cat$tmp>jank000;echo“at 000保存输入”;#日志(回声echo“新消息:”回声猫$tmp)>>$log#使用NETLIB实用程序获取返回地址以确保安全addr=`$GETFROM<$tmp`案例X$addr in十) echo“”>>$logecho“坏蛋”>>$logecho“”>>$log退出0;;欧洲安全理事会#如果[“$debug”-eq 1];然后echo$addr>jank001;echo“在001获得地址”;#1997年12月30日添加#下面的第四个sed命令删除所有html垃圾行<。。。。#如果[“$debug”-eq 1];然后是目录$tmp|$DEHTML3>jank002;echo“在002测试dehtml3”;#如果[“$debug”-eq 1];然后是目录$tmp|$DEHTML3|$DEHTML>jank003;echo“在003测试DEHTML”;猫$tmp|$DEHTML3|$DEHTML |呆呆呆的'开始{good=1}/内容预览:/{good=0;next}/内容分析详细信息:/{good=1;next}好==0{next}{打印}'|sed'的/外观/外观/s/查找/查找/s/LOOKUP/查找/秒/=20$//秒/=$///[S][Uu][Bb]/d/^$原始#如果[“$debug”-eq 1];然后是cp$orig jank004;echo“在004,编辑需求”;#记录请求(回声echo“在我删除了很多垃圾后,消息现在显示:”回声猫$orig)>>$log#时间戳信息timein=`$TIMESTAMP`#如果[“$debug”-eq 1];然后echo$timein>jank005;echo“在005”;#温度#echo timein=$timein#格式正确吗?如果未发送“超级帮助”如果grep查找$orig>/dev/null然后:其他(echo“To:$addr”;echo”主题:Superseeker的帮助文件“;cat$helper)|/usr/lib/sendmail-f supersq回复“$addr”(回声echo“我将helper文件发送到$addr”回声)>>$log退出0#处理请求#拉出查找行cp$原始$req#如果[“$debug”-eq 1];然后是cp$req jank006;echo“at 006,编辑”;#删除html行、主题行、包含无关字母的行$ex-s$req<>$日志退出0$ex-s$req</开发/空然后#echo“对不起,查找行只能包含数字、减号和空格”|#/usr/lib/sendmail-f supereq-reply“$addr”(echo“To:$addr”;echo”主题:非法字符“;echo“对不起,查找行只能包含数字、减号和空格”;echo“要获取帮助文件,请向superseeker@research.att.com“)|/usr/lib/sendmail-f supereq-reply”$addr“echo“告诉他们只允许数字!”>>$log退出0#如果[“$debug”-eq 1];然后是cp$req jank009;echo“在009”;#最后,他们经过BOUNCER了吗?#如果$addr在好人名单上,接受请求而不进行进一步检查if echo$addr | fgrep-x-f$D1/supergoodguys>/dev/null#if 1然后是#然后是1:else#else 1#如果是新用户,请将lasttime设置为0cat supertracker |呆呆地看着“{print$2}”>$tmp如果echo$addr | fgrep-x-f$tmp>/dev/null然后lasttime=`grep-h“$addr”$D1/supertracker|gawk“{print$1}”|排序-n-r | sed“1q”`其他的上次时间=0fi(菲涅耳)#温度#echo lasttime=$lasttime#看看上次请求是否已经一个小时了difftime=`expr$timein-$lasttime`if[“$difftime”-lt“$polite”]#if 3然后是#然后是3(echo“To:$addr”;echo”主题:自上次提交后太快“;echo“对不起,因为这个程序占用了很多计算机时间,我必须”;echo“将其使用限制为每个用户每小时一个请求-请稍后再试。”;echo“要获取帮助文件,请向superseeker@research.att.com“)|/usr/lib/sendmail-f supereq-reply”$addr“(回声“”echo“告诉他们自上次提交以来时间太早了”回声“”)>>$log#温度#echo difftime=$difftime#如果[“$debug”-eq 1];然后回音“$timein$lasttime$difftime”>jank010;echo“在010,被反弹”;退出0fi#fi 3fi#fi 1#如果[“$debug”-eq 1];然后回音“$timein”“$lasttime”“$difftime”>jank011;echo“在011,过了门。”;#构建回复#他们进来了!#在文件supertracker中记录此请求echo$timein$addr>>$D1/超级跟踪器#进行进一步处理$ex-s$req<>$日志退出0#$addr是实际地址,$req是文件名,其中包含seq#如果[“$debug”-eq 1];然后cp$req jank999;echo“在999,完成”;nohup$D1/superasstprim$addr$req>>$log 2>&1&退出0====================================================================================================================================================================================================================程序“superasstprim”====================================================================================================================================================================================================================接下来是主程序superasstprim:#!/垃圾桶/桶#################################################### ##超sstprim## #####################################################自动回答序列查询的程序,#努力寻找解释#N.J.A.Sloane 1994年5月16日#油炸版本7/12/96#5/97我现在断开了beatty测试,因为它坏了#还有(5/7/97)findhard测试,因为时间太长#1998年2月28日新版superasstfry将findhard替换为#Olivier Gerard的数学代码和一些聪明的shell编程#1999年7月21日,我正在恢复Beatty序列测试,但只有“beatty0”部分#1999年8月1日添加“agrep”#8月2日增加猜测#8月4日添加速率#11.26.99在回复中添加“收件人”行等#2000年12月4日:先与最佳选手复赛#2001年2月20日:始终进行“艰难”搜索#2002年8月13日将名为“work”的文件更改为“superwork”#2003年10月20日添加了John Linderman的部分重叠检查器CheckSeq.pl#2004年7月1日增加了测试,看看是否能匹配差异#OEIS中任何序列的序列#2005年6月6日切换到前版本#2007年1月3日:从maple6切换到maple9.5#2007年1月4日:切换回来,它不起作用#2007年10月27日:开始与prim兼容#2007年10月30日:将“limit”更改为“ulimit”;更改为$MAPLE,$MATH#2007年11月2日:更改了子过程中的libname命令以使gfun工作#2008年11月9日:原始版本#2008年11月17日:在Dave Applegate的大力帮助下,#添加了排队命令#2009年2月9日:更改了superproc2prim等文件中的libpath#2009年2月9日:纠正了superproc2prim中的一个严重错误#要研究复杂序列,请将maptime=1000更改为maptime=100000#并在下面设置强硬=1#########################################################为了测试这一点,我执行以下操作#########################################################cp superasstprim测试#rm乔克*#重要!注释掉第234-242行(锁文件内容)和第248行中的陷阱#在testasst中设置debug=1(大约在第131行)#创建包含序列的文件superwork66(例如),例如:#f,1,1,2,3,5,8,13,21,34,#制作一个包含2行的可执行文件superwork1(例如):#cat超级工程66|sed'1q'>超级工程6#testasst njas超级工程6#或supersstprim njas superwork6##然后键入superwork1#查看jonk***文件以监视整个程序的进度##记住在写回superasstfry之前设置debug=0!#########################################################调用的子程序和文件(按顺序)(grep表示“调用”)#########################################################程序超级用户读取邮件,然后调用此程序#做最难的事。#superfoot*=有时读入的各种文本文件#superproc7fry=对seq进行初始处理的Maple程序。#superfoot0=样板=标准页脚#superfoot1=文本#footer2=如果序列不在表中,则使用样板#superproc1=查看差异(Maple子程序)#superprocfan=计算多订单差异表(Maple)#superproc8.f=检查差异是否为周期性的Fortran程序#proc8或proc8P(prim)=相同的可执行文件#superproc9.f=获取二进制序列字符fn的Fortran程序#proc9或proc9P(prim)=相同的可执行文件#superproc2fry=呼叫guessgf(Maple)#superproc2prim=调用guessgf(Maple)#superproc4fry=调用listtorec(Maple)#superproc4prim=调用listtorec(Maple)#superproc6fry=调用列表到algeq(Maple)#superproc6prim=调用listtoalgeq(Maple)#superguess=我版本的Harm Derksen的guess-Maple程序#superrate.m=我的rate.m版本(Mma)#未使用超级roc3fry=调用findhard#seqtranslib.m是Supersstfry(Mma)使用的Olivier Gerard的程序#未使用superproc5.f=fortran程序解码findhard的输出#NOT USED proc5=相同的可执行文件#文件“supertrans”包含使用的转换列表#superfoot2=文本#未使用超耳垢=查找L1标准序列中最近的#superbeattyfry=Beatty seq测试。(枫树)#superbeattyprim=Beatty seq测试。(枫树)#superfootb=beatty的文本#hisarange=将核心seqs放在首位的shell(主要是awk)程序,等等。#qk_fast=“转换”查找使用#qk_fast_drip=用于差异表中的“转换”查找#这些似乎目前没有使用:#supercorr=查找相关序列中最近的序列#superroc10=计算第一批变换#superroc11=计算第二批变换#现在已经过时:$H/hisdir中的HISFrey是使用了T___转换的Maple脚本#########################################################设置参数、文件名等。#########################################################忽略SIGHUP(调用程序退出时可能会发生这种情况,#取决于邮件递送的细节)陷阱“”1#设置路径:路径=:/home/njas/bin:/bin:/usr/bin:/usr/local/bin:/usr/common/bin/;导出PATHex=/bin/ex#Maple=/usr/local/bin/maple8#设置Maple版本#Maple=/usr/local/bin/maple7#set版本的Maple#Maple=/usr/local/bin/maple6#设置Maple版本#Maple=/usr/local/bin/maple9.5#设置Maple版本debug=0#不打印信息(0),或执行(1)-用于调试强硬=1#如果想继续分析,即使表中有seq,也要设置为1#2001年2月的默认值现在为1maptime=1000#大型Maple作业允许的最大时间(秒)limans=50#将其设置为每个序列的最大响应#在桌子上查找时nocmin=9#min程序第二部分需要的字符数nowmin=3#min程序第二部分需要的单词数D1=/home/njas/bin#将D1定义为该目录D2=/home/njas/tmp#在此处放置临时文件DA=/home/njas/www-etc/oeisDB=$DA/箱DD=$DA/搜索.dbLOCKWAIT=/usr/bin/lockfileLOCKFILE=/home/njas/tmp/super.locklog=$D1/superlogP#log是一个日志文件#files=`echo/home/njas/gauss/hisdir/catfry23*`;导出文件files=/home/njas/gauss/hisdir/cat25;导出文件#“文件”是大目录,是cat25的副本striped=/home/njas/gauss/hisdir/strippedfry#“striped”是短目录(由stripfry制作。1)#-注意减号已被删除滴下=/home/njas/gauss/hisdir/drippedfry#“滴水”是简短的差异目录(来自stripfry。1)#基于strippedfry信号#-注意减号已被删除shortbib=/home/njas/gauss/hisdir/shortbib#图书的普通版本shortbib3=/home/njas/gauss/hisdir/shortnew#新裁判的普通版本header=$D1/assead#header是我回复的标题footer2=$D1/footer2#要求他们发送seq,如果不在表中addr=$1#addr是返回地址req=$2#req以f,1,2,3,4,格式保存请求的序列#(带标志)reqa=$D2/$$。reqa#reqa将以f,1,2,3,4,格式保存请求的序列#(无标志)fort=$D2/$.fortans=$D2/$$.ans#ans持有回复tmp=$D2/$$.tmp#tmp还将保存请求的序列(不带符号)tmp2=$D2/$$.tmp2#另一个临时文件tmp3=$D2/$$.tmp3#另一个临时文件tmp4=$D2/$$.tmp4#另一个临时文件tmp5=$D2/$$.tmp5#另一个临时文件tmp6=$D2/$$.tmp6#另一个临时文件#其他变量:#$addr=返回地址#$intable=1 iff表中有原始序列intable=0#$ntable=否。在主表中找到了次#$nvals=否。seq所取数值的总和。#$maxval=最大值。防抱死制动系统。序列中的值。#$nterms=否。以下是条款。#$periodic=1 iff periodical#$debug=1以获取调试打印输出,否则为0#$f77type=1,如果fortran可以读取,则为0mach=`uname-n`案例“$mach”在里面“油炸”)AGREP=AGREPBEATTY=D1美元/超级美人鱼MAPLE=/usr/local/bin/maple6MATH=/usr/local/bin/MATHPROC2=$D1/超级PROC2 ryPROC4=$1/超级岩石PROC6=$1/超级岩石PROC8=$D1/PROC8PROC9=$D1/PROC9;;“prim.research.att.com”)AGREP=/home/njas/bin/AGREPBEATTY=D1美元/superbeattyprimMAPLE=/usr/local/bin/MAPLEMATH=/usr/common/bin/MATHPROC2=$1/superproc2primPROC4=D1美元/superproc4primPROC6=D1美元/superproc6primPROC8=D1美元/进程8PPROC9=$1/proc9P;;欧洲安全理事会###################################################################如有必要,等待锁定文件#####################################################################在lockfile命令中###-60表示两次尝试之间等待1分钟###-r 60表示尝试1小时后放弃(60次重试)###-l 1800表示如果锁已使用30分钟,则覆盖它###-s 60表示覆盖锁后等待1分钟######在while循环中执行此操作意味着如果超级搜索无法获得###锁,它会给你发送电子邮件,但会继续尝试获取锁。###可以通过修复锁定问题或终止###超级搜索过程。######如果superasstprim退出,trap命令应该移除锁,###或被杀死(但不是用kill-9,因为这不允许进程这样做###任何其他内容)。###2009年7月21日:从下面的2个LOCKWAIT命令中删除了“-l 1800”。陈旧的锁###不再被覆盖。###要进行调试,请注释掉接下来的9行如果$LOCKWAIT-60-r60-s60$LOCKFILE>/dev/null 2>&1;然后(echo“收件人:njas@research.att.com david@research.att.com“echo”主题:我们有一个超级搜索锁问题“;echo“进程id为$$”;echo“也许你应该”;echo“rm-f$LOCKFILE”;echo“或”;echo“杀死$$”;)|/usr/lib/sendmail-f超级服务器njas@research.att.com david@research.att.com如果$LOCKWAIT-60-r-1-s 60$LOCKFILE>/dev/null 2>&1;然后退出0#陷阱“rm-f$LOCKFILE;退出0”0 2 3 15#完成或中断时调试清理###要进行调试,请注释掉下一行陷阱“rm-f$req$reqa$ans$fort$tmp$tmp2$tmp4$tmp5$tmp6$LOCKFILE;退出0”0 2 3 15#完成或中断时的正常清理#########################################################开始工作########################################################cd$D1#我们在$req中输入请求(带符号),#以f,1,2,3,4,5格式保存如果[“$debug”-eq 1];然后是cp$req jonk001;echo“在001,初始要求”;#删除减号,放入$tmp和$reqa猫$req|tr-d'\055'>$tmpcp$tmp$reqa如果[“$debug”-eq 1];然后是cp$tmp jonk002;echo“在002,-标志消失”;#看看它是否包含0项如果grep“,0,”$req>/dev/null然后zterm=0#zterm=0表示它包含一个0其他的zterm=1#zterm=1表示它不包含0############################################# ##将$req转换为MAPLE格式## #############################################$ex-s$req<>$个echo“进行了许多测试,但只有潜在的有用信息(如有)在此报告。“>>$个echo>>$ans#序列是琐碎的吗?调用超级岩石#它叫枫叶#温度#cp$req jonkjonk1#温度#echo“$addr”>jonkjonk3#温度#printenv>jonkjonk4#温度#设置>jonkjonk5猫$req$D1/superroc7fry |$MAPLE>$tmp4#echo“lis:=[1,10,20,30,40];”|$MAPLE>jonkjonk2如果[“$debug”-eq 1];然后是cp$tmp4 jonk003;echo“在003,通过Maple”;#处理输出$ex-s$tmp4</d日克/^#/天克/^\$/天\美元.g/^字节/天克/,/秒/克w个q个!#此时,$tmp4包含Maple的结果如果[“$debug”-eq 1];然后cp$tmp4-jonk004;echo“在004,离开枫叶”;#取了多少值等?nvals=`cat$tmp4|gawk'/nvals/{print$2}'`maxval=`cat$tmp4|gawk'/maxval/{print$2}'`nterms=`cat$tmp4|gawk'/nterms/{print$2}'`f77type=`cat$tmp4|gawk'/f77type/{print$2}'`如果[“$debug”-eq 1];然后echo“$nvals”“$maxval”“$nterms”“$f77type”>jonk004a;回声“在004a”;如果[“$nvals”-le 1]然后(回声echo“回复$addr:”猫$ans回声echo“固定序列。再见!”回声)>>$log(回声echo“固定序列。再见!”猫$D1/superfoot0echo)>>$ans(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0###########################################################查找表中的顺序###########################################################首先尝试表格:(使用$tmp(用于输入)、$tmp2和$tmp3作为答案)#在$tmp4中复制输入$tmp如果[“$debug”-eq 1];然后是cp$tmp jonk0049;echo“在0049,开始查找”;cp$tmp$tmp4echo>$tmp3echo“测试:包虫中的绝对值序列是什么?”>>$tmp3####################################查找所有匹配的序列-这只是一次查找!####################################echo“在49a”#cat$tmp|sed的#^f,#/home/njas/www etc/oeis/bin/search#-f 3-q-n 50/home/njas/www-etc/oeis/search.db\“##s/,$/\“/'>$tmp5ta=`cat$tmp|sed's/^f//s/,$//'`如果[“$debug”-eq 1];然后回声“在0049aa,ta=$ta”;echo“为\”$ta\“”>>$tmp3找到匹配项(最多50个)echo“”>>$tmp3/home/njas/www-etc/oeis/bin/search-f 3-q-n 50/home/njas/www.etc/oeis/search.db“$ta”>>$tmp3echo“”>>$tmp3如果[“$debug”-eq 1];然后cp$tmp3 jonk005;echo“在005,完成查找”;如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`intable=1(回声echo“成功:序列在OEIS中。”回声)>>$tmp3猫$tmp3>>$ans其他的nhits=0intable=0ntable=`expr$nhits`如果[“$debug”-eq 1];然后是cp$tmp3 jonk00501;echo“在00501,查找不到”;##############################################################表中是缩短的序列吗?##############################################################(使用$tmp(用于输入)、$tmp2和$tmp3作为答案)如果[“$debug”-eq 1];然后echo“$intable,$nterms”>jonk00502;echo“在00502,简短查找”;如果[$intable-eq 0-a$nterms-ge 5]#if 0然后是#,然后是0#从保存$tmp4的位置重新加载$tmp,删除第一个术语如果[“$debug”-eq 1];然后是cp$tmp4 jonk00503;echo“在00503,短”;猫$tmp4|sed的/,[0123456789]*,/,/'>$tmp如果[“$debug”-eq 1];然后是cp$tmp jonk00504;echo“在00504,已编辑”;echo>$tmp3echo“测试:是绝对值的序列百科全书中的(省略了第一个术语)?“>>$tmp3####################################查找所有匹配的序列-这只是一次查找!###################################ta=`cat$tmp|sed's/^f//s/,$//'`如果[“$debug”-eq 1];然后回声“在0049aa,ta=$ta”;echo“为\”$ta\“”>>$tmp3找到匹配项(最多50个)echo“”>>$tmp3/home/njas/www-etc/oeis/bin/search-f 3-q-n 50/home/njas/www.etc/oeis/search.db“$ta”>>$tmp3echo“”>>$tmp3如果[“$debug”-eq 1];然后是cp$tmp3 jonk0051;echo“在0051,完成查找”;如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`intable=1(回声echo“成功:序列在OEIS中。”回声)>>$tmp3猫$tmp3>>$ans其他的nhits=0ntable=`expr$nhits`如果[“$debug”-eq 1];然后是cp$tmp3 jonk0052;echo“在0052,完成查找”;fi#fi 0################################################################AGREP公司##1999年8月1日:添加对agrep的调用以查找序列#几乎匹配###############################################################################################################################AGREP_1################################################################(使用$tmp4(用于输入)、$tmp5和$tmp3作为答案)如果[“$debug”-eq 1];然后echo“$intable,$nterms”>jonk005201;echo“在005201,运行agrep1”;if[$intable-eq 0]#if 0然后是#,然后是0#从保存$tmp4并删除第一个术语的位置重新加载$tmp#并将其转换为agrep的格式lis=`cat$tmp4|sed的///s/.$//'`如果[“$debug”-eq 1];然后echo“$lis”>jonk005202;echo“在005202”;echo>$tmp3echo“建议:似乎绝对值的序列可从外壳中的以下序列中获得(最多$limans)通过1次插入、删除或替换:“>>$tmp3echo“”>>$tmp3#查找所有匹配的序列$AGREP-1-k“$lis”$striped|sed${利曼斯}q" | gawk'$2~“^A”{print“cat/home/njas/gauss/hisdir/cat25|grep\”^%[A-Za-z]“$2”\“”}'>$tmp5如果[“$debug”-eq 1];然后是cp$tmp5 jonk005203;echo“在005203,完成agrep_1查找”;#从表中拿出那些A数字#并按空格分隔条目sh$tmp5|sed'/^%I/I\'>>$tmp3如果[“$debug”-eq 1];然后是cp$tmp3 jonk005204;echo“在005204,完成sh”;#有什么好消息吗?如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`echo>>$tmp3猫$tmp3>>$ans其他的nhits=0如果[“$debug”-eq 1];然后是cp$tmp3 jonk005205;echo“在005205,完成agrep_1查找”;如果[“$debug”-eq 1];然后echo“nhits=$nhits”;fi#fi 0#####################################################AGREP_1结束####################################################################################################################AGREP_2协议#距离序列2吗?###############################################################if[“$nhits”-eq 0]#if 1然后是#然后是1#(使用$tmp4(用于输入)、$tmp5和$tmp3作为答案)如果[“$debug”-eq 1];然后echo“$intable,$nterms”>jonk005211;echo“在005211,运行agrep2”;如果[“$debug”-eq 1];然后echo“$lis”>jonk005212;echo“在005212”;echo>$tmp3echo“建议:似乎绝对值的序列可从外壳中的以下序列中获得(最多$limans)通过2次插入、删除或替换:“>>$tmp3echo“”>>$tmp3#查找所有匹配的序列$AGREP-2-k“$lis”$striped|sed${利曼斯}q" | gawk'$2~“^A”{print“cat/home/njas/gauss/hisdir/cat25|grep\”^%[A-Za-z]“$2”\“”}'>$tmp5如果[“$debug”-eq 1];然后是cp$tmp5 jonk005213;echo“在005213,完成agrep_2查找”;#从表中拿出那些A数字#并按空格分隔条目sh$tmp5|sed'/^%I/I\'>>$tmp3如果[“$debug”-eq 1];然后是cp$tmp3 jonk005214;echo“在005214,完成shell命令”;#有什么好消息吗?如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`echo>>$tmp3猫$tmp3>>$ans其他的nhits=0如果[“$debug”-eq 1];然后是cp$tmp3 jonk005215;echo“在005215,完成agrep_2查找”;fi#fi 1#####################################################AGREP_2结束####################################################################################################################AGREP_3#距离序列3吗?###############################################################if[“$nhits”-eq 0]#if 1然后是#然后是1#(使用$tmp4(用于输入)、$tmp5和$tmp3作为答案)如果[“$debug”-eq 1];然后echo“$intable,$nterms”>jonk005211;echo“在005211,运行agrep_3”;如果[“$debug”-eq 1];然后echo“$lis”>jonk005212;echo“在005212”;echo>$tmp3echo“建议:似乎绝对值的序列可从外壳中的以下序列中获得(最多$limans)通过3次插入、删除或替换:“>>$tmp3echo“”>>$tmp3#查找所有匹配的序列$AGREP-3-k“$lis”$striped|sed${利曼斯}q" | gawk'$2~“^A”{print“cat/home/njas/gauss/hisdir/cat25|grep\”^%[A-Za-z]“$2”\“”}'>$tmp5如果[“$debug”-eq 1];然后是cp$tmp5 jonk005213;echo“在005213,完成agrep_3查找”;#从表中拿出那些A数字#并按空格分隔条目sh$tmp5|sed'/^%I/I\'>>$tmp3如果[“$debug”-eq 1];然后是cp$tmp3 jonk005214;echo“在005214,完成shell命令”;#有什么好消息吗?如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`echo>>$tmp3猫$tmp3>>$ans其他的nhits=0如果[“$debug”-eq 1];然后是cp$tmp3 jonk005215;echo“在005215,完成agrep_3查找”;fi#fi 1#####################################################AGREP_3结束####################################################################################################################林德曼##2003年10月20日:增加对John P.Linderman的CheckSeq.pl程序的调用#寻找部分重叠的序列################################################################如果OEIS中的序列已经存在,则跳过此测试if[$intable-eq 0]#if 0然后是#,然后是0#(使用$tmp4(用于输入)、$tmp5和$tmp3作为答案)如果[“$debug”-eq 1];然后echo“$intable,$nterms”>jonk005221;echo“在005221,运行CheckSeq.pl”;lis=`cat$tmp4|sed的/..//'`如果[“$debug”-eq 1];然后echo“$lis”>jonk005222;echo“在005222”;echo>$tmp3echo“建议:JOHN LINDERMAN的程序检查Seq.pl已检测到序列和以下序列之间的部分重叠(最多$limans)在百科全书中:“>>$tmp3echo“”>>$tmp3#查找所有匹配的序列echo“$lis”|CheckSeq.pl|sed“${利曼斯}q“|sed的/://”|gawk'$1~“^A”{print“cat/home/njas/gauss/hisdir/cat25|grep\”^%[A-Za-z]“$1”\“”}'>$tmp5#echo“$lis”|CheckSeq.pl|sed“${利曼斯}q“|sed's/://'>$tmp5如果[-s$tmp5]#如果1然后是#然后是1如果[“$debug”-eq 1];然后cp$tmp5 jonk005223;echo“在005223,完成CheckSeq.pl”;#从表中拿出那些A数字#并按空格分隔条目sh$tmp5|sed'/^%I/I\'>>$tmp3如果[“$debug”-eq 1];然后是cp$tmp3 jonk005224;echo“在005224,完成sh”;#有什么好消息吗?如果grep“%I”$tmp3>/dev/null然后#看看有多少点击nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`echo>>$tmp3猫$tmp3>>$ans其他的nhits=0如果[“$debug”-eq 1];然后是cp$tmp3 jonk005225;echo“在005225,完成CheckSeq.pl”;fi#fi 1fi#fi 0#####################################################LINDERMAN结束############################################################################################################这是一个严重的请求吗?#######################################################noc=`wc-c$req|gawk'{print$1}'`noc=`expr$noc \-10`now=`cat$req|tr','''wc-w|gawk'{print$1}'`如果[“$noc”-lt“$nocmin”-o“$now”-lt$nowmin]然后(回声echo“回复$addr:”猫$ans回声echo“序列中至少需要$nocmin个字符(计算分隔空白),以及至少$nowmin项,以进行进一步分析”回声)>>$log(回声echo“序列中至少需要$nocmin个字符(计算分隔空白),以及至少$nowmin项,以进行进一步分析”猫$D1/superfoot0echo)>>$ans#cat$ans|upasname=supereq-reply邮件“$addr”#cat$ans |/usr/lib/sendmail-f supereq-reply“$addr”(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0fi(菲涅耳)#########################################################看看差异:序列是n中的多项式吗?#########################################################调用超级进程1猫$req$D1/superproc1 |$MAPLE>$tmp2如果[“$debug”-eq 1];然后是cp$tmp2 jonk006;echo“在006,检查差异”;$ex-s$tmp2</d日克/^#/天克/^\$/天\美元.g/^字节/天w个q个!如果grep“好”$tmp2>/dev/null然后#获得度和多边形$ex-s$tmp2<>$个#序列是试验性的吗?如果[“$deg”-le 2]然后(回声echo“回复$addr:”猫$ansecho“序列最多是2次多项式。再见!"回声)>>$log(回声echo“序列最多是2次多项式。再见!"猫$D1/superfoot0echo)>>$ans#cat$ans|upasname=supereq-reply邮件“$addr”#cat$ans |/usr/lib/sendmail-f supereq-reply“$addr”(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0其他的周期=0#(回声#echo“测试:第N个术语是N的多项式吗?”#echo“失败”#回声#)>>$个#########################################################看看差异之迷#########################################################看看差异之扇:任何一行本质上都是常量吗?#CALLS超级岩石if[$periodic-eq 0]#if 0然后猫$req$D1/superrocfan|$MAPLE>$tmp2如果[“$debug”-eq 1];然后是cp$tmp2 jonk0061;echo“在0061,检查风扇”;$ex-s$tmp2</d日克/^#/天克/^\$/天\美元.g/^字节/天w个q个!如果grep“SUCCESS”$tmp2>/dev/null然后#摘录答案$ex-s$tmp2<>$个如果[“$debug”-eq 1];然后是cp$tmp2 jonk0063;echo“在0063,末端风扇”;fi#fi 0#########################################################获取FORTRAN版本########################################################如果[“$debug”-eq 1];然后是cp$req jonk007;echo“在007,获得fortran”;如果[“$f77type”-eq 1]然后#下三条线路2007年10月30日,以避免prim上的前故障echo“$nterms”>$fort猫$req|sed's/lis//s/..$//'|tr“,”“\012”>>$fort#cp$req$fort(cp$请求$fort)#$ex-s$fort<jonk007aa;回声“在007aa”;#########################################################测试差异是否是周期性的-调用proc8########################################################如果[“$f77type”-eq 1-a$nvals-gt 2]#如果0然后猫$fort|$PROC8>$tmpif grep“SUCCESS”$tmp>/dev/null#if 1然后周期=1nhits=`expr$nhits+1`cat$tmp|sed的/SUCCESS/SUGGESTION/g'>>$ans如果[“$debug”-eq 1];然后是cp$tmp jonk007b;echo“在007b,周期性差异”;fi#fi 1fi#fi 0################################################################3##二元序列#################################################################3#如果是二进制,查找图表FNS-调用过程9如果[$f77类型-eq 1-a$nvals-eq 2]#如果0然后猫$fort|$PROC9>$tmp#$tmp保存fortran程序的输出如果[“$debug”-eq 1];然后是cp$tmp jonk007c;echo“在007c,二进制序列”;如果grep“FAIL”$tmp>/dev/null#如果1然后:else#else 1if grep“平凡”$tmp>/dev/null#if 2然后$ex-s$tmp<>$日志(回声猫$tmpecho)>>$ans(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0fi#fi 2#proc9的非平凡回报cp$tmp$tmp2$ex-s$tmp<>$个如果[“$debug”-eq 1];然后是cp$tmp jonk007e;echo“在007e,非驱动二进制”;#现在提取序列cp$tmp2$tmp$ex-s$tmp<tmp3美元####################################查找所有匹配的序列-这是用于多次查找###################################:>$tmp3读取ta时cat$tmp |;echo“”>>$tmp3echo“为\”$ta\“”>>$tmp3找到匹配项(最多50个)echo“”>>$tmp3/home/njas/www-etc/oeis/bin/search-f 3-q-n 50/home/njas/www.etc/oeis/search.db“$ta”>>$tmp3echo“”>>$tmp3完成如果[“$debug”-eq 1];然后是cp$tmp3 jonk007g;echo“在007克,查了一下箱子。”;如果grep“%I”$tmp3>/dev/null#fi 2然后#看看有多少点击nfound=`grep“%I”$tmp3|wc-l|gawk“{打印$1}”`intable=1(回声echo“成功:序列在OEIS中。”回声)>>$tmp3else#else 2nfound=0(回声echo“OEIS中没有。”回声)>>$tmp3fi#fi 2nhits=`expr$nhits+$nfound`猫$tmp3>>$ans如果[“$debug”-eq 1];然后cp$tmp3 jonk007h;echo“在007h,用二进制完成”;fi#fi 1fi#fi 0#它在OEIS中吗?如果没有,请他们发送如果[“$intable”-eq 0]然后猫$footer2>>$ans#################################################################二元段结束##################################################################################################################################GUESSGF公司##################################################################TRY GUESSGF(使用$tmp、$tmp2和$tmp3作为答案)#调用超级roc2fryohis=$nhits如果[“$debug”-eq 1];然后是cp$req jonk008;echo“在008,gfun”;#echo“测试:查找生成函数(使用GFUN)”>$tmp3猫$req$PROC2>$tmp如果[“$debug”-eq 1];然后是cp$tmp jonk008a;echo“在008a,gfun”;(ulimit-t$maptime;$MAPLE<$tmp>$tmp2)如果测试$-等式0然后如果[“$debug”-eq 1];然后是cp$tmp2 jonk008b;echo“在008b,gfun运行正常”;$ex-s$tmp2</d日克/^#/天克/^\$/天\美元.g/^字节/天g/失败/d克/错误/天克/荣/天w个q个!#查看点击次数:nfound=`grep“gf”$tmp2|wc-l|gawk'{print$1}'`如果[“$nfound”-eq 0]然后:#(回声#echo“失败”#回声#)>>$个其他的nhits=`expr$nhits+$nfound`(回声echo“建议:GUESSGF发现一个或多个生成功能”echo“警告:这些可能只是近似值!”echo“生成函数和类型为:”回声猫$tmp2回声)>>$个其他的如果[“$debug”-eq 1];然后是cp$req jonk008c;echo“在008c,gfun死了”;##############################################################GUESSGF结束######################################################################################################################尝试LISTTOREC#########################################################TRY LISTTOREC-呼叫超级巨蛋#echo“测试:查找重现(使用LISTTOREC)”>>$ans(ulimit-t$maptime;cat$req$PROC4|$MAPLE>$tmp2)如果测试$-等式0然后如果[“$debug”-eq 1];然后是cp$tmp2 jonk009;echo“009时,listtorec运行正常”;$ex-s$tmp2</d日克/^#/天克/^\$/天\美元.g/^字节/天g/失败/d克/错误/天克/荣/天w个q个!如果[“$debug”-eq 1];然后是cp$tmp2 jonk009a;echo“在009a,在listtorec中”;#查看点击次数:nfound=`grep“gf”$tmp2|wc-l|gawk'{print$1}'`如果[“$nfound”-eq 0]然后:#(回声#echo“失败”#回声#)>>$个其他的nhits=`expr$nhits+$nfound`(回声echo“建议:LISTTOREC发现一个或多个复发”echo“警告:这些可能只是近似值!”echo“重复次数和类型为:”回声猫$tmp2回声)>>$个其他的如果[“$debug”-eq 1];然后是cp$req jonk009c;echo“009c,listtorec去世”;#########################################################尝试LISTTOALGEQ#########################################################尝试LISTTOALGEQ-调用superproc6fry如果[“$debug”-eq 1];然后是cp$req jonk010;echo“在010,listalgeq”;#echo“测试:寻找生成满足的代数方程#功能(带LISTTOALGEQ)“>>$ans猫$req$PROC6>$tmp如果[“$debug”-eq 1];然后是cp$tmp jonk010a;echo“在010a,listalgeq”;(ulimit-t$maptime;$MAPLE<$tmp>$tmp5)#$MAPLE<$tmp>$tmp5如果[“$debug”-eq 1];然后是cp$tmp5 jonk010aa;echo“在010aa,listalgeq结束”;如果测试$-等式0#如果为3然后是#然后是3如果[“$debug”-eq 1];然后是cp$tmp5 jonk010b;echo“在010b,listtoalgeq运行正常”;$ex-s$tmp5</d日克/^#/天克/^\$/天\美元.g/^字节/天g/失败/d克/错误/天克/荣/天w个q个!#查看点击次数:nfound=`grep“gf”$tmp5|wc-l|gawk'{print$1}'`if[“$nfound”-eq 0]#if 7然后是#,然后是7:#(回声#echo“失败”#回声#)>>$个else#else 7nhits=`expr$nhits+$nfound`(回声echo“建议:LISTTOALGEQ发现一个或多个代数发电机满足的方程式FN。"echo“警告:这些可能只是近似值!”echo“方程和类型为:”回声猫$tmp5回声)>>$个fi#fi 7#追加gen-fns类型?如果[$nhits-gt$ohits]#如果8然后是#然后是8猫$D1/superfoot1>>$ansfi#fi 8else#else 3如果[“$debug”-eq 1];然后是cp$req jonk010c;echo“在010c,listalgeq死了”;fi#fi 3######################################################################GUESS公司#######################################################################尝试猜测(使用$tmp、$tmp2和$tmp3作为答案)#使用超级猜测,lis_mapleohis=$nhits如果[“$debug”-eq 1];然后回显$lis_maple>jonk018;echo“018,开始猜测”;(echo$lis_maple;cat$D1/超级访客)>$tmp如果[“$debug”-eq 1];然后是cp$tmp jonk018a;echo“018a,猜测”;:>$tmp2(ulimit-t$maptime;$MAPLE<$tmp>$tmp2)如果[“$debug”-eq 1];然后是cp$tmp2 jonk018b;echo“018b,猜测完成”;如果grep“^SUCCESS”$tmp2>/dev/null#if0然后#然后0如果[“$debug”-eq 1];然后回显“018c,guess成功”;$ex-s$tmp2</d日克/^#/天g/^字节/天w个q个!如果[“$debug”-eq 1];然后cp$tmp2 jonk018d;echo“018d,”;nhits=`expr$nhits+1`(回声echo“TRY\”GUESSS\“,HARM DERKSEN为序列猜测生成函数的程序。”回声echo“猜测-猜测一个序列,Harm Derksen(hderksen@math.mit.edu公司)"回声猫$tmp2回声)>>$个如果[“$debug”-eq 1];然后是cp$ans-jonk018e;echo“018e”;其他#else0如果[“$debug”-eq 1];然后是cp$req jonk018f;echo“018f,猜测失败”;fi#fi0##############################################################GUESSGF结束################################################################################################################################## ##费率## ######################################################################TRY RATE(使用$req、$tmp、$tmp2和$tmp3作为答案)#使用superrate.m,lis_maple#不要忘记$req是存储“f,1,2,3,4,”seq的文件名!ohis=$nhits#如果有0个术语,甚至不要尝试如果[$zterm-eq 0]然后是#然后是2:else#else 2lis_mma=`echo$lis_maple|sed'的///s/..$//'`如果[“$debug”-eq 1];然后回显$lis_mma>jonk019;echo“在019,开始速度”;#在速率消逝时生成一个虚拟输出文件echo“输入[1]:=输出[4]//输入窗体={}在[5]中:=输出[5]=从速率返回“>$tmp(ulimit-t$maptime;echo“<<超速率\`\“通话费率\”拉特库兹[$lis_mma美元]输入表单[Out[3]]\“从费率返回\”退出[]“|$MATH-批处理>$tmp)#保存状态如果测试$-无0然后zdied=1如果[“$debug”-eq 1];然后回音“RATE failed,exit status 1”;其他的zdied=0如果[“$debug”-eq 1];然后是cp$tmp jonk019a;echo“在019a,速率完成”;#看看是否有执照问题如果grep“联系Wolfram Research”$tmp>/dev/null然后zdied=1如果[“$debug”-eq 1];然后回应“RATE:Mma失败,许可证问题”;#看看它是不是因为提前终止合同而死亡lll=`wc$tmp|gawk'{print$1}'`如果测试$lll-lt 16然后zdied=1如果[“$debug”-eq 1];然后回应“RATE:Mma失败,提前终止”;如果测试“$zdied”-eq 0#if0然后是#,然后是0$ex-s$tmp<>$个如果[“$debug”-eq 1];然后cp$ans-junk019e;echo“在019e”;其他#else1如果[“$debug”-eq 1];然后是cp$req jonk019f;echo“在019f,速率失败”;fi#fi1fi#fi0fi#fi2##############################################################费率结束############################################################################################################################我们做得够了吗?##############################################################if[“$tough”-eq 0]#if0然后#然后0如果[“$nhits”-ge 9-o“$intable”-eq 1]#if1然后#然后1(回声echo“回复$addr:”猫$ansecho“现在可能已经足够了。如果这个回答你不满意,请用更多条件再试一次!" 回声)>>$log(回声echo“现在可能已经足够了。如果这个回答你不满意,请用更多条件再试一次!" 猫$D1/superfoot0echo)>>$ans#cat$ans |/usr/lib/sendmail-f supereq-reply“$addr”(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0fi#fi1fi编号fi0如果[“$debug”-eq 1];然后回声“在010d”;#############################################################################对序列应用各种变换##############################################################################TRY FINDHARD-调用超级岩石#后来被Olivier Gerard在superOlivF中的Mma所取代#现在被seqtranslib.m取代#tmp3最初有Mma输出,然后会被覆盖#tmp2包含115个左右的转换序列#tmp3以长格式匹配一个xfmd序列#tmp将收到包含本节中所有匹配项的BIG报告#tmp4将包含(<=100个匹配项)报告#ans(如上所述)是要发送给用户的消息#启动此节的报告的报告文件:>$tmp(echo“测试:对序列应用各种变换并查看再次进入百科全书“回声echo“成功”echo“(限制为100个匹配项):”echo)>$tmp4如果[“$debug”-eq 1];然后回声“在010e”;(ulimit-t$maptime;猫“$req”|sed的/^/theseq={/'|sed的/..$/};/';echo“获取[\”/home/njas/bin/seqtranslib.m\“];WriteSeekerList[SuperTrans[theseq],\$Output];“)|$MATH-批处理>$tmp3#看看是否有执照问题if grep“联系Wolfram Research”$tmp3>/dev/null然后zdied=1如果[“$debug”-eq 1];然后echo“FINDHARD:Mma失败,许可证问题”;其他的zdied=0#它跑了吗?如果测试“$zdied”-eq 0#if 0然后是#,然后是0猫$tmp3|sed'/T/!d日/T001/s/^.*T/T//,/s//,/g'>$tmp2如果[“$debug”-eq 1];然后cp$tmp2 jonk10f _tmp2;cp$tmp3 jonk10f_tmp3;echo“在010f”;###############################################将转换后的序列输入“搜索”命令###############################################:>垃圾cat$tmp2|sort-t“”-u+1-2|#删除重复项同时读取T S U;do#T=转换编号,S=序列,U=空#do_1#echo“$T”>>垃圾#echo“$S”>>垃圾#echo“$U”>>垃圾#echo“”>>垃圾#获取转换序列S的长度(以字符为单位)len1=`echo“$S”|wc-c`#echo“len1=$len1”>>垃圾如果[“$len1”-gt 10]#if_2然后#then_2#回波“在010fa”echo“Transformation$T与以下序列进行了匹配(最多10个):”>$tmp3#echo“在010fb”$DB/搜索-f 3-q-n 10$DD$S>$tmp5#echo“在010fc”猫$tmp5>>$tmp3#回波“在010fd”#echo“at 010fd”>>垃圾#猫$tmp5>>垃圾#echo“在010fe”#退出0#这一转变有什么亮点吗?nhits=`cat$tmp3|grep“%I”|wc-l`#echo“nhits=$nhits”>>垃圾如果[“$nhits”-ge 1]#if3然后#then_3猫$tmp3>>$tmpfi#fi_3菲#菲_2完成#done_1#此时,$tmp包含FINDHARD的长结果如果[“$debug”-eq 1];然后是cp$tmp2 jonk011;cp$tmp jonk011FR;echo“在011,数学运行良好”;#点击了多少次?nfound=`grep“^%I”$tmp|wc-l|gawk'{print$1}'`#“如果”语句的开头Annabel如果[$nfound-gt 0]然后是#安娜贝尔的“然后”#是的,有命中率!#只保留前100场比赛猫$tmp|gawk'/%I/{count=count+1如果(计数>100)退出0其他的打印}$0 !~ /%I/{print}'>>$tmp4如果[“$debug”-eq 1];然后是cp$tmp4 jonk013a;echo“在013a”;nhits=`expr$nhits+$nfound`#拔出T编号并解释:echo>>$tmp4echo“使用的转换列表:”>>$tmp4cat$tmp4|gawk'/^Transf/{print$2}'|sort-u>$tmp3猫$tmp3中的i`grep-h“^$i”$D1/超级传输>>$tmp4完成猫$D1/superfoot2>>$tmp4(回声猫$tmp4回声)>>$个fi#安娜贝尔的“fi”fi#fi 0如果[“$debug”-eq 1];然后是cp$tmp4 jonk014;echo“在014”;##############################################################转换部分结束###############################################################在表中查找近距离序列-称为超耳朵####if[“$intable”-eq 0]#if 0####然后#### #####删除符号!####猫$req|tr-d'\055'>$tmp#####运行Maple####猫$tmp$D1/超新星|$MAPLE>$tmp2#### ####如果[“$debug”-eq 1];然后是cp$tmp2 jonk014;回波“在014,L1测试”;#####处理输出####不含$tmp2</d日####克/^#/天####g/^\$/d####\$a(美元)#### #### .####g/^字节/天####克/,/秒/克####g/AA/s/A 1//####w个####q个#### !#### #####此时$tmp2包含Maple的结果#### #####点击了多少次?####nfound=`grep“HIT”$tmp2|wc-l|gawk'{print$1}'`#### ####if[“$nfound”-eq 0]#if 1####然后#### :#####(回声#####echo“失败”#####回声#####)>>$个####else#else 1####nhits=`expr$nhits+$nfound`#####拉出A数字,将其输入$tmp3####rm-f$tmp4####echo>>$tmp2####cat$tmp2|gawk'/HIT/{print$2}'|sort-u>$tmp3#####获取相应的序列本身,放入$tmp4####猫$tmp3中的i`####做####grep-h“^%[A-Za-z]$i”$文件>>$tmp4####已完成#### #####清理$tmp2####不含$tmp2<>$tmp2(美元)####echo“提到的序列列表:”>>$tmp2#####按空格分隔条目####不含-$tmp4<>$tmp2(美元)#### #####查找参考####猫$tmp4|gawk'/^%R/{####对于(i=3;i<=NF;i=i+1)打印$i####}'|tr-cd“[a-z][a-z][0-9]\012”|排序-u|sed'/^[1-9]/'d>$tmp####猫$tmp中的我`####做####grep-h“^.$i”$shortbib$shortibb3>>$tmp2####完成#### ####(回声####类别$tmp2####回声####)>>$个####fi#fi 1#### ####fi#fi 0#### ##########################################################BEATTY测试#########################################################如果[“$debug”-eq 1];然后是cp$req jonk015aaa;echo“在015aaa,进入beatty”;(ulimit-t$maptime;cat$req$D1/superbeattyprim|$MAPLE>$tmp2)如果测试$-等式0然后如果[“$debug”-eq 1];然后是cp$req jonk015aab;echo“015aab,比蒂跑得不错”;如果[“$debug”-eq 1];然后是cp$tmp2 jonk015aac;echo“在015aac”;#它跑了吗?如果grep“CUT”$tmp2>/dev/null#如果0然后是#,然后是0#处理输出$ex-s$tmp2</d日克/^#/天克/^\$/天\美元.g/^字节/天克/,/秒/克w个q个!#此时$tmp2包含Maple的结果#点击了多少次?nfound=`grep“BEATTY”$tmp2|wc-l|gawk'{print$1}'`如果[“$debug”-eq 1];然后echo$nfound>jonk015a;echo“在015a”;if[“$nfound”-eq 0]#if 1然后是#然后是1:#(回声#echo“失败”#回声#)>>$个else#else 1nhits=`expr$nhits+$nfound`echo“测试:这是一个美丽的序列吗?”>>$ans#echo“测试:这是一个贝特序列还是准线性序列?”>>$ansecho>>$ans如果grep-h“BEATTY0”$tmp2>$tmp3然后xxx=`cat$tmp3|gawk'{print$3}'`echo建议:这似乎是一个Beatty序列[nz],z大约为“$xxx”>>$ansecho>>$ans#如果grep-h“BEATTY1”$tmp2>$tmp3#然后#xxx=`cat$tmp3|gawk'{print$2}'`#echo SUCCESS:部分和序列是一个Beatty序列[nz],z大约为“$xxx”>>$ans#echo>>$ans#fi(菲涅耳)#如果grep-h“BEATTY2”$tmp2>$tmp3#然后#echo“成功:部分和的序列是准线性的:#与[1,2,3,…]的相关性超过.999“>>$ans#echo>>$ans#fi(菲涅耳)#如果grep-h“BEATTY3”$tmp2>$tmp3#然后#echo“成功:序列是准线性的:#与[1,2,3,…]的相关性超过.999“>>$ans#echo>>$ans#fi(菲涅耳)猫$D1/superfootb>>$ansfi#fi 1fi#fi 0其他的如果[“$debug”-eq 1];然后是cp$req jonk015z;回声“在015z,贝蒂死了”;###########################################BEATTY测试结束###########################################1112##2008年11月12日我正在尝试对此进行评论#1112# ###############################################################1112# ##1112##滴水试验=差异表查找#1112# ##1112##Jul 01 2004序列与第一个差异表匹配吗?#1112# ##1112# ###############################################################1112# #1112# #1112##如果表中的序列已经存在,则跳过此测试#1112#if[$intable-eq 0]#if 0#1112#然后#然后0#1112# #1112#(使用$reqa(用于输入)、$tmp5和$tmp3作为答案)#1112# #1112#if[“$debug”-eq 1];然后echo“$intable,$nterms”>jonkdrip1;cp$reqa jonkd1a;回声“在滴1,运行滴测试”;#1112# #1112#echo>$tmp3#1112#echo“建议:您的序列似乎与第一个差异相匹配#包络体中以下序列的1112#(最多$limans):“>>$tmp3#1112#echo“”>>$tmp3#1112# #1112##查找所有匹配的序列#1112#f(){#1112#echo“”>>$tmp3#1112#echo“找到$*的匹配项(上限为50):”|tr“,”“>>$tmp3#1112#grep-h$*$滴下|#1112#awk'$2~“^A”{print“grep-h”^%[A-Za-z]“$2”\“$files”}'|#1112#sed“${利曼斯}q" |#1112#sh>>$tmp3#1112# }#1112# #1112# . $雷卡#1112# #1112#if[“$debug”-eq 1];然后cp$tmp3 jonkdrip2;echo“在滴2,完成查找”;#1112# #1112#使用$tmp5作为临时存储,$tmp6保存输出,对$tmp3进行排序#1112#gawk-v tf=$tmp5'#1112#开始{head=1;内部=0}#1112##标题行#1112# $0 !~ /^匹配/&&head==1{print;next}#1112##第一个“匹配”#1112#$0~/^匹配/&&head==1{print;head=0;inside=1;nlines=0;print(“”)>tf;next}#消息中的1112###1112# $0 !~ /^匹配/&&inside==1{print>>tf;nlines++;next}#1112##出现一个新的Match#1112#$0~/^匹配/&&内部==1{#1112#if(线>=4)#1112#系统(“hisreake”tf)#1112#其他#1112#打印(“”)#1112#打印;关闭(tf);nlines=0;打印(“”)>tf;下一个#1112# }#1112#END{if(行>=4)#1112#系统(“hisreake”tf)#1112#其他#1112#打印(“”)#1112# }#1112#'$tmp3>$tmp6#1112# #1112#cp$tmp6$tmp3#1112# #1112##用空格分隔条目#1112#$ex-s$tmp3</开发/空#1112#则#1112##查看点击次数#1112#nhits=`grep“%I”$tmp3|wc-l|gawk'{print$1}'`#1112#(回声#1112#echo“成功:序列匹配OEIS中序列的差异。”#1112号回声#1112号)>>$tmp3#1112#猫$tmp3>>$ans#1112#其他#1112#nhits=0#1112号过滤器#1112#if[“$debug”-eq 1];然后是cp$tmp3 jonkdrip3;echo“在滴漏3处,查找不到”;#1112# #1112#fi#fi 0#1112# #1112# #1112# #####################################################1112##滴水回路结束#1112# #################################################################################################################################对序列应用各种变换,并对照滴水表进行检查#############################################################################试一试芬达-称为超级巨无霸或橄榄油(2/98)#现在在superOlivF中被Olivier的数学内容取代#对序列应用各种变换并查看#再次出现在差异表中#tmp3最初具有Mma输出,但随后将被覆盖#tmp2包含115个左右的转换序列#tmp3以长格式匹配一个xfmd序列#tmp4将包含(<=100个匹配项)报告#tmp将有BIG报告#ans(如上所述)=给用户的消息#启动此节的报告的报告文件:>$tmp(echo“测试:对序列和针对OEIS中序列的第一个差异进行检查”回声echo“成功”echo“(限制为100个匹配项):”echo)>$tmp4如果[“$debug”-eq 1];然后echo“在dript1开始转换时+差异表”;(ulimit-t$maptime;猫“$req”|sed的/^/theseq={/'|sed的/..$/};/';echo“获取[\”/home/njas/bin/seqtranslib.m\“];WriteSeekerList[SuperTrans[theseq],\$Output];“)|$MATH-批处理>$tmp3#看看是否有执照问题if grep“联系Wolfram Research”$tmp3>/dev/null然后zdied=1如果[“$debug”-eq 1];然后echo“FINDHARD(diff):Mma失败,许可证问题”;其他的zdied=0#它跑了吗?如果测试“$zdied”-eq 0#if 0然后是#,然后是0猫$tmp3|sed'/T/!d日/T001/s/^.*T/T//,/s//,/g'>$tmp2如果[“$debug”-eq 1];然后是cp$tmp2 jonkdript2;cp$tmp3 jonkdript2a;echo“滴水2”;#将转换后的序列输入到qkfastcat$tmp2|sort-t“”-u+1-2|#删除重复项同时读取T S U;do#T=转换编号,S=序列,U=空#do_1#获取转换序列S的长度(以字符为单位)len1=`echo“$S”|wc-c`如果[“$len1”-gt 10]#if_2然后#then_2$D1/qk_fast_drip“$S”>$tmp5#这一转变有什么亮点吗?nhits=`cat$tmp5|grep“A”|wc-l`如果[“$nhits”-ge 1]#if3然后#then_3#expand:用完整序列替换qkfast结果echo Transformation“$T”进行了匹配,第一个差异为:>$tmp3cat$tmp5|读取dum1 Anum dum2时#下一个:在这里表演Anum$DB/search-f 3-q id:“$Anum”$S>$tmp5#grep“^..$Anum”/home/njas/gauss/hisdir/cat25>>$tmp3echo“”>>$tmp3完成猫$tmp3>>$tmpfi#fi_3菲#菲_2完成#done_1#此时,$tmp包含FINDHARD的长结果如果[“$debug”-eq 1];然后是cp$tmp2 jonkdript3;cp$tmp jonkdript3a;echo“在滴水处3,数学运行良好”;#点击了多少次?nfound=`grep“^%I”$tmp|wc-l|gawk'{print$1}'`#“如果”语句的开头Annabel如果[$nfound-gt 0]然后是#安娜贝尔的“然后”#是的,有命中率!#只保留前100场比赛猫$tmp|gawk'/%I/{count=count+1如果(计数>100)退出0其他的打印}$0 !~ /%I/{print}'>>$tmp4如果[“$debug”-eq 1];然后cp$tmp4 jonkditpt4;echo“滴水4”;nhits=`expr$nhits+$nfound`#拔出T编号并解释:echo>>$tmp4echo“使用的转换列表:”>>$tmp4cat$tmp4|gawk'/^Transf/{print$2}'|sort-u>$tmp3猫$tmp3中的i`grep-h“^$i”$D1/超级传输>>$tmp4完成猫$D1/superfoot2>>$tmp4(回声猫$tmp4回声)>>$个fi#安娜贝尔的“fi”fi#fi 0如果[“$debug”-eq 1];然后是cp$tmp4 jonkdript5;echo“滴水5”;##############################################################改造结束+滴水段###############################################################已完成。发送回复如果[“$debug”-eq 1];然后是cp$ans-jonk999;echo“在999”;(回声echo“回复$addr:”猫$ans回声)>>$log猫$D1/superfoot0>>$ans(echo“收件人:$addr”;echo”主题:超级搜索回复“;cat$ans)|/usr/lib/sendmail-f supereq-reply“$addr”退出0====================================================================================================================================================================================================================程序“dehtml.c”,编译名为dehtmlP====================================================================================================================================================================================================================#包括/*dehtml(深度):**在stdin上执行以下处理:** <.*> => ""* > => '>'* < => '<'*  => ' '*等*/#定义MAX_AMPR_LEN(7)int main(无效){整数c;字符字符串[MAX_AMPR_LEN+1];整数i;str[MAX_AMPR_LEN]=0;while((c=getchar())=EOF){开关(c){案例“<”:while((c=getchar())=EOF){如果(c=='>')中断;}断裂;大小写“&”:对于(i=0;i");}否则if(!strcmp(str,“lt;”)){printf(“<”);}else if(!strcmp(str,“nbsp;”){printf(“”);}else if(!strcmp(str,“amp;”)){printf(“&”);}else if(!strcmp(str,“eacute;”)){printf(“e”);}else if(!strcmp(str,“egrave;”)){printf(“e”);}else if(!strcmp(str,“uacute;”)){printf(“u”);}else if(!strcmp(str,“ugrave;”){printf(“u”);}else if(!strcmp(str,“Uacute;”)){printf(“U”);}else if(!strcmp(str,“Ugrave;”)){printf(“U”);}else if(!strcmp(str,“iacute;”)){printf(“i”);}else if(!strcmp(str,“iuml;”)){printf(“i”);}else if(!strcmp(str,“igrave;”)){printf(“i”);}else if(!strcmp(str,“Iacute;”)){printf(“I”);}else if(!strcmp(str,“Igrave;”)){printf(“I”);}否则if(!strcmp(str,“aacute;”)){printf(“a”);}else if(!strcmp(str,“agrave;”)){printf(“a”);}否则if(!strcmp(str,“oacute;”)){printf(“o”);}else if(!strcmp(str,“ograve;”)){printf(“o”);}else if(!strcmp(str,“ouml;”)){printf(“oe”);}否则if(!strcmp(str,“Eacute;”)){printf(“E”);}else if(!strcmp(str,“Egrave;”)){printf(“E”);}else if(!strcmp(str,“Aacute;”)){printf(“A”);}else if(!strcmp(str,“Agrave;”)){printf(“A”);}else if(!strcmp(str,“Auml;”)){printf(“Ae”);}else if(!strcmp(str,“Oacute;”)){printf(“O”);}else if(!strcmp(str,“Ograve;”){printf(“O”);}else if(!strcmp(str,“Ouml;”)){printf(“Oe”);}else if(!strcmp(str,“Uuml;”)){printf(“Ue”);}else if(!strcmp(str,“quot;”)){printf(“\”);}其他{printf(“&%s”,str);}断裂;违约:putchar(c);中断;}}如果(c!='\n')printf(“\n”);返回(0);}====================================================================================================================================================================================================================程序“dehtml3P”====================================================================================================================================================================================================================#!/箱子/ksh#dehtml3P=dehtml3 for prim将8位扩展ascii转换为简单英语#检查日期:2007年10月26日#这是他和超级明星用的,所以不要乱说!#将(大部分)所有奇怪的字符放入shell变量hA0=“echo-e”\0240“`hA1=“echo-e”\0241`hA2=“echo-e”\0242“`hA3=“echo-e”\0243“`hA4=“echo-e”\0244“`hA5=“echo-e”\0245“`hA6=`echo-e'\0246'`hA7=`echo-e'\0247'`hA8=“echo-e”\0250“`hA9=“echo-e”\0251“`hAA=“echo-e”\0252“`hAB=`echo-e'\0253'`hAC=“echo-e”\0254“`hAD=“echo-e”\0255“`hAE=“echo-e”\0256“`hAF=“echo-e”\0257'`hB0=“echo-e”\0260“`hB1=“echo-e”\0261“`hB2=“echo-e”\0262“`hB3=“echo-e”\0263“`hB4=“echo-e”\0264“`hB5=“echo-e”\0265“`hB6=“echo-e”\0266“`hB7=`echo-e'\0267'`hB8=“echo-e”\0270“`hB9=“echo-e”\0271“`hBA=`echo-e'\0272'`hBB=“echo-e”\0273“`hBC=“echo-e”\0274'`hBD=“echo-e”\0275“`hBE=“echo-e”\0276'`hBF=“echo-e”\0277'`hC0=“echo-e”\0300“`hC1=“echo-e”\0301`hC2=“echo-e”\0302`hC3=`echo-e'\0303'`hC4=“echo-e”\0304`hC5=“echo-e”\0305“`hC6=“echo-e”\0306“`hC7=“echo-e”\0307`hC8=“echo-e”\0310`hC9=“echo-e”\0311`hCA=“echo-e”\0312`hCB=“echo-e”\0313`hCC=`echo-e'\0314'`hCD=“echo-e”\0315'`hCE=“echo-e”\0316`hCF=“echo-e”\0317`hD0=“echo-e”\0320“`hD1=“echo-e”\0321`hD2=“echo-e”\0322“`hD3=“echo-e”\0323“`hD4=“echo-e”\0324“`hD5=“echo-e”\0325“`hD6=“echo-e”\0326“`hD7=“echo-e”\0327'`hD8=“echo-e”\0330“`hD9=“echo-e”\0331“`hDA=“echo-e”\0332`hDB=“echo-e”\0333“`hDC=“echo-e”\0334`hDD=“echo-e”\0335'`hDE=“echo-e”\0336`hDF=“echo-e”\0337'`hE0=“echo-e”\0340“`hE1=“echo-e”\0341`hE2=“echo-e”\0342`hE3=`echo-e'\0343'`hE4=“echo-e”\0344“`hE5=“echo-e”\0345“`hE6=`echo-e'\0346'`hE7=“echo-e”\0347“`hE8=“echo-e”\0350“`hE9=`echo-e'\0351'`hEA=“echo-e”\0352`hEB=“echo-e”\0353“`hEC=“echo-e”\0354`hED=“echo-e”\0355“`hEE=“echo-e”\0356“`hEF=“echo-e”\0357'`hF0=“echo-e”\0360“`hF1=“echo-e”\0361`hF2=`echo-e'\0362'`hF3=“echo-e”\0363“`hF4=“echo-e”\0364“`hF5=“echo-e”\0365“`hF6=“echo-e”\0366“`hF7=“echo-e”\0367“`hF8=“echo-e”\0370“`hF9=“echo-e”\0371“`hFA=“echo-e”\0372`hFB=“echo-e”\0373“`hFC=“echo-e”\0374'`hFD=“echo-e”\0375'`hFE=“echo-e”\0376`hFF=“echo-e”\0377'`#运行sed进行转换sed“s/${hA0}//gs/${hA1}//s/${hA2}/c/gs/${hA3}/L/gs/${hA4}/o/gs/${hA5}/Y/gs/${hA6}/|/gs/${hA7}/ss/克s/${hA8}/\“/gs/${hA9}/C/gs/${hAA}/@/gs/${hAB}/\“/gs/${hAC}//s/${hAD}/-/gs/${hAE}/R/gs/${hAF}/-/gs/${hB0}/deg/gs/${hB1}/+-/gs/${hB2}/^2/gs/${hB3}/^3/gs/${hB4}/\'/gs/${hB5}/mu/gs/${hB6}//gs/${hB7}//s/${hB8}//gs/${hB9}/^1/gs/${hBA}/o/gs/${hBB}/\“/gs/${hBC}/1\/4/gs/${hBD}/1\/2/gs/${hBE}/3\/4/gs/${hBF}//s/${hC0}/A/gs/${hC1}/A/gs/${hC2}/A/gs/${hC3}/A/gs/${hC4}/A/gs/${hC5}/A/gs/${hC6}/AE/gs/${hC7}/C/gs/${hC8}/E/gs/${hC9}/E/gs/${hCA}/E/gs/${hCB}/E/gs/${hCC}/I/gs/${hCD}/I/gs/${hCE}/I/gs/${hCF}/I/gs/${hD0}/TH/gs/${hD1}/N/gs/${hD2}/O/gs/${hD3}/O/gs/${hD4}/O/gs/${hD5}/O/gs/${hD6}/O/gs/${hD7}/*/gs/${hD8}/O/gs/${hD9}/U/gs/${hDA}/U/gs/${hDB}/U/gs/${hDC}/U/gs/${hDD}/Y/gs/${hDE}/TH/gs/${hDF}/ss/gs/${hE0}/a/gs/${hE1}/a/gs/${hE2}/a/gs/${hE3}/a/gs/${hE4}/a/gs/${hE5}/a/gs/${hE6}/ae/gs/${hE7}/c/gs/${hE8}/电子/克s/${hE9}/e/gs/${hEA}/e/gs/${hEB}/e/gs/${hEC}/i/gs/${hED}/i/gs/${hEE}/i/gs/${hEF}/i/gs/${hF0}/th/gs/${hF1}/n/gs/${hF2}/o/gs/${hF3}/o/gs/${hF4}/o/gs/${hF5}/o/gs/${hF6}/o/gs/${hF7}/\//gs/${hF8}/o/gs/${hF9}/u/gs/${hFA}/u/gs/${hFB}/u/gs/${hFC}/u/gs/${hFD}/y/gs/${hFE}/th/gs/${hFF}/y/g"====================================================================================================================================================================================================================程序“getfrom.c”,编译名称为getfrom2====================================================================================================================================================================================================================/**编译:cc-o getfrom-DSTANDALONE getfrom.c*运行:getfrom<{mailmessage}*该软件的作者是Eric Grosse。AT&T版权所有(c)19851994。*允许任何人使用、复制、修改和分发此软件*特此授予免费用途,前提是*包含在作为或包含副本的任何软件的所有副本中*或修改本软件以及所有支持副本*此类软件的文档。*本软件按“原样”提供,没有任何明示或暗示*保修。特别是,无论是作者还是AT&T都没有*任何有关适销性的陈述或保证*本软件或其对任何特定用途的适用性。*/#包括#包括整数不安全(字符*s){字符c;/*检查shell解释的字符(邪恶的否则用户可能会闯入系统)*/对于(c=(*s);c!='\0'; c=(*++s)){if(strchr(“\”'`$\n;&|^<>()\\“,c)||(c&0200)){fprintf(stderr,“不安全(%s)看到%c\n”,s,c);返回(1);}}返回(0);}/**从RFC822“从”行中提取发送方地址*发送方是下一个用空格分隔的标记或*“<”“>”中包含的第一件事。*(输入前已删除前导“发件人:”)*改编自/n/bowell/src/cmd/upas(Dave Presotto)*由Eric Grosse修改为在逗号后停止,并允许嵌套paren*/成功时为int/*0,如果地址不可分析或不安全则为1*/getfrom(char*line,char*sender){字符*lp,*sp;int注释=0;int anticomment=0;sp=发送方;for(lp=line;*lp;lp++){if(注释){如果(*lp==')'){注释--;}else if(*lp=='('){注释++;}继续;}if(反注释){if(*lp=='>')断裂;}开关(*lp){案例'\t':案例“\n”:断裂;案例“”:if(strncmp(lp,“at”,sizeof(“at”)-1)==0||strncmp(lp,“AT”,sizeof(“AT”)-1)==0){*sp++=“@”;lp+=尺寸(“at”)-2;}断裂;案例“<”:反注释=1;sp=发送方;断裂;大小写“(”:注释++;断裂;大小写“,”:/*看起来像多个地址;砍*/*sp++=“\0”;违约:*sp++=*lp;断裂;}}*sp=“\0”;if(!*sender||unsafe(sender))返回1;返回0;}#ifdef标准#定义LINESIZE 1026字符行[LINESIZE];/*原始输入行*/来自[LINEIZE]的char;/*从线条展开*/字符地址[LINEIZE];/*返回地址*//*类似于gets(),但安全*/字符*获得(s,m)字符*s;整数m;{if(fgets(s,m,stdin)==NULL)返回(NULL);m=结构-1;如果(s[m]=='\n')s[m]=“\0”;申报表;}/*独立于大小写的前缀比较*/整数cicmp(char*s1,char*s2){整数c1,c2;对于(;*s1;s1++,s2++){c1=*s1;c2=上(*s2)?tolower(*s2):*s2;如果(c1!=c2)返回-1;}返回(0);}空隙main(int argc,char**argv){内部int=0,回复=0;字符c,*p;while(getsn(line,LINESIZE)!=空){c=线[0];if(内部){/*展开*/如果(c==''|c==''){if(字符串(行)+字符串(自)>=LINESIZE){fprintf(stderr,“From line too long\n”);出口(1);}strcat(来自,行);继续;}else{/*不是延续*/内部=0;}}如果(c=='\0'){断裂;/*邮件头的结尾*/}else if(!replyto&&strncmp(“发件人”,第5行)==0){strcpy(从,第+5行);if(p=strchr(from,''))*p='\0';/*盖章日期*/}else if(strlen(line)>9&&cicmp(“回复:”,line)==0){strcpy(起始,第+9行);内侧=1;回复=1;}else if(!replyto&&strlen(line)>5&&cicmp(“from:”,line)==0){strcpy(从,第+5行);内侧=1;}}if(getfrom(from,address))出口(1);put(地址);退出(0);}#结尾====================================================================================================================================================================================================================程序“CheckSeq.pl====================================================================================================================================================================================================================#!/usr/common/bin/perl.new-w#CRC=4110317807使用严格;使用FileHandle;my$SeqFile=$ENV{SeqFile}||'/home/njas/gauss/hisdir/strippedfry';my$MinTerms=$ENV{MinTerms}||0;$MinTerms=20,除非($MinTerms>=1);#%S A088674,1,3,6,45126750279619389758944495622027796122117945789559633278732416775304976664207750378641830286825948194152996867149287259097158473746101572269062276868681484430536591592,#%S A088675,0,1,2,8,3616065623687666429440184896117427233952002122240017896192016381890562744929664028750714888323426373120101383432314884220121799536643426627065331712592939997091528704,#%S A088676,1,2,2,2,3,3,3,12,4,4,5,5,5,5,6,6,6,6,7,7,8,9,9,9,9,10,11,12,14,#%S A088677,2,1,2,3,1,2,5,6,2,5,1,4,5,11,6,9,10,11,13,14,8,17,11,4,11,16,19,20,22,27,16,22,23,24,#%S A088679,0,1,2,6,482880995328011579079884800152668842365908342643097600002622124735801489128691218589990322256745316480000000,#%S A088682,4,6,10,10,10,8,10,8,14,6,8,8,10,12,6,16,10,16,8,6,18,12,14,10,12,12,8,14,12,10,10,16,8,12,12,14,8,12,12,12_6,18,6,12,12,12,12,18,12,12,18,8,12,24,6,14,28,18,12,16,8,22,6,8,2,6,6,6,12,8,12,8,12,28,6,6,#%S A088683、6,6,8,6,6,12,10,10,12,12,12,12,12,14,6,8、12,6,20,6,14,12,12:10,12,12、12,12,18,24,12,16、8,10,22,10,14,18,12,14,12,22、12,12,6,18,24,18,18,14,16,12,16,12,22,10,14,14,18、14,14,8,10,10,16,40,14,24,6,#%S A088684、6,6,8,6,6,10,6,6、10,12、10,8,4,6,12,12,10,24,6,16,10,12,14,12,10,6,20,12,12:14,16,16,8,16,18,10,18,14,6,24,6、6,24,18,12,10,14,12,12,8,6,14,10,12,12,8,12,6,12,16,12,20,12,8,14,14,20,6,18,2,6,#%S A088680,2,4,4,4,1,4,2,4,6,6,2,4,14,8,2,2,4,6,10,6,4,6,10,4,12,4,12,2,4,12,4,4,4,66,6,14,10,6,8,6,6,6,2,2,6,2,6,4,18,4,8,10,2,2,14,4,2,2,20,8,8,6,4,6,#%S A088681,2,2,2,6,6,2,6,2,2,4,4,6,6,14,6,12,6,4,4,12,6,12,2,6,10,6,4,10,4,8,2,4,8,12,4,2,4,12,18,10,6,6,62,6,2,10,4,6,12,6,10,10,10,6,4],6,8,14,12,10,12,10,4,4,4,4',4,5,6,5,4,5,10,8,6,10,4,10,#每个元素可能出现在多个位置。#按元素索引散列,并存储位置的散列#该元素发生的位置。子hash_elements{my$elem_ref=移位;my($i,%散列);对于($i=0;$i<@$elem_ref;++$i){$hash{$elem_ref->[$i]}{$i}=1;}返回\%hash;}#为了构成有效重叠,#a)一个序列必须在另一个序列中开始(或结束),以及#b)该序列的其余部分(或前一部分)必须匹配#直到两个序列都用完#qhash允许快速检查元素的存在#在查询序列中,以及(如果存在)发生的位置。子检查覆盖{my($seqno,$need,$qhash,$qelem,$elems)=@_;my($elem,$posns,$posn,$span,$i);$need=@$elems-if($need>@$elems);$elem=$elem->[0];#也许其他起点在查询中if(存在($qhash->{$elem})){$posns=$qhash->{$elem};职位1:foreach$posn(排序{$a<=>$b}键(%$posn)){$span=(@$qelem-$posn);#查询序列遵循多少$span=@$elems if(@$elems<$span);#其他端优先最后,除非($span>=$need);#太短,越来越短对于($i=1;$i<$span;++$i){#已知匹配的索引0下一个POS1,除非($qelem->[$posn+$i]eq$elem->$i]);}打印(“$seqno:$posn 0$span\n”);回报;}}$elem=$elem->[-1];#可能查询中的其他端if(存在($qhash->{$elem})){$posns=$qhash->{$elem};职位2:foreach$posn(排序{$b<=>$a}个键(%$posn)){$span=$posn+1;#此处结束的查询序列长度$span=@$elems if(@$elems<$span);#其他稍后启动最后,除非($span>=$need);#太短,越来越短对于($i=$span;--$i>0;){下一个POS2除非($qelem->[$posn-$i]eq$elem->[-$i-1]);}$posn-=$span-1;#匹配中的第一个查询位置$i=@$elems-$span;#其他位置中的第一个位置打印(“$seqno:$posn$i$span\n”);回报;}}回报;}次干管{my$fh=新的FileHandle;my($qline,$line,@query_elem,$query);my($seqno,@elems,$seq,$need);我的($i,$posn,$span);open($fh,“<$SeqFile”)||die(“打开序列文件$SeqFile:$!失败”);while($qline=<>){chomp($qline);@query_elem=拆分(/[^-0-9]+/,$qline);当(@query_elem&&($query_lem[0]!~/\d+/));pop(@query_elem)while(@query_elem&&($query_elem[-1]!~/\d+/));if(@query_elem){$qline=连接(','=>'',@query_elem,'');$query=哈希元素(\@query_elem);$need=(@query_elem<=1.2*$MinTerms)?int(.75*@query_elem):$MinTerms;如果($need<1),$need=1;seek($fh,0,0)||die(“回放$SeqFile:$!失败”);while($line=<$fh>){(undef,$seqno,$seq)=分割(“”,$line);如果(($i=索引($seq,$qline))>=0){$posn=($i==0)?0:(子项($seq,0,$i-1)=~tr/,//);$span=@query_elem;打印(“$seqno:0$posn$span\n”);下一步;}#不包括尾部空白字段@元素=分割(','=>$seq);移位(@elems);#消除空白前导字段check_overlap($seqno、$need、$query、\@query_elem、\@elems)if(@elems);}}}}main();__完__=头1名称CheckSeq.pl-根据序列数据库检查查询序列=标题1概要检查序列pl F...=标题1示例#对标准数据库运行查询CheckSeq.pl查询#相同,但重置最小重叠阈值MINTERMS=10 CheckSeq.pl查询#使用不同的序列数据库SEQFILE=/some/other/database CheckSeq.pl查询=头1描述B类读取查询序列,每行一个,从指定的F开始第页,或来自F如果没有F已指定。对于序列数据库中的每个序列与查询序列“充分重叠”,生成一行摘要,如下所示。A088676:3 0 34第一个值是中匹配序列的名称序列数据库。接下来的三个数值是=大于4=项目1查询匹配中的位置(从B<0>开始)重叠子序列。=项目2数据库序列中的位置(从B<0>开始)重叠子序列。=项目3重叠子序列的长度。=后4大致来说,两个序列I如果你能“排列”序列的元素因此,他们在某些条款上达成一致,但在任何条款上都不一致。更正式地说,我们将说一个序列B序列B如果存在索引B和B和长度BE类B<0>这样对于所有BE类B类,S1[I1+I]==S2[I2+I]并且以下至少一个条件成立。=大于4=项目重叠部分包括整个B序列。=项目重叠部分包括整个B序列。=项目重叠部分包括一个序列的开始部分和另一序列的结束部分。=后4因为这样定义的重叠总是包括至少一个序列,为匹配始终为B<0>。长序列的小重叠并不特别值得注意。环境变量B的值(默认B<20>)确定I长度的下限重叠用于长序列。当然,短查询序列不能保持固定的标准。因此,对于短于B<1.2*MINTERMS>的查询序列,B<.75*length(query)>的重叠被视为I.而且,如果这甚至超过了数据库序列的长度,数据库序列的长度被视为I.=头1文件和格式默认B数据库是F类.它包含表单的行%S A077013、1、2、2、3、7、14、43、652929921154、,C<%S>只是固定的文本。后面的单词C,是序列名。后面的字符串是序列。注意前导和尾随逗号,并且没有空白或标志。整个序列必须显示在一行上。任何替代品B必须具有相同的格式。查询序列的限制较少。它们必须仍然出现在一行中,但序列中的术语可以用空格隔开,逗号或任何非空序列非数字字符。=头1作者约翰·林德曼AT&T香农实验室jpl@research.att.com=头部1 BUGS确定构成I的因素重叠有点特别。如果您提交了多个查询,摘要信息没有提供信息关于匹配的查询。=切割====================================================================================================================================================================================================================“超级巨石”计划====================================================================================================================================================================================================================#superroc7fry:序列的初始处理#1997年5月7日修改为V.4#2007年10月30日troncfry:=进程(lis)本地i,新;lnew:=lis;对于i从1开始,而长度(lnew)>148 dolnew:=新[1..nops(lnew)-1]:日期:全新;结束;lis:=troncfry(lis);#打印(`lis`);接口(prettyprint=false):接口(quiet=true):界面(屏幕宽度=320):打印级别:=2:s: =转换(lis,set):m: =最大值(op(map(abs,lis)):l: =无(lis):堡垒:=0:如果m<2^30,则fort:1;传真:打印(`CUT HERE`);打印(`NVALS`,nops(s));打印(`MAXVAL`,m);打印(`NTERMS`,l);打印(`F77TYPE`,fort);退出====================================================================================================================================================================================================================程序“superproc1”====================================================================================================================================================================================================================#超级岩石1#查看差异三角形#2007年10月30日difftriang:=进程(l)局部i,j,t,pol:t[1]:=l:对于1中的i,而constseq(t[i])=0 dot[i+1]:=[]:对于j从2到nops(t[i])dot[i+1]:=[op(t[i+1)),t[i][j]-t[i][j-1]]:日期:日期:如果i<=nops(l)-1,则pol:=0:对于从0到i-1的j dopol:=pol+二项式(n,j)*t[j+1][1]日期:pol:=简化(展开(pol)):如果长度(pol)<3*长度(l),则printf(“%s\n”,`good`);printf(“%s%d\n”,`degree`,i-1);printf(“%s\n”,`多项式是:`);lprint(pol);其他的printf(“%s\n”,`bad`);lprint(0);lprint(0);传真:其他的printf(“%s\n”,`bad`);lprint(0);lprint(0);传真:结束时间:constseq:=进程(l)本地:s: =转换(l,set):如果nops=1,则1其他0 fi:结束时间:try1:=差异(lis):退出:====================================================================================================================================================================================================================程序“superprocfan”====================================================================================================================================================================================================================#超级岩石扇#米拉·伯恩斯坦(Mira Bernstein)的多个差异表(或风扇)测试程序。#2007年10月30日interface(prettyprint=false):接口(quiet=true):界面(屏幕宽度=320):打印级别:=2:diffan:=proc(l,fanwidth,newterms)local howfar,strata,i,j,k,t,hit,len:长度:=nops(l):命中:=0:t[1]:=l:当点击=0 do时,k到扇形宽度对于i,而伪约束(t[k][i])=0 dot[k][i+1]:=[]:对于j从2到nops(t[k][i])dot[k][i+1]:=[op(t[k][i+1]),t[k=i][j]-t[k][2][j-1]]:日期:日期:如果i<=len-1,则点击:=k:howfar:=k:地层:=i-1:其他的t[k+1][1]:=[]:对于i到len do t[k+1][1]:=[op(t[k+1][1]),t[k][i][1]od:传真:日期:如果命中=0,则[失败,0]其他对于j从1到newterms dot[命中][i]:=[op(t[命中][i]),t[命中2][i][len-i]]:日期:对于从i-1到1的j,通过-1 dot[命中][j]:=扩展列表(t[命中][j],t[命中】[j+1):日期:通过-1 do将k从hit-1变为1对于i,从len+1到len+新术语dot[k][i]:=[t[k+1][1][i]]od:对于i从len+newterms-1到1 by-1 dot[k][i]:=扩展列表(t[k][i],t[k】[i+1)日期:日期:[SUCCESS,howfar,strata,t[1][1][len+1..len+newterms]];fi;结束时间:扩展列表:=进程(l1,l2)局部i,l;l: =l1:对于从nops(l1)到nops(l2)的i,做l:=[op(l),op(i,l)+op(i、l2)]od:l;结束时间:伪常量:=proc(l)局部s,n:n: =无(l):如果n>5,则s:={op(l[n-2..n])}else如果n>1,则s:={op(l[n-1..n])}其他s:=}op(l)}fi:传真:如果nops=1,则1其他0 fi:结束时间:#打印(`CUT HERE`);diffan(lis,10,4);退出====================================================================================================================================================================================================================程序“superproc8.f”,编译名为proc8====================================================================================================================================================================================================================c超级进程8.fc查看差异是否是周期性的用f77-oproc8superroc8.f编译c隐式整数(a-z)整数选项卡(0:100,0:100)nmax=100(最大值)读取(*,*)n如果(n.ge.3)转到1写入(*,2)2格式(“FAILURE”)停止1继续如果(n.gt.nmax)n=nmaxc读取序列做10 i=0,n-110读取(*,*)选项卡(0,i)c查看级别“lev”的差异do 20水平=0,n-3c set ntm=此级别的术语数量ntm=n-lev如果(lev.eq.0)转到21c需要计算差异才能达到这个水平做30 i=0,ntm-130标签(lev,i)=标签(lev-1,i+1)-标签(lef-1,i)21继续c查看是否定期c try init长度段nsegdo 40 nseg=1,ntm-2c查看行的其余部分是否与前缀一致do 50 i=nseg,ntm-1j=mod(i,nseg)c标签(lev,i)与前缀相同吗?如果(tab(lev,i).ne.tab(elev,j))转到6050继续c成功写入(*,200)200格式(“测试:某些级别的差异是周期性的吗?”)写入(*,*)“成功:顺序差异”,levwrite(*,*)“似乎是周期性的。如果是,接下来的两个术语是:”c再计算2项!j=mod(ntm,nseg)tab(lev,ntm)=tab(elev,j)tab(lev,ntm+1)=tab(lev,j+1)c向上如果(lev.eq.0)转到71do 70 ilev=标高-1,0,-1c填充行ilevitm=n-ilevtab(ilev,itm)=选项卡(ilev、itm-1)+选项卡(ilev+1、itm-2)tab(ilev,itm+1)=选项卡(ilev、itm)+选项卡(ilev+1,itm)70继续71继续写入(*,51)选项卡(0,n),选项卡(0、n+1)51格式(2i15)写入(*,*)“”c温度转储表c写入(*,*)“表”c do 80 i=0,n-2c80写入(*,81)(制表符(i,j),j=0,n-i+1)81格式(18i4)停止60继续40继续20继续写入(*,2)停止结束====================================================================================================================================================================================================================程序“superproc9.f”,编译名为proc9====================================================================================================================================================================================================================c超级进程9.fc获取二进制序列的字符fnsc fc-o程序9超级程序9.f隐式整数(a-z)整数lis(200),新(6200),len(6)nmax=200读取(*,*)n如果(n.ge.5)转到1写入(*,2)2格式(“FAILURE”)停止1继续如果(n.gt.nmax)n=nmaxc读取序列做10 i=1,n10读(*,*)lis(i)c临时打印c写(*,100)(lis(i),i=1,n)100格式(18i4)c查找级别a=lis(1)b=a做3 i=2,n如果(lis(i).eq.a)转到3b=利斯(i)转到43继续4继续c级为a和bc字符序列。1,原始序列a,b->1,2做22 i=1,nj=2如果(lis(i).eq.a)j=122新(1,i)=jlen(1)=nc字符序列。2,原始序列a,b->2,1做23 i=1,nj=2如果(lis(i).eq.b)j=123新(2,i)=jlen(2)=nc字符序列。3,a的字符fn在=0时做20 i=1,n如果(lis(i).eq.b)转到20at=at+1新(3,at)=i20继续len(3)=在c字符序列。4,b的字符fn在=0时做21 i=1,n如果(lis(i).eq.a)转到21at=at+1新(4,at)=i21继续len(4)=在c字符序列。5,运行长度c字符序列。6、导数c更改为1和2做26 i=1,nj=2如果(lis(i).eq.a)j=126利斯(i)=jc寻找跑步路线在=0时dat=0v=lis(1)运行=1i=230继续如果(lis(i).eq.v)达到33c有变化c记录刚结束的旧运行at=at+1dat=dat+1新(5,at)=运行新(6,dat)=i-1c开始新的运行运行=1v=利斯(i)如果(i.ge.n)转到31i=i+1转到30c跑步继续33次跑步=跑步+1如果(即n)转到31i=i+1转到30结尾处为c31续c at=at+1c日期=日期+1c新(5,at)=运行c new(6,dat)=运行len(5)=在len(6)=日期c完成#5c打印写入(*,52)52格式(“此处剪切”)写入(*,40)写入(*,41)写入(*,42)写入(*,43)40格式(“测试:二进制序列(比如a、b项)。”)41格式(“6个特征序列,全部等效于”)42格式(“原始(将a、b替换为1,2;替换为2,1;a的位置,”)43格式(“b的;运行长度;导数)为:”)写入(*,*)“”做99 j=1.6write(*,100)(new(j,i),i=1,len(j))写入(*,*)“”99继续c微不足道?do 44 i=1,6如果(len(i).lt.3)转到4544继续转到46c是琐碎的45继续写入(*,47)写入(*,48)47格式(“成功:因为其中一个长度<3,所以原始”)48格式(“序列微不足道”)停止46继续c而非triv,以“f”样式打印写入(*,49)49格式(“这是查找这些序列的结果”)50格式(“在百科全书中:”)写入(*,53)53格式(“简介的最后一行”)do 54 j=1.6写入(*,55)55格式(3hf,$)do 56 i=1,len(j)56写入(*,57)新(j,i)57格式(i5、1h、$)写入(*,58)58格式(1h)54继续写入(*,*)“ZZZZ”停止结束====================================================================================================================================================================================================================程序“superproc2prim”调用gfun的guessgf部分====================================================================================================================================================================================================================注意这里不包括gfun,因为它是枫叶的一部分。#superproc2prim公司#致电GUESSGF#2000年4月15日修改为使用maple6#2007年10月30日:我评论了对libname的调用#2009年2月9日,更改了libname路径#与(共享):#readshare(gfun,分析):#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV11/lib`;libname:=`/home/njas/bin/gfun.lib.3.31`,`/usr/njas/hisdir`,libname:带有(gfun):内核点(打印字节=假):l0:=3*长度(lis):t1:=猜测(lis,x,['ogf']):如果长度(t1)<l0,则打印(t1;传真:t1:=猜测(lis,x,['egf']):如果长度(t1)<l0,则打印(t1;传真:t1:=猜测(lis,y,['revogf']):如果长度(t1)<l0,则打印(t1;传真:t1:=猜测(lis,y,['revegf']):如果长度(t1)<l0,则打印(t1;传真:t1:=猜测(lis,x,['lgdogf']):如果长度(t1)<l0,则打印(t1;传真:t1:=猜测(lis,x,['lgdegf']):如果长度(t1)<l0,则打印(t1;传真:退出====================================================================================================================================================================================================================程序“superbeattyprim”====================================================================================================================================================================================================================#超级底盘#Simon Plouffe的Beatty序列检查器。#版本1.3:1994年5月4日#调用过程是:#如果序列为:lt7:=[1,2,3,4,5,6,7,8,9,10];#然后输入:maxmin(lt7);#Beatty序列是其中第n项为[nz]的序列,#其中z是无理的。互补序列为[ny],#其中1/x+1/y=1。参考:N.J.A.Sloane,#整数序列手册,1973年,第29页;R.Honsberger,Ingenuity公司#《数学》,1970年,第93页。#如果这是Beatty序列,则z的值将产生#给定的术语,但远不是唯一的。#如果序列的平方为#与自然数序列1,2,3,4,…的相关系数,。。。#超过0.999。Beatty序列必然是拟线性的。#2007年10月30日,2007年11月2日接口(prettyprint=false):接口(quiet=true):界面(屏幕宽度=320):打印级别:=2:#与(共享):与(gfun):#至#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV6/lib`;libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV11/lib`;带有(gfun):#Simon Plouffe 1997年4月发布的新版#超级美食计划,测试是否存在“r平方”相关性#在有限序列中。#相关系数>0.999。#作者:Simon Plouffe 1997年5月5日。#从早期版本更改为遵循Maple在调用#stats包函数。该函数的调用序列#在Maple表示法中不是标准的,最终可能会有错误#如果他们再改变语法的话。#许多类似的测试都是用有限差分进行的。使用(统计):数字:=16:maxmin:=进程局部i,nn,aa,a2,k,m1,m2,m3,m4,dif1,dif2,som,ave;k: =0.9999999999999;aa:=s;nn:=nops(aa);a2:=s1(aa);m1:=[seq(aa[i]/i,i=1..nn)];m2:=[seq((aa[i]+k)/i,i=1..nn)];m3:=[seq(a2[i]/i,i=1..nn)];m4:=[序列((a2[i]+k)/i,i=1..nn)];dif1:=最小值(op(m2))-最大值(op(m1));dif2:=最小值(op(m4))-最大值(op(m3));som:=(最小(op(m2))+最大(op(m1)))/2;ave:=evalf(a2[nops(aa)]/nn);打印(`CUT HERE`);如果dif1>=0,则#print(`Beatty seq.使用[n*X]生成:X=`,som)fi;打印(`BEATTY0`,som)fi;#如果evalf(stats[description,linearcorrelation](reg(s)))>0.999且dif1<0,则##print(`原始序列是未知生成器的拟线性。`)fi;#打印(`BEATTY3`,0)fi;##如果evalf(stats[description,linearcorrelation](reg(s1(s)))>0.999且dif2<0,则##print(`部分和序列是拟线性序列。`,ave)fi;#打印(`BEATTY2`,0)fi;##如果dif2>=0且evalf(stats[description,linearcorrelation](reg(s1(s)))>0.999,则##print(`Sequence of partial sums is a Beatty seq.with[(n+1)*X]-[n*X]=`,ave)fi的部分和序列;#打印(`BEATTY1`,ave)fi;结束时间:reg:=进程局部i,aa,nn,t;aa:=s;nn:=nops(aa);t:=[seq(i,i=1..nn)];返回(aa,t);结束时间:s1:=进程局部z,t1,t2,t3,t4;t1:=列表系列(s,z,ogf);t2:=t1/(1-z);t3:=系列(%,z,nops(s));t4:=系列列表(t3);返回(t4);结束时间:最大值(lis);退出;====================================================================================================================================================================================================================程序“superproc4prim”====================================================================================================================================================================================================================#超级岩石#致电LISTTOREC#2000年4月15日修改为使用maple6#2007年11月2日正式发布#2009年2月9日,更改了libname路径#与(共享):#readshare(gfun,分析):#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV6/lib`;#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV11/lib`;libname:=`/home/njas/bin/gfun.lib.3.31`,`/usr/njas/hisdir`,libname:带有(gfun):l0:=3*长度(lis):t1:=列表(lis,a(n),[ogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=列支敦士登(lis,a(n),[egf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtorec(lis,a(n),[revogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=列支敦士登(lis,a(n),[revegf]):如果长度(t1)<l0,则打印(t1;传真:t1:=列表(lis,a(n),[lgdogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtorec(lis,a(n),[lgdegf]):如果长度(t1)<l0,则打印(t1;传真:退出====================================================================================================================================================================================================================程序“superproc6prim”====================================================================================================================================================================================================================#超级岩石#呼叫列表OALGEQ#2007年10月30日#2009年2月9日,更改了libname路径#与(共享):#readshare(gfun,分析):#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV6/lib`;#libname:=`/usr/njas/hisdir`,`/usl/local/tools/mapleV11/lib`;libname:=`/home/njas/bin/gfun.lib.3.31`,`/usr/njas/hisdir`,libname:带有(gfun):l0:=3*长度(lis):t1:=listtoalgeq(lis,a(n),[ogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=列表toalgeq(lis,a(n),[egf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtoalgeq(lis,a(n),[revogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtoalgeq(lis,a(n),[revegf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtoalgeq(lis,a(n),[lgdogf]):如果长度(t1)<l0,则打印(t1;传真:t1:=listtoalgeq(lis,a(n),[lgdegf]):如果长度(t1)<l0,则打印(t1;传真:退出====================================================================================================================================================================================================================节目“超级猜测”====================================================================================================================================================================================================================#危害德克森# hderksen@math.mit.edu公司#上次更改:1999年7月15日#2007年10月30日内核点(打印字节=假):`guess/cfraction`:=进程(列表、acc、x)局部n,i,j,a,guess,val,lco,newguess,newval,newlco,result,newresult;n: =nops(列表);a: =直线[矩阵](n,acc+n,0);对于i从1到n do对于从1到acc do的ja[i,j]:=系数(列表[i],x,j-1);od;a[i,acc+i]:=1;od;a: =linalg[子矩阵](linalg[gausselim](a),1..n,(acc+1)。。(根据+n));对于从1到n的i,一定要猜[i]:=linalg[row](a,i);od;结果:=linalg[multiply](a,list);对于i从1到n doval[i]:=度(结果[i],x);lco[i]:=tcoeff(结果[i],x);od;虽然是真的newguest:=地图(展开,linalg[scalarmul](猜测[1],x^(val[2]-val[1]));新结果:=展开(x^(val[2]-val[1])*结果[1]);newval:=val[2];newlco:=lco[1];val[n+1]:=val[n]+1;对于我从2到n dowhile(newval=二项式(2*c,c))do c:=c+1 od;c: =c-1;对于j从c到-1 doi: =1;而(n>二项式(j+i,j))doi:=i+1od;如果n=二项式(j+i,j),则返回([i,j])fi;od;结束时间:`guess/makelist`:=进程(f,n,d,acc,x)局部g,列表,i;g: =f;列表:=[f];对于i从1到n-1 dog: =差异(g,x);列表:=[操作(列表),展开(x^i*g)]od;`猜测/单项式`(list,d,acc,x);结束时间:`猜测/形式经济学`:=proc(list,d,x)local i、monsmall、mon、jj;如果list=[],则返回([1])fi;mon:=[];对于i从0到d domonsmall:=`guess/formalmonomials`(列表[2..nops(列表)],d-i,x);mon:=[op(mon),seq(展开(列表[1]^i*monsmall[jj]),jj=1..nops(monsmall))];od;周一;结束时间:`guess/makeformallist`:=进程(f,n,d,x)局部g,列表,i;g: =f;列表:=[f];对于i从1到n-1 dog: =差异(g,x);列表:=[操作(列表),展开(x^i*g)]od;`猜测/形式经济学`(list,d,acc,x);结束时间:#GUESS序列guess:=proc()局部序列,i,F,j,jj,n,F,g,polyrel,guess,level,lisst,result,eqns,solutions,var,pq,数字扩展,x;seq:=args[1];printf(“%s\n”,`CUT`);如果nargs>1,则扩展数:=参数[2]其他的扩展数:=7;fi;n: =nops(序列);对于从2到trunk(n/2)do的级别pq:=`猜测/搜索二项式`(级别);f: =总和(sequ[j]*x^(j-1),j=1..(n-1));lisst:=`guess/makelist`(f,pq[1],pq[2],n-1,x);polyrel:=`guess/cfraction`(lisst,n-1,x);g: =f+总和(猜测[j]*x^(n-2+j),j=1..数字扩展);lisst:=`guess/makelist`(g,pq[1],pq[2],n+numextension-1,x);结果:=展开(总和(lisst[j]*polyrel[j],j=1..级);等式:={seq(系数(结果,x,jj),jj=(n-1)..(n+numextension-2))};var:={seq(猜测[jj],jj=1..numextension)};解:=解(eqns,var);解决方案:=子(解决方案,[seq(猜测[jj],jj=1..numextension)]);如果解[1]=序列[n],则lisst:=`guess/makeformalist`(F(x),pq[1],pq[2],x);printf(“%s\n”,`SUCCESS`);printf(“%s\n”,`Guesss建议生成函数F(x)`);printf(“%s\n”,`可以满足以下代数或微分方程:`);printf(“%s\n”,``);lprint(总和(polyrel[i]*lisst[i],i=1..nops(lisst))=0);printf(“%s\n”,``);printf(“%s\n”,`如果这是正确的,序列中接下来的6个数字是:`);printf(“%s\n”,``);lprint([op(2.numextension,solutions)]);printf(“%s\n”,``);返回();fi;od;printf(“%s\n”,`FAILED`);返回();结束时间:guess(lis);退出;====================================================================================================================================================================================================================程序“superrate.m”====================================================================================================================================================================================================================(*埃拉特·冯·扎伦福尔根*)(*基本原理插值*)(*2007年10月30日*)基本原理插值::用法=“有理插值[func,{x,m,k},{x1,x2,…,xmk1},(opts)]给出了func(变量x的函数)的有理插值,其中m和k分别是分子和分母的度数,以及{x1,x2,…,xmk1}是插值点的m+k+1横坐标列表。"理性插值[func_,{x_,m_Integer,k_Integer},xlist_,opts___]:=模块[{xinfo,bias,answer,biasOK=True},答案/;(xinfo={x,m,k};偏差=xlist);(答案=RI[func,xinfo,bias];答案=!=失败)];RI[f_,xinfo_,bias_]:=模块[{i,mk1,xx,fx,mat,tempvec,x,x0,x1,m,k},x=xinfo[1];(m=xinfo[2];k=xinfo[[3]];mk1=m+k+1;xx=偏差);fx=表格[f/.x->xx[[i]],{i,长度[xx]}];mat=表[1,{i,mk1+1}];tempvec=表[1,{i,mk1}];mat[[1]=温度;mat[[m+2]]=-temvec*fx;Do[tempvec*=xx;如果[i<=m,mat[[i+1]]=tempvec,Null,Null];如果[i<=k,mat[[i+m+2]=-tempvec*fx],{i,Max[m,k]}];如果[$VersionNumber>=2.,$Messages=OutputStream[“”,1],$Messages={}];xx=求解[Transpose[mat]。表[x[i],{i,1,m+k+2}]==表[0,{i,1,m+k+1}],表[x[i],{i,1,m+k+2}]];如果[$VersionNumber>=2.,$Messages=OutputStream[“stdout”,1],$Messages={“stdoout”}];xx=表[x[i],{i,1,m+k+2}]/。xx[[1];如果[头部[xx]===求解,则返回[失败]];因子[(xx[[1]]+和[xx[[i+1]]x^i,{i,m}])/(和[xx[[i+m+1]]x^(i-1),{i,k+1}])]];RateFolge[x_List,t_]:=模块[{x=x,funk,var,L1,L2,ii,Erg},L1=长度[X];Do[funk[var]=X[[var]],{var,L1}];Erg={};对于[L2=0,L2<=L1-2,L2++,X=有理插值[funk[var],{var,L1-L2-2,L2},表[ii,{ii,L1-1}]];如果[Factor[Denominator[X]/.var->L1]==0&&系数[(X/.var->L1)-funk[L1]]==0,Erg=Union[{X/.val->t},Erg]]];爱尔兰]速率[x___]:=模块[{x={x},L,Zaehler,Folge,var,ii,Erg={},i},i[0]=i0;i[1]=i1;i[2]=i2;i[3]=i3;i[4]=i4;i[5]=i5;i[6]=i6;i[7]=i7;i[8]=i8;i[9]=i9;i[10]=i10;i[11]=i11;i[12]=i12;i[13]=i13;i[14]=i14;i[15]=i15;i[16]=i16;i[17]=i17;i[18]=i18;i[19]=i19;i[20]=i20;L=长度[X];Folge=表[0,{L-1}];对于[Zaehler=1,Zaehler<=L-1,Zaewler++,Folge[[Zaehler]]=X;X=表[X[[ii+1]]/X[[ii]],{ii,L-Zaehler}];];对于[Zaehler=1,Zaehler<=L-1,Zaewler++,X=RateFolge[Folge[[Zaehler]],i[Zaewler-1]];如果[X=!={},Do[X=表格[Folge[[Zaehler-ii,1]]*产品[X[[var]],释放[{i[Zaehler-ii],1,i[Zeehler-ii-1]-1}]],{var,长度[X]}],{ii,扎勒-1}];];Erg=联合[Erg,X]];爱尔兰]Ratepol[x___]:=模块[{x={x},funk,var,L1,L2,ii,Erg},L1=长度[X];Do[funk[var]=X[[var]],{var,L1}];Erg={};X=有理插值[funk[var],{var,L1-2,0},表[ii,{ii,L1-1}]];如果[Factor[(X/.var->L1)-funk[L1]]===0,Erg=Union[{X/.val->i0},Erg]];爱尔兰]Rateint[x___]:=模块[{x={x},L,Zaehler,Folge,var,ii,Erg={},i},i[0]=i0;L=长度[X];Folge=表[0,{L-1}];对于[Zaehler=1,Zaehler<=Min[1,L-1],Zaewler++,Folge[[Zaehler]]=X;X=表[X[[ii+1]]/X[[ii]],{ii,L-Zaehler}];];对于[Zaehler=1,Zaehler<=Min[1,L-1],Zaewler++,X=RateFolge[Folge[[Zaehler]],i[Zaewler-1]];如果[X=!={},Do[X=表格[Folge[[Zaehler-ii,1]]*产品[X[[var]],释放[{i[Zaehler-ii],1,i[Zeehler-ii-1]-1}]],{var,长度[X]}],{ii,扎勒-1}];];Erg=联合[Erg,X]];爱尔兰]Ratekurz[x___]:=模块[{x={x},L,Zaehler,Folge,var,ii,Erg={},i},i[0]=i0;i[1]=i1;i[2]=i2;L=长度[X];Folge=表[0,{L-1}];对于[Zaehler=1,Zaehler<=Min[3,L-1],Zaewler++,Folge[[Zaehler]]=X;X=表[X[[ii+1]]/X[[ii]],{ii,L-Zaehler}];];对于[Zaehler=1,Zaehler<=Min[3,L-1],Zaewler++,X=RateFolge[Folge[[Zaehler]],i[Zaewler-1]];如果[X=!={},Do[X=表格[Folge[[Zaehler-ii,1]]*产品[X[[var]],释放[{i[Zaehler-ii],1,i[Zeehler-ii-1]-1}]],{var,长度[X]}],{ii,扎勒-1}];];Erg=联合[Erg,X]];爱尔兰]Rateeins[x___]:=模块[{x={x},L,Zaehler,Folge,var,ii,Erg={},i},i[0]=i0;i[1]=i1;i[2]=i2;i[3]=i3;i[4]=i4;i[5]=i5;i[6]=i6;i[7]=i7;i[8]=i8;i[9]=i9;i[10]=i10;i[11]=i11;i[12]=i12;i[13]=i13;i[14]=i14;i[15]=i16;i[17]=i17;i[18]=i18;i[19]=i19;i[20]=i20;L=长度[X];Folge=表[0,{L-1}];对于[Zaehler=1,Zaehler<=Min[3,L-1],Zaewler++,Folge[[Zaehler]]=X;X=表[X[[ii+1]]/X[[ii]],{ii,L-Zaehler}];];对于[Zaehler=1,Zaehler<=Min[3,L-1],Zaewler++,X=RateFolge[Folge[[Zaehler]],i[Zaewler-1]];如果[X=!={},Do[X=表格[Folge[[Zaehler-ii,1]]*产品[X[[var]],释放[{i[Zaehler-ii],1,i[Zeehler-ii-1]-1}]],{var,长度[X]}],{ii,扎勒-1}];];如果[X=!={},则返回[X]];];爱尔兰]====================================================================================================================================================================================================================程序“seqtranslib.m”====================================================================================================================================================================================================================(*seqtranslib.m版本批次0.10-1998年1月10日*)(*整数序列转换数学库*)(*由Olivier Gerard根据N.J.A.Sloane的原始Maple代码和想法编写*)(*2007年10月30日*)(*批号*)(*有意义的转换序列列表,前缀为转换指示,不带符号*)SuperTrans[seq_List]:=Abs[Cases[MapIndexed[{First[#2],#1[seq]}&,EISTransTable],{_Integer,{__Integer}}]](*格式化例程*)SeqString[seq_List]:=StringTake[ToString[seq],{2,-2}]<>“\n”;WriteSeekerList[transeq_List,sortie_:$Output]:=扫描[WriteString[sortie,“T”,StringDrop[ToString[1000+#1[[1]]],1],“”,SeqString[#1[[2]]]&,transeq]WriteSeqList[transeq_List,sortie_:$Output]:=(MapIndexed[WriteString[sortie,SeqString[#]]&,transeq];)(*实用程序和转换代码*)(*所有程序都设计为适用于Mathematica 2.0及更高版本,但建议使用Mathematia 3.0,并且在未来版本中可能是必需的。*)(*数论实用程序*)did[m_Integer,n_Integer]:=如果[Mod[m,n]==0,1,0];didsigned[m_Integer,n_Integer]:=如果[Mod[m,n]==0,(-1)^(m/n),0];mob[m_Integer,n_Integer]:=如果[Mod[m,n]==0,MoebiusMu[m/n],0];GCD规范化[{}]:={};GCD规范化[seq_List]:=seq/GCD@@seq;LCM规范化[{}]:={};LCM规范化[seq_List]:=删除案例[seq,0]//(LCM@@#/Reverse[#])&;IntegerSequenceQ[seq_List]:=并集[IntegerQ/@seq]=={True}过滤器序列[{}]:={};FilterSequence[seq_List]:=如果[And@@(IntegrQ/@seq),seq,{}];(*差异表实用程序*)GetDiff[{}]={};获取差异[{elem_}]={};GetDiff[seq_List]:=删除[seq,1]-删除[seque,-1];GetDiff[seq_List,n_Integer]:={}/;n> =长度[seq]获取差异[seq_List,n_Integer]:=加上@@表[(-1)^(n+i)二项式[n,i]取[seq,{i+1,Length[seq]-n+i}],{i,0,n}]GetOffsetDiff[seq_List]:=GetDiff[seq];GetOffsetDiff[seq_List,n_Integer]:={}/;n> =长度[seq]GetOffsetDiff[seq_List,n_Integer]:=取[seq,{n+1,-1}]-取[seque,{1,-n-1}]GetIntervalDiff[seq_List]:=获取差异[seq];GetIntervalDiff[seq_List,n_Integer]:={}/;n> =长度[seq]GetIntervalDiff[seq_List,n_Integer]:=Take[seq,{n+1,-1}]-Plus@@表[Take[seq,{i+1,Length[seq]-n+i}],{i,0,n-1}]GetSum[{}]={};获取总和[{elem_}]={};GetSum[seq_List]:=删除[seq,1]+删除[seq,1];获取总和[seq_List,n_Integer]:={}/;n> =长度[seq]获取总和[seq_List,n_Integer]:=加上@@表[二项式[n,i]取[seq,{i+1,长度[seq]-n+i}],{i,0,n}]GetOffsetSum[seq_List]:=获取总和[seq];GetOffsetSum[seq_List,n_Integer]:={}/;n> =长度[seq]GetOffsetSum[seq_List,n_Integer]:=Take[seq,{1,-n-1}]+Take[seq,{n+1,-1}]GetIntervalSum[seq_List]:=获取总和[seq];GetIntervalSum[seq_List,n_Integer]:={}/;n> =长度[seq]GetIntervalSum[seq_List,n_Integer]:=加上@@表[Take[seq,{i+1,Length[seq]-n+i}],{i,0,n}]差异表[{},___]={};DiffTable[seq_List,1]:=嵌套列表[GetDiff,seq,Length[seq]-1];DiffTable[seq_List,n_Integer]:=NestList[GetDiff,DiffTable[seq,n-1][[Range[Length[seq]],1]],Length[seq]-1]/;n> 1个部分产品[{}]={};部分产品[seq_List]:=剩余[FoldList[#1#2&,1,seq]];部分和[{}]={};部分总和[seq_List]:=剩余项[FoldList[#1+#2&,0,seq]];(*生成函数实用程序*)SeqToPoly[{},___]={};SeqToPoly[seq_List,var_Symbol:n]:=展开[Plus@@(表[总和[(-1)^(i-1-k)*二项式[i-1,k]*seq[[k+1]],{k,0,i-1}],{i,1,Length[seq]}]*数组[二项式[var,#1-1]&,Length[seq])];获取功率系数[f_,var_Symbol:x,n_Integer]:=块[{g=ExpandAll[f]},删除案例[Table[系数[g,var,i],{i,0,n}],0]]ListToSeries::未知=“这种生成函数是未知的。”;列表到系列::nimp=“这种生成函数尚未实现\对不起的。";ListToSeries[seq_List,var_Symbol:x,kind_String:“ogf”]:=开关[种类,“ogf”,SeriesData[var,0,seq,0,Length[seq],1],“egf”,SeriesData[var,0,seq/Array[#1!&,Length[seq],0],0,Length[seq',1],“lap”,SeriesData[var,0,seq*Array[#1!&,Length[seq],0],0,Length[seq',1],“lgdogf”,ListToSeries::nimp,“lgdegf”,列表到系列::nimp,_,列表到序列::unkn];SeriesToList::unkn=列表到系列::unkn;SeriesToList::nimp=列表到系列::nimp;SeriesToList[ser_SeriesData,kind_String:“ogf”]:=开关[种类,“ogf”,数组[SeriesCoefficient[ser,#1]&,ser[[5]],0],“egf”,数组[SeriesCoefficient[ser,#1]*#1!&,ser[[5],“圈”,数组[SeriesCoefficient[ser,#1]/#1!&,ser[[5],“lgdogf”,SeriesToList::nimp,“lgdegf”,要列出的系列::nimp,_,SeriesToList::unkn];SeriesToSeries::unkn=列表到系列::unkn;系列到系列[ser_SeriesData,kind_String]:=如果[kind==“ogf”,ser,ListToSeries[Array[(SeriesCoefficient[ser,#1]&)*ser[[5]],0],ser[[1],kind],Null];GetSeriesCoeff::“unkn”=列表到系列::“unkn”;GetSeriesCoeff::“nimp”=列表到系列::“nimp”;GetSeriesCoeff[ser_SeriesData,j_Integer,kind_String:“ogf”]:=开关[种类,“ogf”,系列系数[ser,j],“egf”,系列系数[ser,j]*(j-1)!,“lap”,系列系数[ser,j]/(j-1)!,“lgdogf”,GetSeriesCoeff::“nimp”,“lgdegf”,GetSeriesCoeff::“nimp”,_,GetSeriesCoeff::“unkn”];列表到列表分区[{}]:={};ListToListDiv[seq_List]:=序列/数组[#1!&,长度[seq],0];列表到列表多重[{}]:={};ListToListMult[seq_List]:=seq*数组[#1!&,长度[seq],0];SeriesToListDiv[ser_SeriesData]:=SeriesTo列表[ser,“egf”];SeriesToListMult[ser_SeriesData]:=SeriesToList[ser,“lap”]SeriesToSeriesDiv[ser_SeriesData]:=系列到系列[ser,“egf”]SeriesToSeriesMult[ser_SeriesData]:=SeriesToList[ser,“lap”](*二进制和其他基本实用程序*)匹配数字[x_Integer、y_Integer和base_Integer:10]:=块[{bx,by,lx,ly},{lx,ly}=长度/@({bx,by}=(整数位数[#1,基数]&)/@{x,y});如果[lx-ly==0,{bx,by},(连接[Array[0&,Max[lx,ly]-Length[#1]],#1]&)/@{bx,by}]];MatchBinary[x_Integer,y_Integer]:=MatchDigits[x,y,2];数字到整数[thedigits_List,base_Integer:10]:=加号@@(反转[thedigits]数组[base^#1&,长度[thedigmits],0])二进制到整数[bindig_List]:=数字到整数[bidig,2]Xcl[twodig_List]:=长度[Union[twodig]]-1;NumAND[x_Integer,y_Integer]:=二进制到整数[Min/@Transpose[MatchBinary[x,y]]];NumOR[x_Integer,y_Integer]:=二进制到整数[Max/@Transpose[MatchBinary[x,y]]];关闭[常规::spell1]NumXOR[x_Integer,y_Integer]:=二进制到整数[Xcl/@Transpose[MatchBinary[x,y]]];打开[General::spell1]NimSum[numOne_Integer,numTwo_Integer]:=二进制到整数[Plus@@MatchBinary[numOne,numTowo]/。{2\[规则]0}]数字总和[n_Integer,b_Integer:10]:=加号@@IntegerDigits[n,b];DigitRev[n_Integer,b_Integer:10]:=数字ToInteger[Reverse[IntegerDigits[n,b]],b];(*集合理论变换*)$EISShortComplementSize=60;$EISLongComplementSize=1000;$EISUnsameCount=10;$EISMaxCharSeq=100;最小排除[seq_List]:=模块[{theset=Union[seq]},选择[Range[0,Max[seq]+1],\[InvisibleSpace]!(成员Q[论文集,#1])&,1]]单调[{}]={};单调[seq_List]:=联合[Abs[seq]];单调Diff[{}]={};MonotonousDiff[seq_List]:=块[{seqres},如果[seq==(seqres=Union[Abs[seq]])||Length[seq]-长度[seqres]<$EISUnsameCount,{},seqres];CompSequence[{}]={};CompSequence[seq_List]:=块[{seqres},如果[长度[seqres=补码[Range[Min[Max[seq],$EISShortComplementSize]],单调[seq]]]<$EIS未命名计数||长度[seques]>$EISShortComplementSize-$EISUnsameCount,{},seqres]];CompSequenceLong[{}]={};CompSequenceLong[seq_List]:=补码[Range[Min[Max[seq],$EISLongComplementSize]],单调[seq]]TwoValuesQ[seq_List]:=(长度[并集[seq]]==2)字符序列[{}]={};CharSequence[seq_List]:=块[{b,reslen},b=单调[seq];reslen=最小值[Max[b],$EISMaxCharSeq];最后一个[Transpose[Sort[Transpose[{连接[b,补码[Range[0,reslen],b]],连接[Array[1&,Length[b]]、Array[0&,1+reslen-Length[b]]}]]](*子序列提取*)SeqExtract[{},___]={};序列提取[seq_List,period_Integrer:1,start_Integrer:1]:=seq[[开始时间+时段*范围[0,楼层[(长度[seq]-开始时间)/时段]]]小数[{},___]={};小数[seq_List,k_Integer,j_Integer]:=带有[{l=Floor[(Length[seq]+k-1-j)/k]},如果[l<1,{},seq[[1+j+k*范围[0,l-1]]]]二分[seq_List,0]:=十进制[seq,2,0];(二等分[seq_List,1]:=决定性[seq,2,1];)二分[seq_List,start_Integrer]={};三段[seq_List,0]:=十进制[seq,3,0];(三段[seq_List,1]:=十进制[seq,3,1];)三段[seq_List,2]:=十进制[seq,3,2];三段[seq_List,start_Integrer]={};(*基本变换*)左变换[{}]:={};左变换[seq_List]:=静止[seq];右变换[{}]:={};右变换[seq_List]:=前缀[seq,1];MulTwoTransform[{}]={};MulTwoTransform[seq_List]:=连接[{First[seq]},其余[seq]2];DivTwoTransform〔{}〕={};DivTwoTransform[seq_List]:=连接[{First[seq]},Rest[seque]/2];否定变换[{}]={};NegateTransform[seq_List]:=连接[{First[seq]},-Rest[seq];(*差分表(二项式)变换*)二项式变换[{},___]={};二项式变换[seq_List,way_:1]:=表[Sum[way^(i-1-k)*二项式[i-1,k]*seq[[k+1]],{k,0,i-1}],{i,1,Length[seq]}];二进制InvTransform〔{},___〕={};二项式InvTransform[seq_List,way_:1]:=二项式变换[seq,-way](*有理生成函数转换*)GFProdaaa转换[{},___]:={};GFProdaaaTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[1/ListToSeries[seq,var,gftype]^2,gftype]]GFProdbbb变换[{},___]:={};GFRodbbbTransform[seq_List,gftype_String:“ogf”]:=模块[{var},序列到列表[ListToSeries[seq,var,gftype]^2,gftype]]GFProdcccTransform[{},___]:={};GFProdcccTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[1/ListToSeries[seq,var,gftype],gftype]]GFProddddTransform[{},___]:={};GFProddddTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]*(1+var)/(1-var),gftype]]GFProdeeeTransform[{},___]:={};GFProdeeeTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]*(1-var)/(1+var),gftype]]GFProdfff变换[{},___]:={};GFProdfffTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1-var),gftype]]GFProdggg变换[{},___]:={};GFProdggTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1-var)^2,gftype]]GFProdhhh变换[{},___]:={};GFProdhhhTransform[seq_List,gftype_String:“ogf”]:=模块[{var},系列到列表[ListToSeries[seq,var,gftype]/(1-var)^3,gftype]]GFProdiii变换[{},___]:={};GFProdiiiTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var),gftype]]GFProdjj变换[{},___]:={};GFProdjjTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var^2),gftype]]GFProdkkk变换[{},___]:={};GFProdkkkTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var+var^2),gftype]]GFProdlll变换[{},___]:={};GFProdlllTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1-var^2),gftype]]GFProdmmm变换[{},___]:={};GFProdmmmTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1-var-var^2),gftype]]GFProdnnn变换[{},___]:={};GFProdnnnTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1-var+var^2),gftype]]GFProdooo变换[{},___]:={};GFProdoooTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var-var^2),gftype]]GFProdppp变换[{},___]:={};GFProdpppTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var)^2,gftype]]GFProdqqq变换[{},___]:={};GFProdqqqTransform[seq_List,gftype_String:“ogf”]:=模块[{var},SeriesToList[ListToSeries[seq,var,gftype]/(1+var)^3,gftype]](*对角线生成函数变换*)GFDiagaaa变换[{},___]:={};GFDiagaaaaTransform[seq_List,gftype_String:“ogf”]:=模块[{var,baseser},baseuser=ListToSeries[Prepend[seq,0],var,gftype];表[GetSeriesCoeff[baseser*(1-var)^j,j,gftype],{j,1,Length[seq]}]]GFDiagbbTransform[{},___]:={};GFDiagbTransform[seq_List,gftype_String:“ogf”]:=模块[{var,baseser},baseuser=ListToSeries[Prepend[seq,0],var,gftype];表[GetSeriesCoeff[baseser*(1+var)^j,j,gftype],{j,1,Length[seq]}]]GFDiagccc变换[{},___]:={};GFDiagcccTransform[seq_List,gftype_String:“ogf”]:=模块[{var,baseser},baseuser=ListToSeries[Prepend[seq,0],var,gftype];表[GetSeriesCoeff[baseser/(1-var)^j,j,gftype],{j,1,Length[seq]}]]GFDiagdTransform[{},___]:={};GFDiagddTransform[seq_List,gftype_String:“ogf”]:=模块[{var,baseser},baseuser=ListToSeries[Prepend[seq,0],var,gftype];表[GetSeriesCoeff[baseser/(1+var)^j,j,gftype],{j,1,Length[seq]}]](*古典(欧拉,M\[ODoubleDot]bius,斯特林)*)欧拉变换[{}]={};EulerTransform[seq_List]:=模块[{coeff,final={}},coeff=表[Sum[d*did[i,d]*seq[[d]],{d,1,i}],{i,1,Length[seq]}];对于[i=1,i<=Length[seq],i++,AppendTo[final,(coeff[i]]+Sum[coeff[[d]]*final[[i-d]],{d,1,i-1}])/i]];最终];EulerInvTransform〔{}〕={};EulerInvTransform[seq_List]:=模块[{final={}},对于[i=1,i<=长度[seq],i++,AppendTo[final,i*seq[[i]]-总和[final[[d]]*seq[[i-d]],{d,1,i-1}]];表[Sum[mob[i,d]*final[[d]],{d,1,i}]/i,{i,1,Length[seq]}]];MobiusTransform〔{}〕={};MobiusTransform[seq_List]:=表[Sum[mob[i,d]*seq[[d]],{d,1,i}],{i,1,Length[seq]}]MobiusInvTransform〔{}〕={};MobiusInvTransform[seq_List]:=表[Sum[did[i,d]*seq[[d]],{d,1,i}],{i,1,Length[seq]}]斯特林变换[{}]={};斯特林变换[seq_List]:=表[Sum[StirlingS2[i,k]*seq[[k]],{k,1,i}],{i,1,长度[seq]}]StirlingInvTransform[{}]={};StirlingInvTransform[seq_List]:=表[Sum[StirlingS1[i,k]*seq[[k]],{k,1,i}],{i,1,Length[seq]}](*数论卷积*)LCMConv转换[__List,{},__List]:={};LCMConvTransform[seq_List]:=表[Sum[LCM[seq[[k]],seq[[i-k+1]],{k,1,i}],{i,1,Length[seq]}];LCMConvTransform[seqOne_List,seqTwo_List]:=表[Sum[LCM[seqOne[[k]],seqTowo[[i-k+1]],{k,1,i}],{i,1,最小@@(长度/@{seqOne,seqTwo})}];GCD转换[__List,{},__List]:={};GCDConvTransform[seq_List]:=表[Sum[GCD[seq[[k]],seq[[i-k+1]],{k,1,i}],{i,1,Length[seq]}];GCDConvTransform[seqOne_List,seqTwo_List]:=表[Sum[GCD[seqOne[[k]],seqTowo[[i-k+1]],{k,1,i}],{i,1,Min@@(Length/@{seqOne,seqThwo})}];(*生成函数变换(Cameron、Revert、RevertExp、Exp、Log)*)摄影机变换[{}]:={};CameraTransform[seq_List]:=模块[{var},Rest[SeriesToList[1/(1-var*ListToSeries[seq,var,“ogf”]]),“ogf”]]];CameronInvTransform[{}]:={};CameronInvTransform[seq_List]:=模块[{var},Rest[SeriesToList[-1/(1+var*ListToSeries[seq,var,“ogf”]),“ogf”]]];还原转换[{}]:={};RevertTransform[seq_List]:=模块[{var,l=Length[seq]},如果[seq\[LeftDoubleBracket]1\[RightDoubleBacket]==1,{},Rest[SeriesToList[Inverse Series[ListToSeries[seq,var,“ogf”]],“ogf”]数组[(-1)^#1&,l]]]RevertExpTransform[{}]:={};RevertExpTransform[seq_List]:=模块[{var,l=Length[seq]},如果[seq\[LeftDoubleBracket]1\[RightDoubleBacket]==1,{},Rest[SeriesToList[Inverse Series[ListToSeries[seq,var,“egf”]],“ogf”]数组[(-1)^#1(#1-1)!&,l]]];ExpTransform[{}]:={};ExpTransform[seq_List]:=模块[{var},Rest[SeriesToList[Exp[ListToSeries[Prepend[seq,0],var,“egf”]],“egf”]]]日志转换[{}]:={};LogTransform[seq_List]:=模块[{var},Rest[SeriesToList[Log[ListToSeries[Prepend[seq,1],var,“egf”]],“egf”]]](*卷积变换*)ConvTransform[__List,{},__List]:={};ConvTransform[seq_List]:=表[Sum[seq[[k]]*seq[[i-k+1]],{k,1,i}],{i,1,Length[seq]}];ConvTransform[seqOne_List,seqTwo_List]:=表[Sum[seqOne[[k]]*seqTwe[[i-k+1]],{k,1,i}],{i,1,最小@@Length/@{seqOne,seqTwo}];ConvInvTransform[seq_List]:=如果[First[seq]==0,模块[{a,aaseq=表[a[i],{i,长度[seq]}]},aaseq/。最后一个[Solve[ConvTransform[aaseq]=seq,aaseq]]]ExpConvTransform[__List,{},__List]:={};ExpConvTransform[seq_List]:=模块[{var},SeriesToList[ListToSeries[seq,var,“egf”]^2,“egf”]]ExpConvTransform[seqOne_List,seqTwo_List]:=模块[{var,tmplen=Min@@(Length/@{seqOne,seqTwo})},SeriesToList[Times@@(ListToSeries[Take[#1,tmplen],var,“egf”]&)/@{seqOne,seqTwo},“egf”]]LogConvTransform[{}]:={};LogConvTransform[seq_List]:=模块[{var},SeriesToList[ListToSeries[seq,var,“lap”]^2,“ogf”]]LogConvTransform[seqOne_List,seqTwo_List]:=模块[{var,tmplen=Min[Length/@{seqOne,seqTwo}]},SeriesToList[Times@@(ListToSeries[Take[#1,tmplen],var,“lap”]&)/@{seqOne,seqTwo},“ogf”]](*二进制和其他与基相关的变换*)与转换[{}]={};ANDConvTransform[seq_List]:=表[Sum[NumAND[seq[[k+1]],seq[[i-k+1]]],{k,0,i}],{i,0,Length[seq]-1}]ORConv变换[{}]={};ORConvTransform[seq_List]:=表[Sum[NumOR[seq[[k+1]],seq[[i-k+1]]],{k,0,i}],{i,0,Length[seq]-1}]关闭[常规::spell1]XORConvTransform〔{}〕={};XORConvTransform[seq_List]:=表[Sum[NumXOR[seq[[k+1]],seq[[i-k+1]]],{k,0,i}],{i,0,Length[seq]-1}]打开[General::spell1]数字和变换[{},___]:={};数字和变换[seq_List,b_Integer:10]:=数字总和[#,b]&/@seq;DigitRevTransform[{},___]:={};数字修订转换[seq_List,b_Integer:10]:=数字修订[#,b]&/@seq;(*Boutrophedon变换*)$EISMaxTableWidth=60;BoutrophedonBisTransformTable[{}]={};BoutrophedonBisTransformTable[seq_List,way_Integer:1]:=模块[{n=Min[Length[seq],$EISMaxTableWidth],tritab},tritab=Transpose[{Take[seq,n]}];表[tritab\[LeftDoubleBracket]i\[RightDoubleBacket]=Nest[Append[#1,#1\[Left DoubleBeacket]-1\[Right DoubleBlacket]+way tritab\[CleftDouble Bracket]i-1,i-Length[#1]\[RiightDoubleBucket]]&,tritab\[LeftDoupleBracket]i\[右双括号],i-1],{i,1,n}]]BoutrophedonTransformTable[seq_List]:=BoutropeadonBisTransformTable[前缀[seq,1]]BoutrophedonTransform[seq_List]:=最后一个/@BoutropherdonTransFormTable[seq]BoustropedonBisTransform[seq_List]:=最后/@BoustropedonBisTransformTable[seq]BoutrophedonBisInvTransform[seq_List]:=最后一个/@BoutrophidonBis转换表[seq,-1]BoutrophedonInvTransform[seq_List]:=Last/@Rest[BoutropheadonBisTransformTable[seq,-1]](*分区和相关转换*)分区转换[{},___]:={};分区转换[seq_List,n_Integer:-1]:=模块[{var,valueset,lastindex,lastvalue},valueset=并集[seq];{lastindex,lastvalue}=如果[n==-1,{长度[valueset],最大@@valueset},{First[Flatten[Position[Unination[Append[valueset,n]],n]],n}];Rest[SeriesToList[系列[乘积[1/(1-var^值集[[i]]),{i,1,lastindex}],{var,0,lastvalue}],“ogf”]]];PartitionInvTransform〔{}〕:={};分区InvTransform[seq_List]:=扁平化[MapIndexed[表[#2[[1]],{#1}]&,EulerInvTransform[seq]]](*其他变换(称重、称重、eulerbis)*)加权变换[{},___]:={};加权变换[seq_List,n_Integer:-1,gftype_String:“ogf”]:=模块[{var,lastvalue},lastmvalue=If[n==-1,Max@@seq,n];Rest[SeriesToList[Series[Product[1-var^seq[[i]],{i,1,Length[seq]}],{var,0,lastvalue+1}],gftype]]]加权双输出变换[{}]={};WeightBisOutTransform[seq_List]:=模块[{var},SeriesToList[Series[Product[(var^(-k)+1+var^k)^seq[[k]],{k,1,Length[seq]}],{var,0,Length[seq]+1}],“ogf”]];EulerBisTransform[{}]={};EulerBisTransform[seq_List]:=模块[{var},SeriesToList[Series[Sum[seq[[k]]*(var/(1+var))^k,{k,1,长度[seq]}]/(1+var),{var,0,长度[seq]}],“ogf”]];(*待制作:weighout、weighouti、etrans、ptrans、pairtrans*)(*功能管理*)常规传输列表={“二项式”,“Euler”,“Mobius”,“Stirling”,“Cameron”,“Boutrophedon”,“BoutrophedonBis”,“Partition”};((逆函数[Evaluate[ToExpression[StringJoin[#1,“Transform”]]]]^=ToExpression[StringJoin[#1,“InvTransform”]];反函数[Evaluate[ToExpression[StringJoin[#1,“InvTransform”]]]^=ToExpression[StringJoin[#1,“转换”]];)&)/@RegularTransList;(*Superseeker Transforms列表*)(*转换095096097098目前尚未实施返回{}*)(*转换008必须在需要任何其他转换之前执行exp gen乐趣*)EISTransTable={清除[vexpseq];Trans[001]=标识,事务[002]=CompSequence,Trans[003]=GCD正常化,事务[004]=(休息[#]//事务[003])&,事务[005]=(删除[#,2]//Trans[004])&,Trans[006]=二分[#,0]&,Trans[007]=等分[#,1]&,Trans[008]=(vexpseq=#/Array[#1!&,Length[#],0])&,Trans[009]=#*范围[长度[#]]&,Trans[010]=#/数组[#1!&,长度[#],1]&,事务[011]=2#&,事务[012]=3#&,Trans[013]=GFProdaaa变换,Trans[014]=GFProdbbbTransform,Trans[015]=GFProdcccTransform,Trans[016]=GFProddddTransform,Trans[017]=GFProdeee转换,事务[018]=获取差异,Trans[019]=GetDiff[#,2]&,事务[020]=GetDiff[#,3]&,Trans[021]=GFProdfff变换,Trans[022]=GFProdggg变换,Trans[023]=GFProdhhh变换,Trans[024]=获取总和,Trans[025]=GetOffsetSum[#,2]&,Trans[026]=GFProdiii转换,Trans[027]=GFProdjjj转换,事务[028]=GetIntervalSum[#,2]&,Trans[029]=GFProdkkTransform,事务[030]=GetOffsetDiff[#,2]&,Trans[031]=GFProdlll变换,Trans[032]=取[#,{3,-1}]-取[#、{2,-2}]-取出[#,},-3}]&,Trans[033]=GFProdmmm变换,Trans[034]=#+范围[长度[#]]&,事务[035]=#+2&,事务[036]=#+3&,Trans[037]=#-范围[长度[#]]&,事务[038]=#-2&,事务[039]=#-3&,事务[040]=#+1&,事务[041]=#1&,Trans[042]=GFProdnnnTransform,Trans[043]=取[#,{3,-1}]-取[#、{2,-2}]+取[#和{1,-3}]&,Trans[044]=GFProdoooTransform,Trans[045]=取[#,{1,-3}]+取[#、{2,-2}]-取[#和{3,-1}]&,事务[046]=GetSum[#,2]&,事务[047]=GetSum[#,3]&,Trans[048]=GFProdpppTransform,Trans[049]=GFProdqqq转换,Trans[050]=GFDiagaaa变换,Trans[051]=GFDiagbb转换,Trans[052]=GFDiagccc转换,Trans[053]=GFDiagdd转换,Trans[054]=GFProdaaaTransform[#,“egf”]&,Trans[055]=GFProdbbbTransform[#,“egf”]&,Trans[056]=GFProdcccTransform[#,“egf”]&,Trans[057]=GFProddddTransform[#,“egf”]&,Trans[058]=GFProdeeeTransform[#,“egf”]&,Trans[059]=GetDiff[vexpseq]&,Trans[060]=GetDiff[vexpseq,2]&,Trans[061]=GetDiff[vexpseq,3]&,Trans[062]=GFProdfffTransform[#,“egf”]&,Trans[063]=GFProdgggTransform[#,“egf”]&,Trans[064]=GFProdhhh转换[#,“egf”]&,Trans[065]=GetSum[vexpseq]&,Trans[066]=GetOffsetSum[vexpseq,2]&,Trans[067]=GFProdiii转换[#,“egf”]&,Trans[068]=GFProdjjj转换[#,“egf”]&,Trans[069]=GetIntervalSum[vexpseq,2]&,Trans[070]=GFProdkkk变换[#,“egf”]&,Trans[071]=GetOffsetDiff[vexpseq,2]&,Trans[072]=GFProdlllTransform[#,“egf”]&,Trans[073]=(Take[#,{3,-1}]-Take[#,{2,-2}]-Take[#,1,-3}]&[vexpseq])&,Trans[074]=GFProdmmmTransform[#,“egf”]&,Trans[075]=vexpseq+范围[Length[vexpseq]]&,事务[076]=vexpseq+2&,事务[077]=vexpseq+3&,Trans[078]=vexpseq-Range[Length[vexpseq]]&,事务[079]=vexpseq-2&,Trans[080]=vexpseq-3&,事务[081]=#+表[j!,{j,长度[#]}]&,事务[082]=#-表[j!,{j,长度[#]}]&,Trans[083]=GFProdnnnTransform[#,“egf”]&,Trans[084]=(Take[#,{3,-1}]-Take[#,{2,-2}]+Take[#1,{1,-3}]&[vexpseq])&,Trans[085]=GFProdoooTransform[#,“egf”]&,Trans[086]=(Take[#,{1,-3}]+Take[#,{2,-2}]-Take[#1,{3,-1}]&[vexpseq])&,Trans[087]=GetSum[vexpseq,2]&,Trans[088]=GetSum[vexpseq,3]&,Trans[089]=GFProdpppTransform[#,“egf”]&,Trans[090]=GFProdqqqTransform[#,“egf”]&,Trans[091]=GFDiagaaaTransform[#,“egf”]&,Trans[092]=GFDiagbbTransform[#,“egf”]&,Trans[093]=GFDiagcccTransform[#,“egf”]&,Trans[094]=GFDiagddTransform[#,“egf”]&,Trans[095]={}&(*WeighTransform和alii:尚未实现*),事务[096]={}&,Trans[097]={}&(*WeightTransform[vexpseq]&*),Trans[098]={}&,Trans[099]=单调,Trans[100]=二项式变换,Trans[101]=二进制InvTransform,Trans[102]=BoustropedonTransform,Trans[103]=BoutrophedonInvTransform,Trans[104]=欧拉变换,Trans[105]=EulerInvTransform,Trans[106]=ExpTransform,Trans[107]=ExpConvTransform,Trans[108]=摄像机变换,Trans[109]=CameronInvTransform,Trans[110]=对数变换,Trans[111]=移动变换,Trans[112]=MobiusInvTransform,Trans[113]=多重变换,Trans[114]=斯特林变换,Trans[115]=斯特林InvTransform};====================================================================================================================================================================================================================文件“supertrans”====================================================================================================================================================================================================================T001序列本身T002整数不在序列中T003序列除以其元素的gcdT004序列除以其元素的gcd,从第二项开始T005序列除以其元素的gcd,从第3项开始序列中奇数索引的T006元素序列中偶数索引的T007元素T008序列u[j]/(j-1)!T009序列u[j]*jT010序列u[j]/j!T011序列2*u[j]T012序列3*u[j]1/Sn(z)^2的T013系数Sn(z)^2的T014系数1/Sn的T015系数(z)Sn(z)*(1+z)/(1-z)的T016系数Sn(z)*(1-z)/(1+z)的T017系数T018序列u[j+1]-u[j]T019序列u[j+2]-2*u[j+1]+u[j]T020序列u[j+3]-3*u[j+2]+3*u[j+1]-u[j]Sn(z)/(1-z)的T021系数Sn(z)/(1-z)^2的T022系数Sn(z)/(1-z)^3的T023系数T024序列u[j]+u[j+1]T025序列u[j]+u[j+2]T026 Sn系数(z)/(1+z)Sn(z)/(1+z^2)的T027系数T028序列u[j]+u[j+1]+u[j+2]Sn(z)/(1+z+z^2)的T029系数T030序列u[j+2]-u[j]T031 Sn(z)/(1-z^2)的系数T032序列u[j+2]-u[j+1]-u[j]Sn(z)/(1-z-z^2)的T033系数T034序列u[j]+jT035序列u[j]+2T036序列u[j]+3T037序列u[j]-jT038序列u[j]-2T039序列u[j]-3T040序列u[j]+1T041序列u[j]-1Sn(z)/(1-z+z^2)的T042系数T043序列u[j+2]-u[j+1]+u[j]Sn(z)/(1+z-z^2)的T044系数T045序列u[j]+u[j+1]-u[j+2]T046序列u[j]+2*u[j+1]+u[j+2]T047序列u[j]+3*u[j+1]+3*u[j+2]+u[j+3]Sn(z)/(1+z)^2的T048系数Sn(z)/(1+z)^3的T049系数T050第j个Sn系数(z)*(1-z)^jT051第j个Sn系数(z)*(1+z)^jT052第j个Sn系数(z)/(1-z)^jT053第j个Sn系数(z)/(1+z)^j1/En(z)^2的T054系数En(z)^2的T055系数1/En的T056系数(z)T057 En(z)*(1+z)/(1-z)的系数T058 En(z)*(1-z)/(1+z)的系数T059序列v[j+1]-v[j]T060序列v[j+2]-2*v[j+1]+v[j]T061序列v[j+3]-3*v[j+2]-3*v[j+1]+v[j]En(z)/(1-z)的T062系数En(z)/(1-z)^2的T063系数En(z)/(1-z)^3的T064系数T065序列v[j]+v[j+1]T066序列v[j]+v[j+2]En(z)/(1+z)的T067系数En(z)/(1+z^2)的T068系数T069序列v[j]+v[j+1]+v[j+2]En(z)/(1+z+z^2)的T070系数T071序列v[j+2]-v[j]En(z)/(1-z^2)的T072系数T073序列v[j+2]-v[j+1]-v[j]En(z)/(1-z-z^2)的T074系数T075序列v[j]+jT076序列v[j]+2T077序列v[j]+3T078序列v[j]-jT079序列v[j]-2T080序列v[j]-3T081序列u[j]+j!T082序列u[j]-j!En(z)/(1-z+z^2)的T083系数T084序列v[j+2]-v[j+1]+v[j]En(z)/(1+z-z^2)的T085系数T086序列v[j]+v[j+1]-v[j+2]T087序列v[j]+2*v[j+1]+v[j+2]T088序列v[j]+3*v[j+1]+3*v[j+2]+v[j+3]En(z)/(1+z)^2的T089系数En(z)/(1+z)^3的T090系数T091第j个En系数(z)*(1-z)^jT092第j个En系数(z)*(1+z)^jT093第j个En系数(z)/(1-z)^jT094第j个En系数(z)/(1+z)^jT095乘积系数(1/(1-z^j)^u[j],j=1.inf)T096到T095的逆变换,即“乘积系数(1/(1-z^j)^u[j],j=1.inf)”T097乘积系数(1/(1-z^j)^v[j],j=1..inf)T098反变换为T097,即“乘积系数(1/(1-z^j)^v[j],j=1.inf)”T099排序术语,删除重复项T100二项式变换:b(n)=和C(n,k)a(k),k=0..nT101二项式逆变换:b(n)=SUM(-1)^(n-k)*C(n,k)*a(k),k=0..nT102 boustrophedon变换(见http://www.research.att.com/~njas/doc/bous.ps)T103逆boutrophedon变换(参见http://www.research.att.com/~njas/doc/bous.ps)T104欧拉变换:通过1+SUM b(n)x^n=PRODUCT(1-x^n)^-a(n)定义bT105欧拉逆变换:通过1+SUM a(n)x^n=PRODUCT(1-x^n)^-b(n)定义bT106指数:通过1+EGF_b(x)=exp EGF_A(x)定义bT107指数卷积,展开EGF(x)^2T108反转:通过1+SUM b(n)x^n=1/(1-SUM a(n)x ^n)定义bT109反转:通过1+SUM a(n)x^n=1/(1-SUM b(n)x ^n)定义bT110 log:通过b=log的EGF定义b(a的EGF)T111 Mobius:用b(n)=SUM mu(n/d)*a(d)定义b,d除以nT112逆Mobius:用b(n)定义b=和a(d),d除以nT113将除前导项外的所有项乘以2T114斯特林-2变换:b(n)=总和S(n,k)a(k),k=0..nT115斯特林-1变换:b(n)=总和s(n,k)a(k),k=0..n====================================================================================================================================================================================================================程序“supercorr2”====================================================================================================================================================================================================================#SUPERCORR2查找相关性最近的序列#查找3个大于.999的最接近值需要:=.999:libname:=`/usr/njas/hisdir`,libname:(HISfry):使用(统计):数字:=16:接口(prettyprint=false):接口(quiet=true):界面(屏幕宽度=320):打印级别:=2:n0:=无(lis):lisset:=转换(lis,set):如果nops(lisset)=1,则退出:fi:x1:=0:x2:=0:x3:=0:m1:=0:m2:=0:m3:=0:对于索引(序列)中的i dom: =op(i):#打印(i):s: =序列[m]:#打印:ns:=个数:#计算相关性如果ns>n0,则v1:=lis:v2:=[序列(s[j],j=1..n0)]:其他的v1:=[seq(lis[j],j=1..ns)]:v2:=秒:传真:v1set:=转换(v1,set):v2set:=转换(v2,set):如果(nops(v1set)>1且nops(v2set)>1),则#如果1x: =evalf(R平方(v1,v2)):如果x>需要,那么#如果2#打印(`next`,i,m,x);如果x>x3,则#如果a如果x>x2,那么#如果b如果x>x1,则#如果cx3:=x2:m3:=m2:x2:=x1:m2:=m1:x1:=x:m1:=m:else#else cx3:=x2:m3:=m2:x2:=x:m2:=m:fi:#fi c其他#其他bx3:=x:m3:=m:fi:#fi bfi:#fi afi:#fi 2fi:#fi 1od:#关闭main打印(`最近(如果有):`);如果x1>需要,则打印(`HIT`,`AA`,m1+10000,x1):fi:如果x2>需要打印(`HIT`,`AA`,m2+10000,x2):fi:如果x3>需要,则打印(`HIT`,`AA`,m3+10000,x3):fi:退出====================================================================================================================================================================================================================文件“superhelp.txt”====================================================================================================================================================================================================================*************************************************************这是Superviseeker的帮助文件*************************************************************来自“超级搜索”的问候。此程序将接受整数序列,并努力寻找解释。Superseeker使用了很多东西,其中一些是:1.整数序列在线百科全书(或OEIS)N.J.A.斯隆美国电话电报公司研究实验室,新泽西州弗洛勒姆公园,邮编:07932-0971-参见http://www.research.att.com/~njas/sequences/Seis.html2.布鲁诺·萨维和保罗·齐默尔曼的“gfun”枫叶套餐。3.Olivier Gerard的Mathematica程序,用于执行各种序列转换。4.Harm Derksen的程序“猜测”,使用Pade'-Hermite近似值-请参阅http://www.maples.com/CyberMath/share/guess.html。该算法描述如下:一种计算广义Pade’-Hermite形式的算法,9403号报告(1994年),数学系。,奈梅亨天主教大学(可从http://www.math.lsa.umich.edu/~hderksen/preprints/pade.ps获得)。5.Christian Kratthentaler的Mathematica程序Rate试图猜测序列的闭合形式(在德语中,“rate”是“guess”)。有关速率的描述,请参见http://radon.mat.univie.ac.at/People/kratt/rate.html。6.John Linderman的程序CheckSeq.pl检查序列和任意序列之间存在部分重叠数据库中的序列。7.各种其他程序。说明:要向超级搜索者提交序列,请将邮件发送至superseeker@research.att.com包含表单的单行查找1 2 4 6 10 14 20 26 36 46 60 74 94 114在邮件正文中。在“主题”行中,说“无”。这些术语必须用空格(而不是逗号)分隔。最好给出10到20个条件。一次只能提交一个请求,并且(因为程序执行一些认真的计算),每个用户只有一个请求每小时。(有一个特殊用户列表,他们可以免除这一限制。如果你觉得你真的需要请发送邮件至njas@research.att.com你的理由!)[为了简单地在百科全书中查找序列更高效地使用电子邮件服务器sequences@research.att.com-向该地址发送一封空电子邮件以获取指示-或位于的Web服务器http://www.research.att.com/~njas/序列/]建议:从序列的开头开始(当然请记住,不同的人可能会定义零位用不同的方式称呼.应包括减号(如果有),因为程序将利用它们。如果您从百科全书中收到30个匹配项,请重试给出更多条件.如果你给出太多条件,我的机器就会被长期占用时间,我的老板会不高兴的。对于数字数组,尝试查找个人行、列或对角线,以看起来合适的为准.该程序(主要)只涉及无限序列。该程序仅处理整数。(对于以下序列有理数,试试分子的序列分母。)。单词“lookup”在消息中只能出现一次“主题”行被丢弃。使用的测试该程序将应用以下部分或全部测试。(一旦找到足够的数字,程序就会放弃可能的解释。序列越简单,这个程序花在学习上的时间越少。此外,其中一些测试并不适用于所有序列。只报告可能有用的结果。).在在线百科全书中查找序列和序列省略了第一个术语。(回复将报告找到的所有匹配项,上限为30。).测试a(n)是否是n中的多项式[a(n)表示第n项]换句话说,某个阶数的差异是常数吗?测试某些顺序的差异是否是周期性的。(假设第k阶差为d(1)。。。,d(n)。如果有一个数字p,周期,当i=j(mod p)时,d(i)=d(j)。).测试某个深度的差异表的任何一行是否本质上常数。这样可以检测4^n-n^4这样的序列。(让通常的差异表为(0),(1),(2)。。。b(0),b(1)。。。c(0),c(1)。。。....这是深度1的差异表。深度表2作为顶行a(0)、b(0),c(0)。。。;等等。).对于2值序列,计算六个特征序列并在OEIS中查找它们。(假设序列仅采用值X和Y。六个特征序列均与原始序列相同,分别为:将X、Y替换为1,2;乘以2,1;X和Y的位置;运行长度;以及导数,即序列发生变化的位置。).为每个序列构造生成函数(g.f.)以下6种类型:ogf普通生成函数egf指数母函数普通生成函数的revogf反演指数母函数的revegf反演普通母函数的lgdogf对数导数指数母函数的lgdegf对数导数并尝试将其表示为理性函数,超几何级数或线性微分的解多项式系数的方程。。寻找多项式系数的线性递归上述6种g.f's的系数。.在y和x中寻找多项式方程,以获得每个方程的g.f.y(x)上述6种类型中的一种。。将下面列出的转换应用于序列并查找OEIS中的结果。找到50个匹配项后停止。测试序列是否为Beatty序列。(Beatty序列是其中第n项为[nz]的序列,其中z是无理的。互补序列为[ny],其中1/x+1/y=1。参考:N.J.A.Sloane,《整数序列手册》,1973年,第29页;R.Honsberger,《数学的灵巧性》,1970年,第93页。如果这是Beatty对z给定的值进行排序将产生给定项,但远非独一无二。)可能应用的转换列表以下转换列表中使用的缩写:u[j]=序列的第j项v[j]=u[j]/(j-1)!Sn(z)=普通生成函数En(z)=指数生成函数T001序列本身T002整数不在序列中T003序列除以其元素的gcdT004序列除以其元素的gcd,从第二项开始T005序列除以其元素的gcd,从第3项开始序列中奇数索引的T006元素序列中偶数索引的T007元素T008序列u[j]/(j-1)!T009序列u[j]*jT010序列u[j]/j!T011序列2*u[j]T012序列3*u[j]1/Sn(z)^2的T013系数Sn(z)^2的T014系数1/Sn的T015系数(z)Sn(z)*(1+z)/(1-z)的T016系数Sn(z)*(1-z)/(1+z)的T017系数T018序列u[j+1]-u[j]T019序列u[j+2]-2*u[j+1]+u[j]T020序列u[j+3]-3*u[j+2]+3*u[j+1]-u[j]Sn(z)/(1-z)的T021系数Sn(z)/(1-z)^2的T022系数Sn(z)/(1-z)^3的T023系数T024序列u[j]+u[j+1]T025序列u[j]+u[j+2]T026 Sn系数(z)/(1+z)Sn(z)/(1+z^2)的T027系数T028序列u[j]+u[j+1]+u[j+2]Sn(z)/(1+z+z^2)的T029系数T030序列u[j+2]-u[j]T031 Sn(z)/(1-z^2)的系数T032序列u[j+2]-u[j+1]-u[j]Sn(z)/(1-z-z^2)的T033系数T034序列u[j]+jT035序列u[j]+2T036序列u[j]+3T037序列u[j]-jT038序列u[j]-2T039序列u[j]-3T040序列u[j]+1T041序列u[j]-1Sn(z)/(1-z+z^2)的T042系数T043序列u[j+2]-u[j+1]+u[j]Sn(z)/(1+z-z^2)的T044系数T045序列u[j]+u[j+1]-u[j+2]T046序列u[j]+2*u[j+1]+u[j+2]T047序列u[j]+3*u[j+1]+3*u[j+2]+u[j+3]Sn(z)/(1+z)^2的T048系数Sn(z)/(1+z)^3的T049系数T050第j个Sn系数(z)*(1-z)^jT051第j个Sn系数(z)*(1+z)^jT052第j个Sn系数(z)/(1-z)^jT053第j个Sn系数(z)/(1+z)^j1/En(z)^2的T054系数En(z)^2的T055系数1/En的T056系数(z)T057 En(z)*(1+z)/(1-z)的系数T058 En(z)*(1-z)/(1+z)的系数T059序列v[j+1]-v[j]T060序列v[j+2]-2*v[j+1]+v[j]T061序列v[j+3]-3*v[j+2]-3*v[j+1]+v[j]En(z)/(1-z)的T062系数En(z)/(1-z)^2的T063系数En(z)/(1-z)^3的T064系数T065序列v[j]+v[j+1]T066序列v[j]+v[j+2]En(z)/(1+z)的T067系数En(z)/(1+z^2)的T068系数T069序列v[j]+v[j+1]+v[j+2]En(z)/(1+z+z^2)的T070系数T071序列v[j+2]-v[j]En(z)/(1-z^2)的T072系数T073序列v[j+2]-v[j+1]-v[j]En(z)/(1-z-z^2)的T074系数T075序列v[j]+jT076序列v[j]+2T077序列v[j]+3T078序列v[j]-jT079序列v[j]-2T080序列v[j]-3T081序列u[j]+j!T082序列u[j]-j!En(z)/(1-z+z^2)的T083系数T084序列v[j+2]-v[j+1]+v[j]En(z)/(1+z-z^2)的T085系数T086序列v[j]+v[j+1]-v[j+2]T087序列v[j]+2*v[j+1]+v[j+2]T088序列v[j]+3*v[j+1]+3*v[j+2]+v[j+3]En(z)/(1+z)^2的T089系数En(z)/(1+z)^3的T090系数T091第j个En系数(z)*(1-z)^jT092第j个En系数(z)*(1+z)^jT093第j个En系数(z)/(1-z)^jT094第j个En系数(z)/(1+z)^jT095乘积系数(1/(1-z^j)^u[j],j=1.inf)T096到T095的逆变换,即“乘积系数(1/(1-z^j)^u[j],j=1.inf)”T097乘积系数(1/(1-z^j)^v[j],j=1..inf)T098反变换为T097,即“乘积系数(1/(1-z^j)^v[j],j=1.inf)”T099排序术语,删除重复项T100二项式变换:b(n)=和C(n,k)a(k),k=0..nT101二项式逆变换:b(n)=SUM(-1)^(n-k)*C(n,k)*a(k),k=0..nT102 boustrophedon变换(见http://www.research.att.com/~njas/doc/bous.ps)T103逆boutrophedon变换(参见http://www.research.att.com/~njas/doc/bous.ps)T104欧拉变换:通过1+SUM b(n)x^n=PRODUCT(1-x^n)^-a(n)定义bT105欧拉逆变换:通过1+SUM a(n)x^n=PRODUCT(1-x^n)^-b(n)定义bT106指数:通过1+EGF_b(x)=exp EGF_A(x)定义bT107指数卷积,展开EGF(x)^2T108反转:通过1+SUM b(n)x^n=1/(1-SUM a(n)x ^n)定义bT109反转:通过1+SUM a(n)x^n=1/(1-SUM b(n)x ^n)定义bT110 log:通过b=log的EGF定义b(a的EGF)T111 Mobius:用b(n)=SUM mu(n/d)*a(d)定义b,d除以nT112逆Mobius:用b(n)定义b=和a(d),d除以nT113将除前导项外的所有项乘以2T114斯特林-2变换:b(n)=总和S(n,k)a(k),k=0..nT115斯特林-1变换:b(n)=总和s(n,k)a(k),k=0..n使用此电子邮件服务时的常见错误:确保单词“lookup”不会出现在消息中与任何非数字字符。确保查阅行有表单查找1 4 9 16 25好!并避免使用类似以下内容的行:主题:查找请BAD!主题:查找BAD!收件人:查找糟糕!查找1,4,9,16,。。。[不允许逗号或圆点!]糟糕!查找1 4 9 16?糟糕!在提交给superseeker的文件中,单词“lookup”只能在整个消息中出现一次。***********************网页中描述了数据库中使用的格式http://www.research.att.com/~njas/sequences/eishelp1.html要获得简单快速的外观,请尝试sequences@research.att.com-发送空白消息以获取指示使用网页贡献新序列或评论http://www.research.att.com/~njas/sequences/Submit.html要使用WEB查看序列,请转到http://www.research.att.com/~njas/sequences/index.html有关的更多信息整数序列在线百科全书请参阅“欢迎”页面http://www.research.att.com/~njas/sequences/Seis.html