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

用户:Peter Luschny/SequenceTransformations

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

的转换
整数序列

本文重新考虑并重新实现了

整数序列的变换
由N.J.A.Sloane(枫树版)和
Olivier Gerard(数学版)。

请注意,这里对一些重要转换的定义有所不同。这总是在文本中指出。使用的计算机语言是圣人蟒蛇的方言。

一些序列工具

二等分

############################################################名称:BISECTION#param:序列#参数:{0,1}中的k#return:A的第k个二分###########################################################
定义截面(A,k)(_S):L=[]b=k==0对于a中的a:如果b:L.追加(a)b=非b返回L

模量-截面

############################################################名称:MODSECTION#param:序列#参数:模数m≥2#参数:{0,1,..,m-1}中的k#return:A的第k个mod部分###########################################################
定义mod_section(A,m,k):L=[]b=0对于a中的a:如果b%m==k:L.append(a)b=b+1返回L

系数列表

###################################################################name:系数列表#param:p多项式在x变量中具有整数系数。#return:所有系数的序列##################################################################
定义系数列表(p,x):c=0L=[]R=p.系数(x)对于r中的r:而r[1]<>c:L.append(0)(左附加(0))c=c+1L.append(r[0])c=c+1返回L

事务处理。基于算术

第一个差异

############################################################名称:FIRSTDIFFERENCE#param:序列#return:A的第一个差异###########################################################
def first_difference(A):如果A==[]:返回[]L=[]b=A[0]p=错误对于a中的a:如果p:L.附录(a-b)b=aelse:p=正确返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 0,0,0,0,0,0,0,... 1,1,1,1,1,1,1,... A001563号

部分金额

############################################################名称:PARTIALSUM#param:序列#return:部分和序列b[n]=a[0]++答[n]。###########################################################
定义partial_sum(A):如果A==[]:返回[0]p=0L=[]对于a中的a:p=a+pL.附录(p)返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 1,2,3,4,5,6,7,... A000217号 A003422号

部分产品

############################################################名称:PARTIALPRODUCT#param:序列#return:部分乘积的序列b[n]=a[0]**答[n]。###########################################################
定义partial_product(A):如果A==[]:返回[1]p=1L=[]对于a中的a:p=p*aL.附录(p)返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 1,1,1,1,1,1,1,... 1,2,6,24,120,... A000178号

部分_总和部分_产品是的原型以下蓝图:给定一个操作“#”和一个特殊值X,由“空操作”情况下的约定。然后是“部分操作#”应用于A=[A,b,c,…]时应返回:

如果A=[],则[X]其他部分#(A)=[A,A#b,A#b#c,…]。

在斯隆的转换库中PSUM公司(【a、b、c】)返回[a,a+b,a+b+c]并按预期的方式运行,而产品([a,b,c])意外返回[1,a,a*b](因此独立于输入中的c!)。

部分有符号和

############################################################名称:PARTIALSUMSIGN#param:序列。#返回:序列###########################################################
定义partial_signsum(A):如果A==[]:返回[0]p=0L=[]对于a中的a:p=a-pL.附录(p)返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000035号 A008619号 A058006型

部分交替总和

############################################################名称:ALTERNATINGSUM#param:序列。#return:交替部分和序列,#b[n]=a[0]-a[1]++/-a[n]。###########################################################
定义alternating_sum(A):如果A==[]:返回[0]p=0b=正确L=[]对于a中的a:如果b:p=a+p其他:p=p-aL.附录(p)b=非b返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) ±A000035号 ±A008619号 ±A058006型


事务处理。基于连接系数

二项式

############################################################名称:BINOMIALTRANS#param:序列。#return:A的二项式变换###########################################################
定义二项式trans(A):L=[]对于范围内的n(长度(A)):s=总和(二项式(n,k)*A[k]表示k in(0..n))L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000079号 A001792年 A000522号

二项式反演

############################################################名称:BINOMIALINVTRANS#param:序列。#return:A的二项式逆变换###########################################################
定义二项式转换(A):L=[]对于范围内的n(长度(A)):s=总和((-1)^(n-k)*二项式(n,k)*A[k],对于(0..n)中的k)L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 1,0,0,0,0,0,0,... 1,1,0,0,0,0,... A000166号

