我想在一个变量中解决Haskell中的线性和二次模块方程。我现在这样做的方法是将x = [1..]
逐个放入等式中并找到余数(expr `rem` p == 0
,如果等式为模p
(不一定是素数),其中expr
具有变量x
)。我相信这是一个非常低效的过程。那么还有更好的方法吗?
答案 0 :(得分:5)
求解模二次方程包括:
对于Haskell,arithmoi包具有这些算法的实现。请特别注意chineseRemainder,sqrtModP和sqrtModPP函数。
在这里你可以找到一些有用的例子: