Wolfram mathematica Mathematica中二次同余方程的求解

Wolfram mathematica Mathematica中二次同余方程的求解,wolfram-mathematica,modulo,Wolfram Mathematica,Modulo,为了解决 x^2 == 123456 mod 1299709 在Mathematica中,我使用了: Reduce[x^2 == 123456 + 1299709 k, {x, k}, Integers] 这就得到了正确的答案 问题:Reduce是解决二次同余方程的最佳方法(性能、优雅还是其他?显然,您正在寻求选择 (*Out[]=x==427784 | | x==871925*) 引用文件: 模数->n 是一个选项,可以在某些代数函数中给出,以指定整数应按模n处理 模的方程可

为了解决

   x^2 == 123456 mod 1299709 
在Mathematica中,我使用了:

  Reduce[x^2 == 123456 + 1299709 k, {x, k}, Integers]
这就得到了正确的答案


问题:Reduce是解决二次同余方程的最佳方法(性能、优雅还是其他?

显然,您正在寻求选择

(*Out[]=x==427784 | | x==871925*) 引用文件:

模数->n
是一个选项,可以在某些代数函数中给出,以指定整数应按模n处理

  • 模的方程可以在解和相关函数中给出

  • 模在因子、多项式GCD和多项式CM以及线性代数函数(如逆)中显示为选项, 线性溶剂和Det

  • 算术通常在整个环上进行ℤ 整数的计算;设置选项模数指定应改为使用算术 在有限环中完成ℤn

  • 设置模数->0指定全环ℤ 整数的数目

  • 有些函数要求将模设为素数或素数的幂。ℤ当n是素数时,n是有限域


丹尼尔·利希特布拉(Daniel Lichtblau)

这就是我一直在寻找的优雅@尼洛:-)我不确定这是你想要的答案,因此我的措辞是。@Mr.Wizard-考虑到你的编辑,你显然低估了对你答案的反应。-美丽在沉默中说话。@Nilo,你是说我不应该做那个编辑吗?对不起,伙计们,我今天比平时更迟钝。现在你们为什么要发那个帖子来破坏这个时刻呢?;-)+1@Mr.Wizard“对不起,警长。”(当然,麦克斯韦还有其他精彩的评论。比如,我想起了经典的“如果他用PowerModList做好事而不是坏事就好了”。好吧,这只是一个小小的解释。所以起诉我。)丹尼尔,现在我知道你是86号特工的粉丝,或者至少是一些引语,我一定会不时删去一些典故D
Reduce[x^2 == 123456, x, Modulus -> 1299709]
(*Out[]= x == 427784 || x == 871925 *)
In[1]:= PowerModList[123456, 1/2, 1299709]
Out[1]= {427784, 871925}