二进制反式二项式_invtrans是原型吗基于整数三角形的变换。给定A=A_{n,k}和B=B_{n,k}表示n,k=0…L,这样矩阵A和B都是逆的对于所有n<k≤L,其他和a{n,k}=b{n,k}=0,则关联变换及其逆运算由以下公式描述

un=和a{n,k}vk<=>vn=和b{n,k}uk。

基于这个方案,很容易给出另外两个变换:斯特林变换变换和它们的逆,以及拉赫变换和它的逆。

箍筋2

############################################################名称:STIRLING2TRANS#param:序列。#return:A的Stirling2变换###########################################################
定义斯特林2_trans(A):L=[]对于范围内的n(长度(A)):s=总和(stirling_number2(n,k)*A[k]代表k in(0..n))L.append(s)(左附加)返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000110号 ~A000110号 A000670号

Stirling2反转

############################################################名称:STIRLING2INVTRANS#param:序列。#return:A的逆Stirling2变换###########################################################
定义stirling2_invtrans(A):L=[]对于范围内的n(长度(A)):s=总和((-1)^(n-k)*stirling_number1(n,k)*A[k]表示(0..n)中的k)L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 1,1,0,0,0,0,0,... ~A133942号 A006252号

斯特林_编号1此处表示无符号这些数字的版本斯特林循环数.

箍筋1

############################################################名称:STIRLING1TRANS#param:序列。#return:A的Stirling1变换###########################################################
定义stirling1_trans(A):L=[]对于范围内的n(长度(A)):s=sum(stirling_number1(n,k)*A[k]对于(0..n)中的k)L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000142号 A000774号 A007840号

斯特林1反转

############################################################名称:STIRLING1INVTRANS#param:序列。#return:A的逆Stirling1变换###########################################################
定义stirling1_invtrans(A):L=[]对于范围内的n(len(A)):s=总和((-1)^(n-k)*stirling_number2(n,k)*A[k],对于(0..n)中的k)L.附录返回L
A类 1,1,1,1,1,1,1,。。。 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000587号 1,2,1,-3,0,13,... A000012号

不幸的是,这些转变斯特林斯特林吉在斯隆的转换库中不同意上述定义。相反,它们计算以下转换其斯特林数指数发生了变化:

斯特林

############################################################名称:斯特林#param:序列。#return:斯隆对A的斯特林变换###########################################################
定义STIRLING(A):L=[]对于范围内的n(长度(A)):s=总和(stirling_number2(n+1,k+1)*A[k]代表k in(0..n))L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000110号 A005493号 A000629号

斯特林吉

############################################################姓名:STIRLINGi#param:序列。#return:Sloane对A的逆Stirling变换###########################################################
定义STIRLINGi(A):L=[]对于范围内的n(长度(A)):s=总和((-1)^(n-k)*stirling_number1(n+1,k+1)*A[k]表示k in(0..n))L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) 1,0,0,0,0,0,0,... ~A000142号 A089064号


############################################################名称:LAHTRANS#param:序列。#return:A的Lah变换###########################################################
定义lah数(n,k):#定义为n≥0,k≥0。return(-1)^n*阶乘(n-k)*二项式(n,n-k)x二项式
1
0, -1
0, 2, 1
0, -6, -6, -1
0、24、36、12、1
定义lah_trans(A):L=[]对于范围内的n(长度(A)):s=总和(lah_number(n,k)*A[k]表示k in(0..n))L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) ±A000262号 A002720型 ±A002866号
T(T(A)) 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24120,。。。

Lah反转

############################################################姓名:LAHINVTRANS#param:一个序列。#return:A的逆Lah变换###########################################################
定义lah_invtrans(A):L=[]对于范围内的n(长度(A)):s=总和((-1)^(n-k)*lah_number(n,k)*A[k],对于(0..n)中的k)L.附录返回L
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) ±A066668号 A202410型 A154955号
T(T(A)) 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,。。。 1,1,2,6,24,120,...

顺便说一下,方程式lah_invtrans公司([1,2,3,..]) =A202410型可以重写用数学术语表示,其中Ln个(x) 表示第n个拉盖尔多项式,如下所示:

