问题标签 [pari-gp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pari-gp - 复制粘贴到 PARI/GP
我的笔记本上有一段文字,我想把它复制到 PARI/GP。文字有点长,但我不确定我是否仅仅因为这个而没有得到它。我试过 CTRL C + CTRL V 和复制粘贴,但都没有奏效。有什么建议么?提前致谢。
string - 有没有更好的方法在 PARI/gp 中获取子字符串?
问题:有没有更好的方法(内置函数?)在 PARI/gp 中获取子字符串?
graph - 如何使用 pari-gp 绘制椭圆曲线 mod p 的图形?
假设 E:y^2=x^3+Ax+B mod p,我有两个问题?
如何用 pari-gp 绘制 E 的图形。
我怎样才能得到 E 上所有点的列表。谢谢大家。
vector - 向量中最常见的术语 - PARI/GP
我觉得我在这里真的很愚蠢,因为我认为 Pari 中已经有一个简单的命令,或者写起来应该很简单,但我根本无法弄清楚这一点。
给定一个向量,比如 V,它将有重复的条目,如何确定最常见的条目是什么?
例如,假设我们有:
V = [ 0, 1, 2, 2, 3, 4, 6, 8, 8, 8 ]
我想要返回值 8 的东西。
我知道类似的事情vecsearch
,但我看不出如何调整它以使其工作?
与此密切相关,我希望此结果返回最常见的非零条目,并且我查看的一些向量将 0 作为最常见的条目。例如:V = [ 0, 0, 0, 0, 3, 3, 5 ]
。所以无论我在这里执行什么,我都想返回 3。我尝试写一些可以删除所有零项的东西,但又一次挣扎。
我特别尝试过的是:
但vecextract
似乎不喜欢这种设置。
matlab - 在 Pari-GP 中嵌套特定的递归
每个人!
我最初在 Stackexchange 上发布了一个类似的问题;它被移到这里,可以在链接中找到:Declaring a functional recursive sequence in Matlab 我正在尝试在这篇文章中做类似的事情,但我认为 Matlab 不是这样做的地方。我将不得不使用 Pari-GP;在这一点上,没有两种方法。
这本质上是我为自己制作的一个编码项目;这是为了有效地数值评估 Tetration 函数的某种构造。我已经能够在 MatLab 中很好地对其进行编码;问题是,因为我们正在处理像 e^e^e^e^e^e^e 这样的大数;MatLab 中的这些短路。Pari-GP 对通常会导致溢出的数字有更好的理解;我现在完全意识到为什么 Tetration 社区一直在使用它。
尽管如此,Matlab 代码适用于小数字和对它们很好的数字(很好的假想参数)。为了这个问题的完整性;matlab 代码的 github 存储库是https://github.com/JmsNxn92/Recursive_Tetration 虽然这不是我们想要的代码;我进一步优化了它;这不是最新的。但就这个问题而言,这就足够了。
现在,我不是最好的程序员。我可能自 09 年以来就没有编程过;但我仍然知道我的方式。但更多的是我有编码的框架;而更少的实际语法。想象一下自己熟悉法国哲学和法语写作;但是在订购咖啡馆时会磕磕绊绊。
对此,我将停止拐弯抹角,直奔问题。
如果我beta_function
在 Pari-GP 中定义一个函数并将其写为,
一切都很好,并且有效。现在beta_function
MatLab 中的代码并没有太大的不同。没有更复杂的添加。正如我最初要求使用 MatLab 一样,我再次要求使用 Pari-GP。这是编写函数的方法tau_K(z,l,n,k)
;这是完全可行的。我只是错过了一些明显的东西。
MatLab 中的代码tau_K(z,l,n,k)
附在下面。一位友好的人在这里解释了如何在 MatLab 中执行此操作;对于那些感兴趣的人,我并没有真正事先正确定义递归。这是我正在使用的当前 MatLab 代码,
问题很简单。如何在 Pari-GP 中定义这种递归?你如何在 Pari-GP 中编码?
当我尝试直接翻译这段代码时,一切似乎都在朝着返回值 0 崩溃。对上帝诚实;我知道这只是因为我在将输出调用到下一次迭代时出现了一些语法错误。我已经尝试了我能想到的一切。和教程,他们似乎没有帮助。我已经尝试过一切。在这一点上,我知道我在语法上遗漏了一些愚蠢的东西。
我只是希望这里有人能像我在幼儿园一样向我解释这一点。我听说尾递归在这里很重要。如果是这样,我将如何编码?只需添加一个跟踪所有内容的变量?
再次感谢您对问题的深入了解。
recursion - 有没有更有效的嵌套对数方法?
这是此处发布的两个问题的延续,
长话短说,我构建了一系列函数来求解四分函数方程。我已经证明这些东西是全纯的。现在是制作图表的时候了,或者至少是一些可以通过的代码来评估这些东西。我的精度已经达到了大约 13 位有效数字,但是如果我尝试获得更多,我会遇到一个特定的错误。该错误实际上只不过是溢出错误。但这是一个特殊的溢出错误;Pari-GP 似乎不喜欢嵌套对数。
我的特殊数学函数是通过取一些大的东西来近似的(想想 e^e^e^e^e^e^e 的顺序)来产生一些小的东西(e^(-n) 的顺序)。数学本质上需要大值的样本来产生这些小值。奇怪的是,随着我们越来越接近数值近似(大约 13 个有效数字左右),我们也越来越接近溢出,因为我们需要如此大的值来获得这 13 个有效数字。我是一个糟糕透顶的程序员;我想知道是否有一些我没有看到的工作。
这是近似我已经证明是全纯的函数的代码;但可悲的是,我的代码太可怕了。在这里,附上了一些预期的输出,您可以在其中看到大约 10 - 13 位有效数字满足功能方程。
现在,您会注意到我必须将 k 值更改为不同的值。当参数 z,l 离实轴更远时,我们可以使 k 非常大(我们必须获得良好的精度),但它最终还是会溢出;通常,一旦我们达到了大约 13-15 个有效数字,功能就会开始爆炸。您会注意到,设置 k =60 意味着我们采用 60 个对数。这听起来已经是个坏主意了,哈哈。但从数学上讲,值 Abl_L(z,l,infinity,infinity) 正是我想要的函数。我知道这一定很奇怪;嵌套的无限 for 循环听起来像是胡说八道,哈哈。
我想知道是否有人可以想出一种方法来避免这些溢出错误并获得更高的准确性。在一个完美的世界中,这个对象绝对会收敛,并且这段代码完美无缺(尽管可能有点慢);但我们可能需要无限期地增加堆栈大小。从理论上讲,这完全没问题;但实际上,这是不切实际的。无论如何,作为一名程序员,可以解决这个问题吗?
在这一点上我唯一的其他选择是尝试创建一个蛮力算法来发现这个函数的泰勒级数;但我在这方面运气不佳。这个过程非常独特,尝试使用泰勒级数解决这个问题让我们回到了原点。除非,这里有人可以想出一种从这个表达式中恢复泰勒级数的奇特方法。
老实说,我愿意接受所有建议,任何评论。我束手无策;我想知道这是否只是其中唯一解决方案是无限期增加堆栈大小的事情之一(这绝对有效)。这不仅仅是因为我在处理大量数字。这是我需要越来越大的值来计算一个小的值。出于这个原因,我想知道是否有一些我没有看到的快速工作。Pari-GP 吐出的错误总是与 tau_K 一起出现,所以我想知道这是否已被次优编码;并且我应该在它迭代时添加一些东西以减少堆栈大小。或者,如果可能的话。再说一次,我是一个糟糕的程序员。我需要有人像我在幼儿园一样向我解释这一点。
任何帮助、评论、澄清问题都非常受欢迎。在这一点上,我就像一只追尾巴的狗;想知道为什么他不能取 1000 个对数,哈哈。
问候。
编辑:
我想我要补充一点,我可以产生任意精度,但我们必须z
在左半平面保持距离的争论。如果变量n,k = -real(z)
那么我们可以通过制作n
尽可能大的变量来产生任意精度。这里有一些输出来解释这一点,我用过的地方\p 200
,我们在这个级别上几乎是平等的(减去一些数字)。
问题是,我们不能只是exp
一遍又一遍地申请前进并期望保持相同的精度。问题在于exp
,当您在复平面中迭代它时,它会显示出如此多的混乱行为,这注定会奏效。
graphing - 在 Pari-GP 中绘制函数的资源
我很好奇是否有人知道在 Pari-GP 中绘制函数的任何资源。具体来说,我对绘制复杂的值函数感兴趣。我了解如何绘制实值函数;但我对制作色调图很感兴趣。
为此,我的意思是,我正在寻找类似的东西,
plot_complex(sin(z),(-5,5),(-5,5))
这将sin(z)
在盒子-5 < real(z) < 5
和-5 < imag(z) < 5
. ploth
以这样一种方式,它的行为几乎与 Pari-gp 中的行为相当。我尝试使用 sage,但在这一点上,我完全被他们的界面气馁。在 Pari-GP 中使用我的函数并使用他们的绘图软件调用它似乎是不必要的困难。
此图来自圣人网站;但是圣人对于我需要的目的来说是不必要的困难。让我们说,我不是python接口的粉丝;我不需要它提供的大量资源。我只是在寻找一些 Pari-gp 的绘图程序/代码转储/函数/资源,它们比内置调用更复杂的数字友好。
我想知道是否有人知道在哪里看;可以指出我正确的方向,谢谢。我并不是真的要求高分辨率或漂亮的 gui。我只是想知道是否有一些资源可以在 Pari 中绘制复杂的函数。老实说,如果有 2d ploth 函数,那就绰绰有余了。如果我遗漏了一些明显的东西,我深表歉意。
问候。
math - 在 PARI GP 中传递用户定义函数之外的值
我想编写一个函数 SWAP 来交换 PARI 中的 2 个整数 a 和 b。此函数不返回任何值,但我希望函数外部的变量存储新值。我不知道如何解决这个问题。这是我的功能:
然后我写:
十个 u 仍然是 2 而 v 仍然是 3。我怎样才能重写这个函数来使 u=3 和 v=2?谢谢你。
stack-overflow - 使用 gp2c 时堆栈溢出,但在同一程序中直接使用 gp 时不会出现堆栈溢出 (PARI/GP)
所以我想用 gp 从一个特定的 projecteuler 问题中计算一个总和。这是不可理解的代码:
这段代码需要两到三分钟才能在我相当普通的机器上输出答案,但它不会超出默认值parisize = 8000000
(大约 8 MB 内存)。
现在,我在某处读到将脚本gp2c
编译为代码可以提高性能的文章。gp
c
所以我只是做了一个program.gp
文件:
并运行它gp2c-run program.gp
。
在出现的交互式提示中,我刚刚执行了calculate()
. 然而,令我惊讶的是,我得到了一个堆栈溢出,它要求我增加堆栈大小,即使我更改parisizemax
为几乎 2 GB。
为什么同一个程序在编译时c
需要这么多额外的内存?作为参考,使用 n = 1000 而不是 10000 的同一程序仅在将堆栈大小增加到256000000
(250 MB) 后才显示答案,而仅在使用gp
. 有些东西没有加起来。
pari - RSA 和收敛
我正在尝试在 PARI 中执行一个函数来计算a^(c*q_t) mod n;
哪里c
和n
是这么大的数字,并且q_t
是n/c
. 这是出于 RSA 的目的。我只是想改进这个功能,让计算机自己做,我的意思是它会自己找到q_t
并发现a
自己。因此,它需要另外两个参数。我不知道该怎么做。这是我的功能: