Решите логическое и математическое уравнение - PullRequest
0 голосов
/ 20 сентября 2011

Я хотел бы решить следующее уравнение:

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

Возможно ли это?

Ответы [ 2 ]

12 голосов
/ 20 сентября 2011

bitxor(2,x) либо добавим 2, либо вычтем 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

Так что, очевидно, нет реального целочисленного решения.

2 голосов
/ 20 сентября 2011

Существуют решения в модульной арифметике, которая является именно той арифметикой, которую большинство компьютеров используют для целых чисел без знака. Например, рассмотрим случай арифметики по модулю 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...