这是一个如何使用序列转换来查找新公式的示例。

让我们回到拉氏转变。是什么促成了这些转变特殊的是拉赫数的对合特征。这反映在方程T(T(A))=A中的变换。

例如,如果我们从1、2、3…开始,。。并应用Lah变换得到完全二部图K(n,n)中的匹配数。如果我们申请这个序列上的Lah变换,我们回到了1,2,3,。。类似地,如果我们对1,2,3,…应用反向Lah变换,。。我们得到不!(升n个(1) -2升n-1个(1)). 应用Lah逆变换在这个序列中,我们回到了1,2,3。

不幸的是,斯隆选择在他的转换库中调用不同的变换分别为Lah。Lah逆变换。此命名必须拒绝,因为这些转换不具有内卷化表征Lah变换的性质。

事务处理。基于生成函数

欧拉

############################################################名称:EULERTRANS#param:序列。#return:A的Euler变换###########################################################
定义euler_trans(A):L=[];M=[]对于范围内的i(长度(A)):s=总和(d*A[d-1]表示除数(i+1)中的d)L.附录s=s+总和((1..i)中j的L[j-1]*M[i-j])M.append(s/(i+1))返回M
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,。。。 1,1,2,6,24,120,...
T(A) A000041号 A000219号 179327英镑

欧拉反转

############################################################名称:EULERINVTRANS#param:序列。#return:A的逆Euler变换###########################################################
定义euler_invtrans(A):L=[];M=[]对于范围内的i(长度(A)):s=(i+1)*A[i]-和(L[j-1]*A[i-j],用于(1..i)中的j)L.附录s=总和(moebius((i+1)/d)*L[d-1]表示d的除数(i+1))M.append(s/(i+1))返回M
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,。。。 1,1,2,6,24,120,...
T(A) A000007号 1,1,1,0,0,-1,0,0,0,... 1,0,1,4,18,95,...

欧拉和逆欧拉变换的一个很好的应用是戈登定理, Rogers-Ramanujan恒等式的推广。请注意欧拉_invtrans(A035937号)生成列表[0,1,1,1,0,0],无止境重复。类似地欧拉_invtrans(A035939号)生成无休止重复的列表[1,1,0,0,1,1,0]。这只是戈登定理的一种方法在某些特殊情况下出现。反之亦然欧拉翻译可用于生成序列A035937美元通过A035941号通过应用一些简短的0-1列表重复。

定义gordons_定理(A,n):L=[];M=[];m=长度(A)对于范围(n)内的i:s=除数(i+1)中d的总和(d*A[(d-1)%m])L.附录s=s+总和((1..i)中d的L[d-1]*M[i-d])M.append(s/(i+1))返回M定义A035937_list(len):返回戈登斯定理([0,1,1,1,0,0],len)定义A035938_list(len):返回戈登斯定理([1,0,1,1,0],len)定义A035939_list(len):返回戈登斯定理([1,1,0,0,1,1,0],len)def A035940_list(len):返回戈登定理([0,1,1,1,1,1,0],len)定义A035941_list(len):返回戈登斯定理([1,0,1,1,1,0,1,0],len)

比较欧拉翻译具有戈登斯定理我们看到唯一的区别是生成0-1列表长度的内置重复模。

s=总和(d*A[d-1]表示除数(i+1)中的d)s=除数(i+1)中d的总和(d*A[(d-1)%m])

最后,让我们看看上述意义上的三个简单0-1“生成器”:欧拉翻译([1,0,1,0,1,1,0.1,..])=将n划分为奇数部分的数量,A000009号, 欧拉翻译([0,1,0,0,1,0,1.0,..])=n分成偶数部分的分区数,A035363号。所以现在毫不奇怪欧拉翻译([1,1,1,1,1,…])是n的分区,A000041号但令人惊讶的是,这些简单的数据库中没有提到特征。

这些转变摩托车变速器,加泰罗尼亚语翻译和它们的反比基于Richard J.Mathar的Maple程序“transforms3”。

莫茨金

