是否有一种算法可以解决模运算中的非线性同余?我读到这样的问题被归类为NP-complete。
在我的具体案例中,同意的形式为:
x^3 + ax + b congruent to 0 (mod 2^64)
其中a和b是已知常数,我需要为x解决它。
答案 0 :(得分:4)
答案 1 :(得分:3)
是的,一般问题是NP-Complete。
这是因为布尔代数是算术模2!因此,任何3SAT公式都可以在算术模2中重写为等效的算术表达式。检查3SAT公式是否可满足等同于检查相应的arithemetic表达式是否为1。
例如,AND b在arithemetic中变为a.b. 不是1-a等。
但在你的情况下,谈论NP-Compleness毫无意义,因为它是一个特定的问题。
另外,lhf是对的。可以使用Hensel的Lifting引理。基本要点是要解决P(x) = 0 mod 2^(e+1)
我们可以解决P(x) = 0 mod 2^e
并将这些解决方案“解除”mod 2^(e+1)
以下是解释如何使用该文件的pdf:http://www.cs.xu.edu/math/math302/04f/PolyCongruences.pdf