我正在使用c++中的二次筛算法。高斯消除之后,我需要求解一组模块化方程,例如:

(1) b + c = 0 mod 2
(2) a + c = 0 mod 2

在这里,符号=表示“与...一致”。我正在处理矩阵,如下所示:https://math.stackexchange.com/questions/289348/matrix-processing-in-the-quadratic-sieve?rq=1。如果有人对如何实现将解决这些方程式的功能有任何想法,我将不胜感激。

最佳答案

您可以使用矩阵符号重写此系统:

   M   . X  =  S

|0 1 1|.|a| = |0|
|1 0 1| |b|   |0|
        |c|

然后,您可以像往常一样使用高斯消除法解决它。微小的区别是您只能使用01值,并且减去行与添加行相同(在Z / 2Z中,-a = a)

10-04 22:23
查看更多