############################################################名称:MOTZKINTRANS#param:序列。#return:A的Motzkin变换###########################################################
定义motzkin_trans(A):d=0p=0l=长度(A)-1f=(1-x-sqrt(1-2*x-3*x^2))/2/xm=f.taylor(x,0,l)对于a中的a:p+=(a*m^d).泰勒(x,0,l)d+=1返回系数列表(p,x)
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A)  A005773号  A036908号 1,1,3,12,56,303, ...

莫茨金反转

############################################################名称:MOTZKININVTRANS#param:序列。#return:A的逆Motzkin变换###########################################################
定义motzkin_invtrans(A):d=0p=0l=长度(A)-1f=x/(1+x+x^2)m=f·泰勒(x,0,l)对于a中的a:p+=(a*m^d).taylor(x,0,l)d+=1返回系数列表(p,x)
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A117569号 A147657号 1,1,1,2,9,45,268, ..

加泰罗尼亚语

############################################################名称:CATALANTRANS#param:序列。#return:A的加泰罗尼亚变换###########################################################
定义catalan_trans(A):d=0p=0l=长度(A)-1f=(1-平方(1-4*x))/2m=f.taylor(x,0,l)对于a中的a:p+=(a*m^d).taylor(x,0,l)d+=1返回系数列表(p,x)
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A000108号 A000108号  1,1,3,12,57,312,...

加泰罗尼亚逆

############################################################名称:CATLANINVTRANS#param:序列。#return:A的逆加泰罗尼亚变换###########################################################
定义catalan_invtrans(A):d=0p=0l=长度(A)-1f=x*(1-x)m=f.taylor(x,0,l)对于a中的a:p+=(a*m^d).taylor(x,0,l)d+=1返回系数列表(p,x)
A类 1,1,1,1,1,1,1,... 1,2,3,4,5,6,7,... 1,1,2,6,24,120,...
T(A) A010892号 A099254号 A013999型

顺序操作

卷积

############################################################名称:CONVOLUTION#参数:A、B序列。#return:A和B的卷积###########################################################
定义卷积(A,B):m=最小值(长度(A),长度(B))C=[]对于范围(m)内的n:s=总和(A[k]*B[n-k]代表k in(0..n))C.附加返回C
A类  0,1,2,3,4,5,6,7,...  A002802号 A000035号
B类  1,1,2,6,24,120,... A000984号 1,2,3,4,5,6,7,...
P(A、B) A014144号  A038845号   A035048美元  

二项式卷积

############################################################名称:BINOMIALCONVOLUTION#参数:A,B序列。#return:A和B的卷积###########################################################
定义二项式卷积(A,B):m=最小值(长度(A),长度(B))C=[]对于范围(m)内的n:s=总和((0..n)中k的二项式(n,k)*A[k]*B[n-k])C.附加返回C

如果所有n的B[n]=1,则二项式卷积减少为二项式变换。

A类  0,1,2,3,4,5,6,...  1,1,1,1,1,1,1,... 1,2,3,4,5,6,...
B类  1,1,2,6,24,...  1,1,2,6,24,... 1,1,2,6,24。。。
P(A、B) A007526号  A000522号  A111063号  


Divconv分子

############################################################名称:DIVCONVNUMERATOR#参数:A,B序列,所有n的B[n]<>0。#return:和的分子(A[k]/B[n-k],k=0..n)###########################################################
定义divconv_numerator(A,B):m=最小值(长度(A),长度(B))C=[]对于范围(m)内的n:s=总和(A[k]/B[n-k]表示k in(0..n))C.append(s.numerator())返回C
A类  1,2,3,4,5,6,...  1,1,1,1,1,1,1,...  1,1,1,1,1,1,1,...
B类 1,2,3,4,5,6,。。。  1,2,3,4,5,6,7,...  1,1,2,6,24,...
P(A、B) A027612号 A001008号  A061354号

Divconv分母

############################################################名称:DIVCONVDENOMINATOR#参数:A,B序列,所有n的B[n]<>0。#return:和的分母(A[k]/B[n-k],k=0..n)###########################################################
定义divconv_denominator(A,B):m=最小值(长度(A),长度(B))C=[]对于范围(m)内的n:s=总和(A[k]/B[n-k]表示k in(0..n))C.附加(s.分母())返回C
A类  1,2,3,4,5,6,...  1,1,1,1,1,1,1,...  1,1,1,1,1,1,1,...
B类  1,2,3,4,5,6,...  1,1,2,6,24,...  1,1,2,6,24,...
P(A、B) A027611号 A002805号  A061355型

