Haskell 中的模方程
Modular equations in Haskell
我想用一个变量求解 Haskell 中的线性和二次模方程。我现在这样做的方法是将 x = [1..]
一个一个地放入等式并找到余数(expr `rem` p == 0
,如果等式是模 p
(不一定是素数),其中expr
有变量 x
)。我认为这是一个非常低效的过程。那么有没有更好的方法呢?
求解模二次方程涉及组合:
- Tonelli-Shanks algorithm
- Chinese Remainder Theorem
- 和二次公式(即完成平方)
对于 Haskell arithmoi package has implementations of these algorithms. In particular, see the chineseRemainder, sqrtModP and sqrtModPP 函数。
在这里你可以找到一些有效的例子:
我想用一个变量求解 Haskell 中的线性和二次模方程。我现在这样做的方法是将 x = [1..]
一个一个地放入等式并找到余数(expr `rem` p == 0
,如果等式是模 p
(不一定是素数),其中expr
有变量 x
)。我认为这是一个非常低效的过程。那么有没有更好的方法呢?
求解模二次方程涉及组合:
- Tonelli-Shanks algorithm
- Chinese Remainder Theorem
- 和二次公式(即完成平方)
对于 Haskell arithmoi package has implementations of these algorithms. In particular, see the chineseRemainder, sqrtModP and sqrtModPP 函数。
在这里你可以找到一些有效的例子: