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

用户:Max Alekseyev/gpscripts

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

此页面以前位于home.gwu.edu/~maxal/gpscripts/

用于各种数学问题的PARI/GP脚本

PARI/GP公司是一款易于使用、快速且功能强大的(免费软件!)工具,用于进行数字理论计算。作为PARI/GP的一个相当频繁的用户,我开发了许多高级脚本,我想与世界分享。在我看来,其中最有用的是在这一页。

在许多情况下,这些脚本的开发受到了整数序列在线百科全书(OEIS),偶尔导致此类序列的延伸。在适当的时候,我用OEIS中计算序列的简单程序来说明脚本的用法。

我欢迎您对本页中的脚本提出意见和建议。特别是,请让我知道关于:

  • 错误和计算错误(必须报告!)。
  • 效率/性能问题,包括算法和实际问题。请告诉我,如果你知道一种加快速度的方法或比当前实现的更快的算法。
  • PARI/GP实现问题,包括编程风格、技巧等。

您使用这些脚本的经验。我很高兴知道您是否发现它们适用于您感兴趣的计算问题(例如,它们是否有助于扩展OEIS中的序列)。

注意:计划出版的一些剧本尚未以可出版的形式出版,在这种情况下,只发布了一份公告。请给我发电子邮件,如果你有迫切需要试用一个尚未出现的脚本。

附笔。请注意其他许多有用的PARI/GP贡献的脚本.

图中哈密顿路径和圈的个数

哈密尔顿语.gp提供两个功能nhp(甲)nhc(甲)在由邻接定义的图中分别计算哈密顿路径和圈数n个×n个矩阵A类.运行时间复杂度为2n个+O(对数n个)算术运算。

下面介绍了基本方法:

M.A.Alekseyev和G.P.Michon。《让行走有意义:从沉默的圆圈到哈密尔顿循环》。收录人:J.Beineke,J.Rosenhouse(编辑)各种娱乐学科的数学:娱乐数学研究第2卷,普林斯顿大学出版社,2017年,第157-168页。国际标准图书编号978-0-691-17192-0。doi:10.1515/9781400889136-012 doi:10.2307/j.ctt1s4773q.14 arXiv:1602.01396
使用示例
{A076220型(n) =nhp(矩阵(n,n,i,j,gcd(i,j)==1));}{A086595号(n) =nhc(矩阵(n,n,i,j,gcd(i,j)==1));}{A103839号(n) =nhp(矩阵(n,n,i,j,isprime(i+j));}{A107761号(n) =nhp(矩阵(n,n,i,j,gcd(2*i-1,2*j-1)==1));}{A107763号(n) =nhc(矩阵(n,n,i,j,gcd(2*i-1,2*j-1)==1));}{37886英镑(n) =nhp(矩阵(2*n,2*n、i、j、min(i,j)<=n&max(i,j)>n&abs(j-i)=n);}{137984英镑(n) =nhp(矩阵(3*n-1,3*n-1,i,j,abs(i-j)%3==1));}

乘法函数的反演

发票.gp提供以下功能:

  • invphi(n)计算方程式的所有解eulerphi(x)=n关于x个
  • invphiNum(n)相当于但比#invphi(n)
  • invphiMin(n)相当于但比vecmin(invphi(n))
  • invphiMax(n)相当于但比vecmax(invphi(n))
  • invsigma(n,k)计算方程式的所有解σ(x,k)=n关于x个.如果省略k,则假定k=1
  • invsigmaNum(n,k)相当于但比#invsigma(n,k)
  • invsigmaMin(n,k)相当于但比vecmin(invsigma(n,k))
  • invsigmaMax(n,k)相当于但比vecmax(invsigma(n,k))
  • 英菲陶(n,m)计算系统的所有解决方案{eulerphi(x)=n,numdiv(x)=m}关于x个
  • invphitauNum(n,m)相当于但比#invphitau(n,m)
  • invphitau最小值(n,m)相当于但比vecmin(invphitau(n,m))
  • inffitauMax(n,m)相当于但比vecmax(invphitau(n,m))

该实现基于我的论文中描述的动态编程方法:

M.A.Alekseyev,计算欧拉函数和其他乘法函数的逆、幂和和极值.整数序列杂志19(2016),第16.5.2条
使用示例
{A014197号(n) =invphiNum(n);}{A057635号(n) =invphiMax(n);}{A072074号(n) =invphiNum(10^n);}{A072075型(n) =invphiMin(10^n);}{A072076号(n) =invphiMax(10^n);}{A110078型(n) =发票编号(10^n);}{A110077号(n) =invsigmaMin(10^n);}{A110076美元(n) =invsigmaMax(10^n);}

二项式系数模整数

双峰gp提供以下功能:

  • 二模(n,k,m)计算二项式(n,k)模整数
  • 双质数(n,k,m)测试,如果二项式(n,k)是co-preme到integer
  • 二椭圆(n,k,p)估价二项式(n,k)关于素数第页

笔记。输入是内部因素双质数(n,k,m)这可能需要大量时间。的功能双椭圆(n,k,p)等于估值(二项式(n,k),p)但前者不计算二项式(n,k)显式且仅接受O(log(n个))算术运算。

实施基于卢卡斯定理以及本文中给出的概括:

安德鲁·格兰维尔,二项式系数的算术性质。输入:有机数学研讨会论文集西蒙·弗雷泽大学,1995年12月12日至14日。
使用示例
{A080469号()=对于复合(n=2,10^9,如果(二模(3*n,n,n)==Mod(3,n)^n,打印(n););}{A109760号()=复合物(n=2,10^9,如果(binomod(5*n,n,n)==Mod(5,n)^n,print(n););}{A109769号()=对于复合(n=2,10^9,如果(二模(7*n,n,n)==Mod(7,n)^n,打印(n););}

交换群的子群数

国家电网公司提供功能numsubgrp(p,a)对于一个素数第页和一个向量a=[a1,a2,…,ak]计算循环群C的直积的子群数(第页a1级)x C(x C)(第页a2类)x。。。x摄氏度(第页阿克). 它实现了本文给出的公式:

G.A.Miller,关于阿贝尔群的子群.数学年鉴,第二序列。6:1 (1904), 1-6.
使用示例
{A006116号(n) =numsubgrp(2,向量(n,i,1));}{A061034号(n) =我的(f=因子(n));prod(i=1,#f~,vecmax(应用(x->numsubgrp(f[i,1],x),分区(f[i,2]));}

GF的自对偶(正规)基的个数(q个)超过GF(q个)

国家统计局提供两个功能sd(m,q)sdn(m,q)分别计算有限域GF的不同自对偶和自对偶正规基的数目(q个)超过GF(q个). 数字q个是质数的幂sd(m,q)和中的素数sdn(m,q).

此脚本实现了本文中给出的公式:

D.Jungnikel、A.J.Menezes、S.A.Vanstone,关于GF的自对偶基的个数(q个)超过GF(q个).美国数学学会会刊109:1 (1990), 23-29.
使用示例
{A088437号(n) =sd(n,2);}{A135488号(n) =sdn(n,2);}

具有不同相邻元素的序列

nseqadj.gp提供了一个函数M(s),对于给定的k维向量s,该函数计算线性序列的数量,线性序列由k类中的元素和第i类中的s[i]元素组成,其中每对相邻元素都来自不同的类。此脚本实现了本文中给出的公式:

L.Q.Eifler、K.B.Reid Jr.、D.P.Roselle、,相邻元素不相等的序列.Aequationes数学6:2-3 (1971), 256-262.
使用示例
{10706年(n) =M([n,n,n]);}

有限域上一元不可约多元多项式的个数

数字邮箱.gp提供了一个函数numirrpol(q,n,u)计算中一元不可约多项式的数量n个GF上的变量(q个)最多度u个也就是说,它返回一个大小向量u个使用j个-th分量(j个=1,2,...,u) 等于此类次数多项式的数量j个.

该实现基于我推导的公式和张贴2006年俄罗斯论坛dxdy.ru。我还用它贡献了一大堆相关的序列(A115457号..A115505型)至OEIS。虽然我认为这个公式相当琐碎和/或广为人知,但令我惊讶的是,同样的公式最近发表在:

A.博丹,有限域上多变量不可约多项式的个数.阿默尔。数学。每月115(2008),653-660。

有趣的是,这份出版物甚至引用了这个序列A115457号我在2006年加入OEIS。

使用示例
{A115457号(n) =numirrpol(2,2,n);}

线性递归序列(例如斐波那契数)模素数的周期

permod.gp(许可.gp)和linrec.gp即将到来

多项式系数的经验递推公式

以色列密码.gp即将到来

平方根的续分数

强大的gp即将到来