序列到三角形的变换

到目前为止,所有转换都有这样的形式
T型trans(A),其中A是列表A=【A】0,一个1, ..., ]或
trans(A,B),其中B是列表B=[B0,b个1, ..., b条]。

然而,这种格式具有相当大的限制性。我们的下一个示例使用了更通用的设置:多项式序列pn个有度(pn个)=n其中系数取决于给定的序列f(我们将实现这一次作为函数)。

这给了更多的灵活性;特别是现在可以看到

  • 多项式本身,
  • 多项式的系数(将给出三角形)和
  • 在某个特定参数。

我们的第一个示例是A多项式(这只是一个特殊名称)。对应三个关于转换的看法我们实现了三个功能。

A多项式

############################################################name:APOLYNOMIALS(专名)#参数:f函数,n整数,x变量。###########################################################
定义A_多项式(f,n,x):s=加法(加法((-1)^v*二项式(k,v)*f(k+1)*(x+v+1)^n对于v in(0..k))对于k in(0..n))返回展开定义三角形(f,n)(_T):var('x')返回系数列表(A_多项式(f,n,x),x)定义A_list(f,len,A):return[A_polyminal(f,n,x=A)for n in(0..len)]
(f)1
(f)1X(X)+(f)1负极(f)2
(f)1X(X)2+(2(f)1−2(f)2)X(X)+2个(f)+(f)1−3(f)2
(f)1X(X)+(3(f)1−3(f)2)X(X)2+(6)(f)+3(f)1−9(f)2)X(X)−6(f)4+12(f)+(f)1−7(f)2
(f)1X(X)4+(4(f)1−4(f)2)X(X)+(12(f)+6个(f)1−18(f)2)X(X)2+(−24(f)4+48(f)+4(f)1−28(f)2)X(X)−60(f)4+50(f)+(f)1−15(f)2+24(f)5

