我正在使用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|
然后,您可以像往常一样使用高斯消除法解决它。微小的区别是您只能使用
0
和1
值,并且减去行与添加行相同(在Z / 2Z中,-a = a)