【发布时间】:2019-04-23 23:11:08
【问题描述】:
我正在尝试求解方程组。每个方程的形式为:
V1 xor V2 xor ... xor Vx = Sx
Vx 和 Sx 是单个位变量。 Sx 是已知的,我需要找到所有 Vx 的值
例如:
V1 xor V2 xor V3 = 1
V1 xor V2 = 0
V2 xor V3 = 1
(解 V1 = 0,V2 = 0,V3 = 1)
实际上,我有数千个变量(每个都是一个位)和数千个方程(只有异或运算)。 我知道至少有一种解决方案,而我只需要一种解决方案。
我知道如何为小型系统手动解决这个问题,但我不知道如何构建一个算法来解决这个问题。
你能帮我解决这个问题吗?我是一名开发人员,我了解如何使用位、异或运算符和数据结构,但我在数学方面的经验较少,我不知道使用哪种方程系统求解方法。我对矩阵运算也不是很直观,所以如果我需要它,请尝试非常缓慢地解释它! :p
谢谢!
【问题讨论】:
-
您能否进一步详细说明您要解决的问题?您的示例是否意味着您正在尝试确定设置了哪个位(示例中为 V3) 通常,您在另一个方向求解方程组,您知道 3 个由 3 个 Vx 变量组成的方程,并且您正在寻找 Sx 解。给定 Sx 解决方案 - 您是否想要“发现”具有数千行和数千列的矩阵的方程组?
-
Thx,我正在尝试反转一种算法,更准确地说是一种不安全的随机生成器。使用 PRG 的输出,我想找到内部状态(输入)。这就是我得到一个 xor 方程系统的方法,我知道它的结果并且我想知道输入。这也是为什么我知道至少有一个有效的解决方案。所以现在我有了方程组,但我不知道如何解决它,因为我在矩阵计算方面很蹩脚:p
-
你可以把它扔给约束求解器:developers.google.com/optimization/cp/cp_solver
标签: algorithm equation-solving bitwise-xor