Haskell中的模块化方程

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

> Tonelli-Shanks algorithm
> Chinese Remainder Theorem
>和二次公式(即完成正方形)

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

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

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

相关文章
相关标签/搜索