我有这个方程组
a⊕0⊕c⊕0⊕0⊕0= 2
0⊕b⊕0⊕d⊕0⊕0= 3
a⊕0⊕0⊕0⊕x⊕0= 4
0⊕b⊕0⊕0⊕0⊕y= 8
0⊕0⊕c⊕0⊕x⊕0= 6
0⊕0⊕0⊕d⊕0⊕y= 11
⊕是异或
当我使用高斯解决这个方程时,遵循 Denley Bihari的 方法here
它给了我这个:
1 0 1 0 0 0 = 2
0 1 0 1 0 0 = 3
0 0 1 0 1 0 = 6
0 0 0 1 0 1 = 11
0 0 0 0 0 0 = 0
0 0 0 0 0 0 = 0
这是DNE,虽然答案是a = 5
B = 10
C = 7
d = 9
X = 1个
Y = 2
(我先得到常数值,然后我形成了方程式)。
那么这样做的正确方法是什么?我在网上搜索得很高!
非常感谢您的帮助
答案 0 :(得分:2)
你的方程是相关的(正如通过高斯消元导致所有0
行所示),因此事实上你的约束比变量少,因此有多个解。
在这种特殊情况下,您有两组方程式,一组涉及a, c, x
,另一组涉及b, d, y
。删除0
,我们获取
a ⊕ c = 2
a ⊕ x = 4
c ⊕ x = 6
b ⊕ d = 3
b ⊕ y = 8
d ⊕ y = 11
显然这三个中的最后一个是通过对两组中的前两个进行异或来获得的(或者,三个中的任何一个是通过对组中的另外两个进行异或来获得的。)
因此,您可以选择x
和y
作为参数,为其指定任意值并查找
a = 4 ⊕ x
c = 6 ⊕ x
b = 8 ⊕ y
d = 11 ⊕ y
你可以使用高斯消元法,或者产生一个简化形式给出一个独特的解决方案(如果独立方程的数量等于所涉及的变量的数量),一个简化的形式,全0行,允许参数化所有的空间解决方案,或具有(至少)一行的简化形式,所有系数为0但非零右手侧,在这种情况下没有解决方案。
所有其他解决方法都会产生相同的结果。
答案 1 :(得分:0)
你在为什么解决?看起来你有六个常数和六个常数方程。
通常,解决仅涉及xor的方程非常简单。