解决逻辑和数学方程

时间:2011-09-20 08:01:46

标签: math matlab

我想解决以下等式:

x^2-bitxor(2,x)=0

有可能吗?

2 个答案:

答案 0 :(得分:12)

bitxor(2,x)要么添加2,要么从x减去2,所以你必须解决这两个问题:

x^2 - x + 2 = 0

x^2 - x - 2 = 0

然后测试以查看任何解决方案是否在原始表达式中起作用。

在第一种情况下,根是复杂的,在第二种情况下,根是-1和+2。

代替原来的等式:

x = -1 => (-1^2) - bitxor(2, -1) = 1 - (-3) = 4

x = 2 => (2^2) - bitxor(2, 2) = 4 - 0 = 4

显然没有真正的整数解决方案。

答案 1 :(得分:2)

模块化算法中有解决方案,这正是大多数计算机用于无符号整数的算法。例如,考虑模256运算的情况。在C和C ++中,这是unsigned char的算术。这里我们有两个解决方案,91和166.(见http://www.wolframalpha.com/input/?i=x%5E2+mod+256+%3D+x+-+2%2C+x+%3E+0%2C+x%3C+256)。

事实上,对于任何模2 ^ N系统,将有两个求和为1的解(模2 ^ N)。