Haskell中的模块化方程

Igu*_*ana 7 haskell equation-solving modular-arithmetic

我想在一个变量中解决Haskell中的线性和二次模块方程.我现在这样做的方法是逐个x = [1..]输入等式并找到余数(expr `rem` p == 0如果等式是模p(不一定是素数),expr那么变量就是x).我相信这是一个非常低效的过程.那么还有更好的方法吗?

Eri*_*ikR 5

求解模二次方程包括:

对于Haskell,arithmoi包具有这些算法的实现.特别是,请参阅chineseRemainder,sqrtModPsqrtModPP函数.

在这里你可以找到一些有用的例子:

http://www.mersennewiki.org/index.php/Modular_Square_Root

  • 对'arithmoi`包非常小心.它的主筛代码中至少有一个错误导致间歇性分段错误.代码非常*毛茸茸且记录不完整,尽管软件包有一个新的维护者,但没有任何迹象表明它会很快改善. (2认同)