0


我有这个方程组

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


当我使用高斯求解这个方程时,⊕ 是 XOR ,按照Denley Bihari 的方法在这里 它给了我这个:

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
(我有常数值首先,我当然形成了方程式)

那么正确的方法是什么?我已经在网上搜索了高低!
非常感谢您的帮助

4

2 回答 2

3

您的方程是相关的(正如导致所有0行的高斯消元所示),因此实际上您的约束比变量少,因此有多个解决方案。

在这种特殊情况下,您有两组方程,一组涉及a, c, x,另一组涉及b, d, y。去掉0s,我们得到

a ⊕ c     =  2
a     ⊕ x =  4
    c ⊕ x =  6

b ⊕ d     =  3
b     ⊕ y =  8
    d ⊕ y = 11

显然,这三个中的最后一个是通过对两组中的前两个进行异或得到的(或者,三个中的任何一个都是通过对组中的另外两个进行异或得到的)。

因此,您可以选择xy作为参数,为它们分配任意值并找到

a =  4 ⊕ x
c =  6 ⊕ x
b =  8 ⊕ y
d = 11 ⊕ y

您可以使用高斯消元法,它要么产生一个简化形式,给出一个唯一的解决方案(如果独立方程的数量等于所涉及的变量的数量),一个具有全 0 行的简化形式,它允许参数化所有解决方案的空间,或者具有(至少)一行所有系数为 0 但右侧非零的简化形式,在这种情况下没有解。

所有其他求解方法都将产生相同的结果。

于 2012-07-19T16:07:07.707 回答
0

你在解决什么?看起来你有六个常数和六个常数方程。

一般来说,求解仅涉及 xor 的方程非常容易。

于 2012-07-19T14:06:41.630 回答