一些示例:

  • 让f生成常数序列1,1,1,1,。。。
    定义uno(n):返回1。
    • 多项式(uno,n,x)是1,x,x^2,x^3,。。。
    • 三角形(uno,n)是(作为矩阵)单位矩阵。
    • A_list(uno,len,n)是序列n^k,k=0,1,2,。。
  • 让f生成序列1、2、3、4,。。。
    定义id(n):返回n。
    • 三角形(id,n)为(_T)A130595型
    • A_list(id,len,-n)是序列(-n-1)^k,k=0,1,2,。。
  • 让f生成谐波数,
    def H(n):返回加法(1/i代表(1..n)中的i)。
    • A_多项式(H,n,x)瞧!这些是伯努利多项式!
    • A_list(H,len,-1)的分子是A164558号用不同的符号。
  • 设f=skp,定义为
    def-skp(m):如果m%4==0:返回0否则:返回1/((-1)^(m//4)*2^((m-1)//2))
    • A_多项式(skp,n,x)是瑞士刀多项式。
    • 三角形(skp,n)为(_T)A153641号(要填入零)。
    • A_list(skp,len,0)是Euler数字。
    • A_list(skp,len,1)是正切数A155585型,A000182号.

下一个转变也应该出现在每一个情报系统研究者的箭袋中。我目前不知道此转换的名称或引用。我称之为在这里c_trans公司但一个更好的名字当然是可取的。拜托如果你知道推荐人,请告诉我。

C变换

############################################################name:CTRANSFORMATION(另一个特殊名称)#param:序列#return:三角形A的变换###########################################################
定义c_trans(A):L=长度(A)+1C=[1(0..L)中的i)];C[0]=0对于k in(1..L):对于范围(k-1,0,-1)内的n:C[n]=C[n-1]+C[n+1]*A[n-1]在(1..k)中打印n的[C[n]
A类 1,1,1,1,1,... 1,2,3,4,5,6,... A000035号 A059841号
T(A) A033184号   A001497号   A103631号    A065941号  

Deleham三角洲

############################################################姓名:DELEHAMDELTA#参数:r,s序列#返回:rΔs,三角形###########################################################
定义deleham_delta(R,S):L=最小值(长度(R),长度(S))+1A=[SR(R[k]+x*S[k]),对于范围(L-1)中的kC=[SR(1),对于范围(L+1)中的i)];C[0]=SR(0)对于k in(1..L):对于范围(k-1,0,-1)内的n:C[n]=C[n-1]+C[n+1]*A[n-1]p=展开(C[1])打印[(0..k-1)中n的系数(x,n)]
A类  1,1,1,1,1,1,1,... A110654号 A000035号
B类 1,1,1,1,1,1,1,。。。 A000007号 A059841号
AΔB A085880型 A084938号 A090181号

Deleham定义了一个将两个序列映射到三角形的运算。他首先将两个给定序列R和S编码为多项式a,
A[k]=R[k]+x*S[k],
然后应用c_trans公司至A(并由此得到一个多项式三角形)。最后他破译了多项式在第一列中提取它们的系数。

(适用于希望阅读上述代码但Sage语言不流利的读者说法:表达SR(R[k]+x*S[k])意味着:“解释R[k]+x*S[k]作为多项式(在符号环中)”。例如,在Maple中,这样的强制是不必要的,只需写R[k]+x*S[k]即可。)

有两句话要说。首先,我们的描述比较简单而不是Deleham最初的描述A084938号.A型二维数组不是实现递归所必需的;也包括这里的多项式不在两个变量x和y中,而只在x中,简化了更进一步。

第二c_trans公司应用于R[k]+x*S[k]生成多项式三角形,因此将其转换回整数就是提取所有这些的系数多项式。Deleham只选择三角形中的一列,可能是在许多情况下的正确选择;然而,这样做并不是必须的,而且其他选择可能也很有趣。

与枫叶:

DELEHAMDELTA:=进程(r,s)局部L,k,A,p,r,C,n,W;R:=空;C[0]:=0;L:=最小值(nops(r),nops(s))+1;对于从0到L-2的k doA[k]:=x*r[k+1]+s[k+1];日期:对于k从1到L doC[k]:=1;对于从k-1到-1 do的nC[n]:=C[n-1]+C[n+1]*A[n-1]od;p:=展开(C[1]);W:=序列(系数(p,x,k-n),n=1..k);R:=R,W;l打印(W);日期:R端:

其他转换

指数变换

############################################################名称:EXP-TRANSFORM#param:s序列#返回:s的变换###########################################################

指数变换定义为(Maple)

exptrans:=进程局部g;g:=proc(n)选项记忆;局部k;`如果`(n=0,1,加上(二项式(n-1,k-1)*s(k)*g(n-k),k=1..n))end-end:

通过此转换可以生成的一些序列包括:A000110号、贝尔号码(设置分区的数量{1..n});A000587号,Rényi数(带有偶数个部件,减去具有奇数个部件的分区数);A000248号n个节点、高度最多为1的森林数量;A007837号,具有不同块大小的n-集的分区数;A005651号,多项式系数的总和。

A000110号:=n->exptrans(m->1)(n):A000587号:=n->exptrans(m->-1)(n):A000248美元:=n->exptrans(m->m)(n):A007837号:=n->导出(m->A182927号(m) )(n):A005651号:=n->导出(m->A182926号(m) )(n):
A类 1,1,1,1,1,... -1,-1,-1,-1,... 0,1,2,3,4,... A182927号 A182926号
T(A) A000110号   A000587号   A000248美元    A007837号    A005651号  

如果读者处于探索的情绪中,他也可能希望找到组合解释

新:=n->exptrans(m->A038041号(m) )(n):1, 1, 3, 9, 38, 168, 915, 5225, 34228, 236622, 1805297,...

迭代指数变换

############################################################名称:迭代EXP-TRANSFORM#param:s序列#返回:s的变换###########################################################

迭代指数变换是指数变换对s应用n次,然后在k处求值。

迭代表达式:=s->proc(n,k)(exptr@@n)(m->s(m))(k)结束:

可以使用此转换生成的序列是迭代贝尔数A144150型和迭代的Rényi数A210638型.

A144150型:=iterexp(m->1):序列(lprint(seq(A144150型(k,n),k=0..6)),n=0..6;A210638型:=iterexp(m->-1):序列(lprint(seq(A210638型(n,k),k=0..6)),n=0..6;A209631型:=iterexp(m->m):seq(lprint(seq(A209631型(n,k),k=0..6)),n=0..6;
A类 1,1,1,1,1,... -1,-1,-1,-1,... 0,1,2,3,4,...
T(A) A144150型   A210638型   A209631型  



我们将在这里考虑的汉克尔变换并不是首先由赫尔曼·汉克尔(汉克尔介绍了一个不同的转型)而是更确切地说“作者[John W.Layman]按顺序A055878号在线百科全书整数序列”文章. 这里我们介绍了整数序列的变换。

汉克尔

############################################################姓名:汉克尔#param:f序列生成器#n:变换长度#return:[f(0)..f(n-1)]的Hankel整数变换###########################################################
def hankel_even(f,n)(定义hankel_even(f,n)):R=[]对于范围(n)中的k:R.append(矩阵(k,k,λi,j:f(i+j)).det())返回R定义hankel_add(f,n):R=[]对于范围(n)中的k:R.append(矩阵(k,k,λi,j:f(i+j+1)).det())返回R定义汉克尔(f,n):R=[]对于范围(n)中的k:R.append(矩阵(k,k,λi,j:f(i+j)).det())R.append(矩阵(k,k,λi,j:f(i+j+1)).det())返回R

很明显汉克尔文手帕_添加只是的二分之一汉克. 例如

定义加泰罗尼亚语(n):返回二项式(2*n,n)/(n+1)打印hankel_even(catalan,9)打印hankel_even(阶乘,6)[1, 1, 1, 1, 1, 1, 1, 1, 1][1, 1, 1, 4, 144, 82944]打印hankel_add(catalan,9)打印hankel_add(阶乘,6)[1, 1, 1, 1, 1, 1, 1, 1, 1][1, 1, 2, 24, 3456, 9953280]印花汉克尔(加泰罗尼亚,9岁)打印汉克尔(阶乘,6)[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1][1, 1, 1, 1, 1, 2, 4, 24, 144, 3456, 82944, 9953280]

莱曼在他的论文和斯隆中所说的汉克尔变换汉克尔在他的枫叶图书馆里是我们的汉克尔文。我们不这样做的原因遵循莱曼/斯隆的以下事实:

  • Layman/Sloane-Hankel的转换是多对一的。
  • 此处定义的Hankel变换唯一地决定了原始数列规定所有行列式都不是零。

因此,我们的定义在研究序列中更有用。例如加泰罗尼亚数字序列是唯一的序列,它映射到1,1,1,1,。。。这是加泰罗尼亚数字的一个美丽而重要的特征。

Layman的定义跳得太短;它只捕获了硬币。这里使用的定义(据我所知)是马丁·艾格纳首先介绍的他将Hankel整数变换推广到更大的框架中。

再举三个保罗·巴里的例子A120580型可能会说明什么已经说过了。

定义A006134号(n) :返回和((0..n)中k的二项式(2*k,k))定义A098479号(n) :返回和(二项式(n-k,k)*二项式定义A025565号(n) :返回和(二项式(n-1,k)*(0..(n//2))中k的二项式打印hankel_even(A006134号,9)打印hankel_even(A098479号,9)打印hankel_even(A025565号,9)[1, 1, 0, -4, -8, 0, 32, 64, 0][1, 1, 0, -4, -8, 0, 32, 64, 0][1, 1, 0, -4, -8, 0, 32, 64, 0]打印hankel_odd(A006134号,9)打印hankel_add(A098479号,9)打印hankel_add(A025565号,9)[1, 3, 6, -8, -72, -144, 64, 960, 1920][1, 1, 2, -8, -24,  -48, 64, 320,  640][1, 2, 4,  8,  16,   32, 64, 128,  256]印花手帕(A006134号,9)印花手帕(A098479号,9)印花手帕(A025565号,9)[1,1,1,3,0,6,-4,-8,-8,-72,0,-144,32,64,64,960,0,1920][1,1,1,1,0,2,-4,-8,-8,-24,0, -48,32,64,64,320,0, 640][1,1,1,2,0,4,-4, 8,-8, 16,0,  32,32,64,64,128,0, 256]

下个月我们将调查数论变换.