本网站由以下捐款支持:OEIS基金会.

用户:Peter Luschny/SeidelTransform

来自OeisWiki
跳转到:航行,搜索

序列上的旧操作:
赛德尔变换

SeidelEuler三角.png

塞德尔·欧拉三角形(在新窗口中打开以放大)。

塞德尔-尤勒三角

上图显示了一个三角形赛德尔的算法[1]描写:

“Abgesehen von der 1 an der Spitze,und von den Nullen,麻省理工学院韦尔琴分校Zeilen abwechselnd links und rechts beginnen,就是jede Zahl der Tafel斯蒂亨登·克莱宁和杰拉德·尤伯letzteren befindlichen先生。"

除了尖端的1和0之外这些行从左到右交替开始,表中的任意数字是它旁边的较小的站着和刚刚过去的站着的总和后者。

赛德尔描述了计算过程“……总是从侧面开始其中0为,并交替从左向右和从右向左计算(boutrophedon)。“)(“……从塞特岛开始,我在ihnen die 0 steht,und also abwechselnd von links nachrechts und von rechts nach链接rechnet(βoνστρoφηδóν)。")由于这种特性,该算法也称为“boutrophedon变换”。

上面的三角形计算割线U第2个以及切线T2n+1数字(n≥0)以无与伦比的简洁和优雅开始从1开始。使用Sage(Python)实现三角形:

定义SeidelEuler三角形(n):A={-1:0,0:1}k=0;e=1对于(0..n)中的i:Am=0A[k+e]=0e=-e对于(0..i)中的j:Am+=A[k]A[k]=上午k+=e在(-i//2..i//2)中为z打印[A[z]
赛德尔欧拉三角(11)[1][0, 1][1, 1, 0][0, 1, 2, 2][5, 5, 4, 2, 0][0, 5, 10, 14, 16, 16][61, 61, 56, 46, 32, 16, 0][0, 61, 122, 178, 224, 256, 272, 272][1385, 1385, 1324, 1202, 1024, 800, 544, 272, 0][0, 1385, 2770, 4094, 5296, 6320, 7120, 7664, 7936, 7936][50521, 50521, 49136, 46366, 42272, 36976, 30656, 23536, 15872, 7936, 0][0,50521,101042,150178,196544,238816,275792,306448,329984,345856,353792,353792]

欧拉数的计算

交流电数量排列(正割+正切)

为了提取交替排列的数量,我们可以简单地收集非零对角元素交替出现在塞德尔三角形。

定义A000111_list(n):R=[];A={-1:0,0:1};k=0;e=1对于(0..n)中的i:Am=0;A[k+e]=0;e=-e对于(0..i)中的j:Am+=A[k];A[k]=美国;k+=eR.append(如果e<0,则为A[-i//2],否则为A[i//2])返回RA000111_列表(22)

正割数(欧拉数)

左对角线的元素(正割数)是无符号的欧拉数,Raabe于1851年起的名字[2]到正割数。西尔维斯特[3]跟随Raabe的1861年,在《伯努利和欧拉的数字注释》中领先。曾经因为这个名字在数学写作中是一个既定的惯例。所有主要的计算机代数系统(Maple、Mathematica、Maxima、Sage)实现根据这个定义,欧拉数。上个世纪后半叶数学函数和当今NIST数学数字图书馆函数以这种方式定义欧拉数。

出于某种原因R.P.斯坦利[4]不遵循这一传统惯例。他打电话来交替排列的欧拉数。本作者不认为斯坦利的命名值得收养。这只会与拉贝的定义产生混淆。一个更好的名称交替排列的数目似乎是“安德烈数”,以纪念德西雷安德烈。安德烈于1879年研究了2-交替排列(“Développements de sec x et tg x”)[5]和1881年(“梅莫尔-苏勒-排列交替”)[6]. 此外,当将交替排列的概念推广到n-交替时排列是一个好的标识符需要,这与广义割线数的名称不同(广义欧拉数字)。下面的表1和表2显示了这些概括的前几个值。

如果没有零项,欧拉数可以计算为

#对于n>0,n->[a(0),a(1),…,a(n-1)]。定义A000364_list(长度):R=[];A={-1:0,0:1};k=0;e=1对于(0..2*len-1)中的i:Am=0;A[k+e]=0;e=-e对于(0..i)中的j:Am+=A[k];A[k]=Am;k+=e如果e<0:R.append(A[-i//2])返回R

切线数

右对角线的元素是切线数。如果没有零项,则可以计算为

#n->[a(1),…,a(n)],对于n>=1。定义A000182_list(长度):R=[];A={-1:0,0:1};k=0;e=1对于(0..2*len-1)中的i:Am=0;A[k+e]=0;e=-e对于(0..i)中的j:Am+=A[k];A[k]=美国;k+=e如果e>0:R.append(A[i//2])返回R

欧拉中值

这些是偶数行中的元素塞德尔三角形的中心柱。它们可以计算为

定义A000657号(n) :R=[];A={-1:0,0:1};k=0;e=1对于(0..n)中的i:Am=0;A[k+e]=0;e=-e对于(0..i)中的j:Am+=A[k];A[k]=美国;k+=e如果e<0:R追加(A[0])返回RA000657号(9)  1, 1, 4, 46, 1024, 36976, 1965664, 144361456, 13997185024

广义欧拉数

欧拉在1755年给出sec的扩展(《学院微积分微分学》)[7])以及它们与排列的关系。根据Raabe的提议,这些数字是现在几乎所有的主要数学家都称之为欧拉数。

一般来说,欧拉数是扩展sec+tan,从而计算交替排列。但是它是一种特殊的排列:作用于集的基数是2的倍数。(例如E4=5计算排列{2143,3142,3241,4132,4231})。

一旦有人介绍n-交替置换的一般概念及普通置换交替排列与看到的2个交替排列相同这比一个平淡的花言巧语还要多。广义欧拉数字计算对称群中的n个交替排列[m]的置换,其中n除以m。这种排列可以是预计会有比大部分排列更有趣的性质作用于m不是n的倍数的[m]上。

表1.欧拉数A181985号
米\n 0 1 2 3 4 5  
1 1 1 1 1 1 1  
2 1 1 5 61 1385 50521 A000364号
3 1 1 19 1513 315523 136085041 A002115号
4 1 1 69 33661 60376809 288294050521 A211212型
5 1 1 251 750751 11593285251 613498040952501  
6 1 1 923 17116009 2301250545971 1364944703949044401  
      A030662号 A211213型 A181991号    

赛德尔算法的一个很好的特点是它继承了经典Euler-scant-2-alternating-pervation情形Euler-n-交替-突变案例,基本上没有修改。

Euler编号:=proc(n,len)局部E,dim,i,k;尺寸:=n*(透镜-1);E:=阵列(0..dim,0..dim.);E[0,0]:=1;对于我来说从1到dim do如果i mod n=0,则E[i,0]:=0;对于k从i-1乘以-1到0的do E[k,i-k]:=E[k+1,i-k-1]+E[k、i-k-1]od;否则E[0,i]:=0;对于k从1乘1到i do E[k,i-k]:=E[k-1,i-k+1]+E[k-l,i-k]od;od;seq(E[0,n*k],k=0...len-1)结束:对于从1到6的n,请打印(EulerNumbers(n,6))od;#给出了上表。

安德烈数的计算

对于整数n>0,置换s=s1……sk是n交替排列如果它具有以下属性<秒i+1(输入+1)当且仅当n除以i。安德烈数计算n交替排列。

表2.安德烈数1981年
n\k(不可用) 0 1 2 3 4 5 6 7 8 9 10 11  
1 1 1 1 1 1 1 1 1 1 1 1 1  
2 1 1 1 2 5 16 61 272 1385 7936 50521 353792 A000111号
3 1 1 1 1 3 9 19 99 477 1513 11259 74601 A178963号
4 1 1 1 1 1 4 14 34 69 496 2896 11056 A178964号
5 1 1 1 1 1 1 5 20 55 125 251 2300 A181936号
6 1 1 1 1 1 1 1 6 27 83 209 461  

如前所述,赛德尔算法关于n-交替排列的一般情形修改。说服自己:

AndreNumbers:=proc(模量,dim)局部E,dim,n,k;尺寸:=尺寸-1;E:=阵列(0..DIM,0..DIM);E[0,0]:=1;对于从1到DIM的n do如果n mod模量=0,则E[n,0]:=0;对于k从n-1乘以-1到0的do E[k,n-k]:=E[k+1,n-k-1]+E[k、n-k-1]od;否则E[0],n]:=0;对于从1乘1到n的k do E[k,n-k]:=E[k-1,n-k+1]+E[k-l,n-k]od;光纤;[E[0,0],seq(E[k,0]+E[0,k],k=1.DIM)]结束:

3-和4-交替置换的安德烈数

A178963_list:=dim->AndreNumbers(3,dim):A178963_列表(12);1, 1, 1, 1, 3, 9, 19, 99, 477, 1513, 11259, 74601

根据门德斯和雷梅尔的说法[8]指数生成函数是

(3+2*sqlt(3)*exp(x/2)*sin(sqrt(3)*x/2))/(exp(-x)+2*exp。

黑客可能会称之为数学意义的良好混淆。

在n=4的情况下:

A178964_列表:=dim->安德烈数字(4,dim):A178964_列表(12);1, 1, 1, 1, 1, 4, 14, 34, 69, 496, 2896, 11056

根据Mendes和Remmel的说法,指数生成函数如下案例

(1+平方(2)*sin(x/sqrt(2))*cosh(x/squart(2/(cos(x/sqrt(2))*cosh(x/m2))。

黑客可能会把这称为数学意义的完美混淆。

n-交替置换的安德烈数

23-交替排列的生成函数还没有据作者所知已出版。考虑到例f.,在n=4的情况下很可能是这样的情况,生成函数用初等形式表示函数(如果存在这样的公式)很长并且容易出错。是什么答案是什么?可论证的简短通用算法。的确,很容易做到在n=23的情况下,用赛德尔变换计算安德烈数。

安德烈·努姆斯(23、34);[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 299, 2599, 17549, 98279, 475019, 2035799, 7888724, 28048799, 92561039]

安德烈数和帕斯卡三角形减1。

如果行将k个位置向左移动(因此忽略k个前导1)。在表中此外,行和列在下面互换。

表3.对角线安德烈数
不适用12345678910 
112345678910 A000027号(k≥1)
215914202735445465 A000096号(k≥2)
311619345583119164219285 A062748号(k≥3)
416199691252093294947141000 A063258号(k≥4)
51272477496251461791128620013002 A062988号(k≥5)
6113851513289623009231715300250048007 A124089号(k≥6)

这个数组的对角线是中心二项式系数减去1,A030662号。More is true:对角线上和右侧的所有值对角线(蓝色)遵循一个简单的公式:T(n,k)=二项式(n+k,k)-1。换句话说,表3的上三角是帕斯卡的上三角三角形减1作为方形数组索引(参见A014473号).

Milan Janjic指出了T(n,k)=二项式(n+k,k)-1的组合解释。如果X是(n+k)-集,Y是X的固定k-子集,那么T(n,k)等于n个X与Y相交的子集。

Sage的一点黑客行为证实了这种解释(不过,证据并不难)。

定义相交子集(n,k):X=设置(范围(n))Y=子集(X,k).first()L=子集(X,n-k).list()F=滤波器(λx:x交集(Y)<>集([]),L)返回透镜(F)对于(0..6)中的n:打印[n],[(0..9)中k的相交子集(n+k,k)]

综上所述:对于k≥n André(k,n+k)=二项式(n+k,k)-1。

安德烈多项式。

那么对于n≥0的多项式序列

是安德烈多项式。(有关不同的定义,请参见A094503号.)

定义AndrePoly(n):s=变量(s’);u=平方米(s^2-2)egf=u*x-2*ln((exp(u*x)*(1-s/u)+s/u+1)/2)返回阶乘(n+2)*egf.series(x,n+4).coff(x,n+2)定义AndreCoeffs(n):返回[AndrePoly(n).coeff(s,i)for i in(0..n)]
n个 安德烈
系数
安德烈
数字
0 1                     1
1 0 1                   1
2 1 0 1                2
3 0 4 0 1               5
4 4 0 11 0 1             16
5 0 34 0 26 0 1           61
6 34 0 180 0 57 0 1         272
7 0 496 0 768 0 120 0 1       1385
8 496 0 4288 0 2904 0 247 0 1     7936
9 0 11056 0 28768 0 10194 0 502 0 1   50521
10 11056 0 141584 0 166042 0 34096 0 1013 0 1 353792

注意(非零)子对角线与A008292号, 欧拉数A000295号。最左边的列显示充气折合切线数字A002105号根据温金·沃恩(Wenjin Woan)的评论,它将递增完全二进制数计算在内具有指数生成函数sec^2(x/sqrt(2))的树。

没有零,按行倒序排列三角形A094503号由生成

定义A094503_row(n):返回[AndrePoly(n).coeff(s,n-2*i)for i in(0..n//2)]

然而,定义André多项式的最佳方法可能是通过简单的系数递归。

定义安德烈·科夫(n,k):如果n==k:返回1如果k<1或k>n:返回0返回(n-k)//2+1)*AndreCoeff(n-1,k-1)+k*AndreCoeff(n-1,k+1)对于(0..8)中的n:打印“p_”,n,“(x)=”,加法(AndreCoeff(n,k)*x^k代表k in(0..n))p_0(x)=1p_1(x)=xp_2(x)=x^2p_3(x)=x+x^3p_4(x)=4*x^2+x^4p_5(x)=4*x+11*x^3+x^5p_6(x)=34*x ^2+26*x ^4+x ^6p_7(x)=34*x+180*x^3+57*x^5+x^7p_8(x)=496*x^2+768*x^4+120*x^6+x^8

在此设置中,多项式更适合安德烈数的枚举A094503号作为A000111号(n) n=0,1,2时=1。

瑞士刀多项式是塞德尔-尤勒三角形的推广。

现在让我们研究一下瑞士刀多项式是如何融入这幅图的。在这个博客中写过几次关于这些惊人多项式的文章,例如在我的主页.

瑞士刀多项式可以通过指数生成来定义函数2*exp(x*t)/(exp(t)+exp(-t)),并使用Sage作为

定义σ(n,x):定义A(k):如果k%4==3,则返回0,否则返回2^((1-k)//2)*(-1)^(k+1)//4)S=为k in(0..n)添加(A(k)*(-1)^v*二项式(k,v)*(v+x+1)^n,为v in(0..k))返回展开(S)

接下来,让我们建立瑞士刀多项式的差异表:

瑞士刀Differenzen Polynome.png

我们立即看到(例如从我们的讨论瑞士刀多项式)的多项式序列在表的第一行中,可以通过以下方式简单计算:

定义tau(n,x):返回sigma(n,x-1)

τ的指数生成函数n个(x) 是2*exp(t*(x-2))/(1+exp(-2*t))。

g:=t->2*exp(t*(x-2))/(1+exp(-2*t)):s:=n->系列(g(t),t,n+2):τ:=n->n*系数(s(n),t,n):对于从0到9的i,T[i]:=不适用(排序(展开(tau(i))),x)od;

如果在x=处求值,可以看到这个差异表的一个很好的特性0和x=1。在x=0时进行评估,我们发现塞德尔的“Doppel-Treppen-Schema”在签名版本中从本页顶部开始。

1 -1 0 2 0 -16 0
0 -1 2 2 -16 -16  
-1 1 4 -14 -32    
0 5 -10 -46      
5 -5 -56        
0 -61          
-61            

如果我们在x=1处计算差分表,则得到转置“Doppel-Treppen-Schema”,尽管符号方案不同。

1 0 -1 0 5 0 -61
1 -1 -1 5 5 -61  
0 -2 4 10 -56    
-2 2 14 -46      
0 16 -32        
16 -16          
0            

调查型读者也可能会急切地想知道如果差分表在x=1/2或x=-1时计算。

瑞士刀中值多项式

这个瑞士刀中值多项式由主对角线给出瑞士刀多项式差分表。

M(0,x) 1
M(1,x) x^2-x-1
M(2,x) x^4-2*x^3-5*x^2+6*x+4
M(3,x) x^6-3*x^5-12*x^4+29*x^3+57*x^2-72*x-46
M(4,x) x^8-4*x^7-22*x^6+80*x^5+261*x^4-660*x^3-1264*x*2+1608*x+1024
11, -1, -11, -2, -5, 6, 41, -3, -12, 29, 57, -72, -461, -4, -22, 80, 261, -660, -1264, 1608, 1024

我们注意到,在x=1或x处计算瑞士刀中值多项式=0表示带符号的欧拉中值A099023号(列出无符号变量在里面A000657号,请参见上面的实现)。

1,-1,4,-46,1024,-36976,1965664,-1443614556,13997185024。。。

仔细看一下赛德尔的算法。

首先,我们将分四个步骤进行概述,每个步骤略为比前一个更普遍。脚本只是片段重点关注发生变化的部分。整个脚本将在附录。

起点是塞德尔三角形,如顶部传真所示(共页)。

经典的赛德尔三角。

boutrophedon算法(Sec-Tan系数)。

Seidel:=proc(#输入:dim::integer,#序列长度)犁=过程(n)如果is_even(n),则#从右到左向后E[n,0]=0....else#从左到右向前E[0,n]=0....结束E=阵列(0..dim-1,0..dim-1);E[0,0]=1对于从1到dim-1的n,犁(n)od返回E

布尔Seidel变换。

回想一下,塞德尔变换的特点是计算就像耕牛一样转动。这意味着你“犁”过从右向左三角形,然后转身,从左向右“犁”,如此类推上的。

下一步是引入一个小而关键的变化。现在我们可以自由地在任何一边开始新的计算我们想要的三角形。单调的之字形现在被之字形或zag-zag-zag或其他什么。公牛不能从英亩的一边飞到其他布尔值可以易于更改。

最简单的例子是在Seidel算法中改变条件'n mod 2=0'by'nmod k=0’。瞧,经典的boutrophedon算法已经变成了布洛佩顿将sec+tan系数的算法和计算推广到安德雷数的计算。这正是我们在我们的广义欧拉数和安德烈数的实现。

一般来说,在下面的实现中,布尔控制序列已经成为参数,一个integer->boolean类型的函数。

Seidel=程序(dim::integer,#序列长度contr::procedure,#integer->boolean)犁=过程(n,b)如果b,则#从右向左向后E[n,0]=0....其他#从左到右向前E[0,n]=0....结束E=阵列(0..dim-1,0..dim-1);E[0,0]=1对于从1到dim-1的n,犁(n,控制(n))od返回E

作为一个测试用例,让我们计算一些奇怪的东西。什么是素数的赛德尔三角?这里的控制函数是n->is_prime(n)。

三角形开始于:

[  1   0   1   2   0  11   0 181   0][  1   1   1   2  11  11 181 181   ~][  0   0   3   9  22 170 362   ~   ~][  0   3   6  31 148 532   ~   ~   ~][  3   3  37 117 680   ~   ~   ~   ~][  0  40  80 797   ~   ~   ~   ~   ~][ 40  40 877   ~   ~   ~   ~   ~   ~][  0 917   ~   ~   ~   ~   ~   ~   ~][917   ~   ~   ~   ~   ~   ~   ~   ~]

添加得到的第一行和第一列

1, 1, 1, 2, 3, 11, 40, 181, 917, 5263, 19144, 54924, 524073, ..

更一般地说,每个序列A(n)都有相关的布尔指示符函数定义为

is_an_A(n)=true,如果存在整数k,使得n=A(k),否则为假。

将该指示函数作为塞德尔三角形的控制函数第一行和第一列的和是A的布尔Seidel变换。例如,经典的安德烈序列1、1、1,2、5、16、61、272,。。。偶数0,2,4,6,8,…的布尔塞德尔变换,。。。

注意,序列A(n)本身的项不会进入三角形的计算。在接下来的步骤中,这将有所不同泛化,其中第一行和第一列的初始值由传递给转换的值初始化。

综上所述:布尔Seidel变换具有函数类型(签名)

布尔值序列->整数序列

我们考虑的两个基本例子是

[n->n mod 2=0]->[sec+tan]
[n->is_prime(n)]->[无名称]。

将控制功能解释为序列的指示功能也可以这样说:

[0, 2, 4, 6, 8,10, ...]  ->  [1, 1, 1, 2, 5, 16, 61, 272,...]
[2, 3, 5, 7, 11, 13,...]  ->  [ 1, 1, 1, 2, 3, 11, 40, 181, ...].

布尔赛德尔变换是最基本、最直接的推广塞德尔三角。

广义赛德尔变换。

推广赛德尔算法的下一步是提供额外的向控制函数发送以下行的第一项序列:控制函数标记为“true”。这些在最初的设置中由Seidel设置为0。

Seidel=程序(dim::integer,#序列长度contr::procedure,#integer->booleanS: :list,#长度尺寸的整数列表)犁=过程(n,b)如果b,则#从右向左向后E[n,0]=S[n]....else#从左到右向前E[0],n]=0....结束E=阵列(0..dim-1,0..dim-1);E[0,0]=1对于从1到dim-1的n,犁(n,控制(n))od返回序列对seq(E[i,0]代表{contr(i)=false}中的i)seq(E[0,i]代表{contr(i)=true}中的i)

让我们举一个例子。让控制序列在原始Seidel算法和S中,为n->n mod 2=0常量序列1(而不是原始情况下的常量序列0)。然后我们得到Salie数字A000795号在三角形的右侧。

由于计算中的对称性,还有第二个序列可以作为输出的数字:左手边的数字由输入序列预先确定。在我们的示例中,我们得到了序列A003719号, tan(x)*cosh(x)展开式的奇数部分。

总而言之:广义赛德尔变换具有函数类型(签名)

布尔值序列,整数序列->整数序列,整数顺序

我们考虑的两个基本示例是

[n->n模2=0,n->0]->[秒,tan]
[n->n模2=0,n->1]->[cosh*tan,cosh/cos]。

当然,如果令人满意。添加sec和tan可以得到经典的André数字,添加cosh*tancosh/cos给出cosh*(sec+tan)被列为Frank Ellermann的A062272号.

赛德尔行动。

我们概括的最后一步很明显。我们也可以预先确定三角形左侧的初始值其控制序列为假。额外的输入序列需要注意为了这个。现在设置更加对称。

赛德尔:=进程(dim::integer,#序列长度contr::procedure,#integer->boolean签名::boolean,#签名版本?是/否S: :list,#长度尺寸的整数列表T: :list#长度尺寸的整数列表)犁=过程(n,b)如果b,则#从右向左向后E[n,0]=S[n]...else#从左到右向前E[0,n]=T[n];...E=阵列(0..dm-1,0..dm-1);E[0,0]=1对于从1到dim-1的n,犁(n,控制(n))od返回序列对seq(E[i,0]代表{contr(i)=false}中的i)seq(E[0,i]代表{contr(i)=true}中的i)

例如,我们可以选择S=T=(-1)^n。这导致了Frank Ellermann的A062162号,这是经典安德烈数的二项式逆变换根据Paul Barry的评论,具有指数生成函数exp(-x)(sec+tan)正如Vladeta Jovovic所观察到的那样。  

控制:=n->n模块2=0:T:=[seq((-1)^k,k=1.dim)]:赛德尔(10,控制,T,T):经典安德烈数的二项式逆变换。[1, 0, 0, 1, 0, 5, 10, 61, 280, 1665][1,   -1,    0,   -1,    0,   -1,  10,  -1, 280, -1] [0,    1,   -1,    1,   -1,   11,   9, 281, 279,  ~] [1,    0,    2,    0,   12,   20, 272, 560,   ~,  ~] [1,    2,    2,   12,   32,  252, 832,   ~,   ~,  ~] [1,    4,   10,   44,  220, 1084,   ~,   ~,   ~,  ~] [5,    6,   54,  176, 1304,    ~,   ~,   ~,   ~,  ~] [1,   60,  122, 1480,    ~,    ~,   ~,   ~,   ~,  ~] [61,621602,~,~,~,~,~,~,~,~,][1, 1664,    ~,    ~,    ~,    ~,   ~,   ~,   ~,  ~] [1665, ~,    ~,    ~,    ~,    ~,   ~,   ~,   ~,  ~]

请注意,赛德尔积不是可交换的。(这有时会被表达出来说有两种赛德尔变换有点多云。)例如

控制:=n->n模块2=0:S:=[序列(0,k=1..dim)]:T:=[序列(1,k=1..尺寸)]:

一个为赛德尔(dim,contr,T,S)发现的

[1, 5, 41, 685]                         [A003719号][1, 2, 12, 152, 3472]                   [A000795号][1,2,1016162572]//中位数[1,1,2,5,12,41,152,685,3472][A062272号]

而赛德尔(dim,contr,S,T)给出

[2, 6, 52, 896][1, 3, 17, 203, 4577][1、2、12、150、3376]//中位数[1, 2, 3, 6, 17, 52, 203, 896, 4577]

总而言之:赛德尔操作具有函数类型

整数序列,整数序列->整数序列

这里默认控制函数n->n mod 2=0,并且如果control(k)为真,则通过Return[k]=E[0],k]组合得到的序列,否则为E[k,0]。

我们考虑的两个基本示例是

[n->0,n->1]->[A062272号]
[n->1,n->0]->[1,2,3,6,17,52,203,896,4577,…]。

这个广义塞德尔运算具有函数类型

布尔值序列,整数序列,整数顺序
->整数序列,整数序列

当然,如果理想的。

附录

Maple实现

#Boolophedon=广义Seidel算法#版权所有(c)2012 Peter Luschny塞德尔:=过程(dim::integer,#序列长度contr::procedure,#f:integer->booleanS: :list,#长度尺寸的整数列表T: :list#长度尺寸的整数列表)局部E、M、B、U、V、DIM、犁、垫、n、k、r、c;材料:=工艺(E)#将三角形打印为矩阵。#仅为了可读性:将“~”放在未使用的条目中。对于从0到DIM的n do对于从0至DIM的k do如果不是类型(E[n,k],integer),则E[n、k]:=`~`fiod od;M:=转换(E,矩阵);打印(M);M端;犁:=proc(n,cond)局部k;if cond然后#从右向左向后E[n,0]:=S[n];对于k从n-1乘以-1到0 doE[k,n-k]:=E[k+1,n-k-1]+E[k、n-k-1]else#从左到右向前E[0,n]:=T[n];对于k从1乘1到n doE[k,n-k]:=E[k-1,n-k+1]+E[k-1,n-k]fi端:尺寸:=尺寸-1;E:=阵列(0..DIM,0..DIM);E[0,0]:=1;对于从1到DIM的n,犁(n,控制(n))od;B:=选择(k->evalb(非控制(k)),[$0..DIM]);r:=[seq(E[k,0],k=B)];#第一排B:=选择(k->evalb(控制(k)),[$0..DIM]);c:=[seq(E[0,k],k=B)];#第一列V:=[seq(E[k,k],k=0.DIM/2)];#中间带(对角线)U:=[seq(`if`(控制(k),E[0,k],E[k,0]),k=0..DIM)];打印(r);印刷品(c);打印(V);打印(U);垫(E);结束时间:#示例用法:赛德尔(9,n->n mod 2=0,[0$9],[0$8]):赛德尔(9,n->n mod 2=0,[1$9],[1$2]):赛德尔(9,n->isprime(n),[0$9],[0$9:):

Sage实施

def塞德尔(dim,#整数,序列长度contr,#函数,integer->布尔值S、 #长度标注的整数列表T#长度尺寸整数列表):E=矩阵(ZZ,dim);E[0,0]=1def犁(n,cond):if cond:#从右向左向后E[n,0]=S[n]对于范围(n-1,-1,-1)中的k:E[k,n-k]=E[k+1,n-k-1]+E[k、n-k-1]else:#从左到右向前E[0,n]=T[n]对于范围(1,n+1,1)中的k:E[k,n-k]=E[k-1,n-k+1]+E[k-l,n-k]对于n in(1..dim-1):犁(n,控制(n))如果不控制(k),打印范围(dim)中k的[E[k,0]#第一行如果控制(k),则为范围(dim)中的k打印[E[0,k]#第一列打印范围内k的[E[k,k]((dim+1)//2)]#中值打印[E[0,k]如果控制(k),否则E[k,0]对于范围(dim)中的k#all返回E#示例用法打印Seidel(9,λx:x%2==0,[0]*9,[0]*9)打印Seidel(9,λx:x%2==0,[1]*9,[1]*9)打印塞德尔(9,is_prime,[0]*9,[0]*9)

进一步参考

杜蒙特和维诺等人研究了赛德尔算法及其组合插值[9],杜蒙特[10], 阿诺德[11],Millar、Sloane和Young[12],曾和周[13].

下个月我们将看看塞德尔在同一篇论文中提出的第二种算法,它可以是被视为此处给出的优化,可以应用于例如在伯努利数的计算中(现在在这里)和加泰罗尼亚三角(现在在这里).

工具书类

  1. 路德维希·塞德尔(Ludwig Seidel),尤伯·埃因法赫·恩斯特亨斯魏斯·德·伯努利(Ueber eine einfache Entstehungsweise der Bernoulli's chen Zahlen)und einiger verwandten Reihen,Sitzungsberichte der mathematisch-physikalischen Classe数学物理类德克尼利希·巴耶里申·阿卡德米·德维森沙夫滕·穆钦,第7卷(1877年),157-187。
  2. J.L.拉贝。Zurückführung einiger Summen和最佳积分雅各布·伯努利什(Jacob-Bernoullische Funktion)。J.Reine Angew。数学。(42), 348-367, 1851
  3. W.R.Hamilton,关于伯努利数的表达式,借助于定积分,以及关于求和和积分的一些相关过程。《哲学杂志》,23(1843),第360-367页。
  4. R.P.Stanley,交替排列调查。《当代数学》,2010年第531卷
  5. DésiréAndré,Développement de sec x and tg x,C.R.Math。阿卡德。科学。巴黎88(1879),965-979。
  6. 德西雷·安德烈(DésiréAndré),《南梅莫尔排列交替》(Mémoire sur-les permutations alternées),J.Math。采购。申请。,7 (1881), 167-184.
  7. E212 L.Euler,计算研究所1755年《有限元分析与交流学说》中的“差异与环境影响”(differentis cum eius usu in analysis finitorum ac doctorina serierum)
  8. Anthony Mendes和Jeffrey Remmel,从对称函数生成函数,该书的初步版本,可从杰弗里·雷梅尔的主页上获得。
  9. D.Dumont和G.Viennot。赛德尔的组合解释Genocchi数的生成,Ann.Disc。《数学》,第6卷,1980年,第77-87页
  10. D.Dumont,《Euler-Seidel矩阵》,Séminaire Lotharingien de Combinatoire,B05c(1981)
  11. V.I.Arnold,与函数奇点相关的Bernoulli-Euler上下数,它们的组合和算术,杜克数学。J.,63(1991),537–555
  12. J.Millar、N.J.A.Sloane和N.E.Young,《序列的新操作:包转变换》,《组合理论》,A辑,76(1996),第44-54页
  13. Zeng,Jiang和Zhou,Jin,Genocchi数的塞德尔代的q类似物,Eur.J.Comb。27, (2006), 364-381