2016-12-20 72 views
0

我想问一下:用ABC是任何二进制数字。在得到C = A & B&AND运营商)后,是否有可能从BC恢复A在给定B和C的情况下,有没有可能在“A&B = C”中恢复A?

我知道A的信息会因操作而丢失。我们能否形成像B <...> C = A这样的功能,以及它的复杂程度如何?

例如:

A = 0011 
B = 1010 
C = A & B = 0010

C的第二位为1,即AB第二位必须为1。但是,其他位缺少要恢复的信息。

预先感谢您。

+0

'C = A&B'然后'A'永远不会丢失 - 阅读关于什么分配意味着 – artm

+4

不,这是不可能的。 – kaylum

+0

你可以使用''xor'',但''和''和''或''操作具有破坏性。 – Shadow

回答

-1

您无法恢复A,但可以编写A = (X & ~B)^C。在这里,X可以是任何东西(并且它给出所有A的)。

当然这只适用于BC,例如C & ~B == 0

这是一个参数化的解决方案。 python示例

>>> A = 32776466 
>>> B = 89773888 
>>> C = A & B 
>>> C 
22020352 
>>> X = 1234567890 # arbitrary value 
>>> U = (X & ~B)^C 
>>> U 
1238761874 
>>> U & B  # same result as A & B 
22020352 
+0

我被一个不了解这个公式的美丽人士所压倒:( – Gribouillis

+0

或者谁不明白它与这个问题有什么关系,还有其他的可能性。 – EJP

+0

@EJP这是非常简单的,一般来说当'C&〜B == 0'时,'A&B == C'方程具有未知的'A'有几个解,所有这些解的集合可以描述为'(X&B )^ C'当'X'取所有可能的值时,这里假设'A,B,C'不是布尔类型,而是C类整数,并且对这些整数执行按位运算,但我认为这是暗示的 – Gribouillis

8

不,这是不可能的。您可以从真值表看到的和:

A B C (A & B) 

0 0 0 
0 1 0 
1 0 0 
1 1 1 

假设你知道B是0,C为0。可能是1或0,所以它不能的B推断和C.

+0

谢谢你的回复。我知道AND运算符的真值表表明缺少C的信息。您认为OR,XOR,NAND,...的组合能够从B和C恢复A吗? –

+4

不,它不能,因为在B和C为0的情况下,A可以是1或0,所以表格表示缺少* A *的信息。如果B是0,那么无论A的值是多少,C都将为0。再想一想:AND操作相当于值为0和1的乘法表。如果知道A * 0 = 0,那么怎么能你解决A?不可能。 – samgak

5

只能在B的相应位中恢复1 s的位A。对于B具有零位也无所谓什么A在相应的位置上,因为在C位将是零反正:标有x可以是0或1 A

A = 1xx0x011x0 
B = 1001011101 
    ---------- 
C = 1000001100 

位置;其中的信息将会丢失。

+0

谢谢你的回复。我知道AND运算符的真值表表明缺少C的信息。您认为OR,XOR,NAND,...的组合能够从B和C恢复A吗? –

+0

@ThuanN。信息消失了,没有隐藏起来。你不能“恢复”它,因为它不在'x'的位置。这就像试图从“A * 0”的结果中恢复“A”。 – dasblinkenlight

2

假设你只是说二进制逻辑而不是C变量,那么没有。

考虑: a=0111, b=1010因此c=0010

所以,你必须b=1010, c=0010所以现在你怎么能找到a

c最左边位是0,在b是1,所以我们知道a它必须是0 在c的第二位是0,在b为0,所以你不能告诉它是什么在a(1或0导致0在c

在这一点上,我们已经证明你不能这样做。

+0

谢谢你的回复。我知道AND运算符的真值表表明缺少C的信息。您认为OR,XOR,NAND,...的组合能够从B和C恢复A吗? –

+0

如果您有“A&B = C”和“A | B = D”,您能从B C和D?中找出A吗? – John3136

2

不,因为没有独特的解决方案。无论其他位如何,具有相同位设置为B的A的任何值都将满足方程。

+0

谢谢你的回复。我知道AND运算符的真值表表明缺少C的信息。您认为OR,XOR,NAND,...的组合能够从B和C恢复A吗? –

+0

不,我没有,因为我已经说过:没有独特的解决方案。你问的是*先验的*不可能的。你似乎没有理解这个基本点。 – EJP

1

这是关于方程式的问题。这是不可能的,因为自由度不是零。这与问a + b = 10 - 什么是a什么是b是一样的?

相关问题