如何表达&&和||只需使用 - >和否定

时间:2017-10-30 19:55:22

标签: boolean computer-science

如何表达" AND"和"或"只需使用" Implies"和"否定"?

我为AND尝试了10+组合,但没有结果:

我试过:(X - > Y) - > (X - > Y),!(X - > Y) - > (X - > Y),!(X - > Y) - > !(X - > Y) (X - > Y) - > !(X - > Y)等。

2 个答案:

答案 0 :(得分:0)

(a - > b)与((!a)|| b)

相同

由此得出((!a) - > b)与((!(!a))|| b)相同

so((!a) - > b)给你(a || b)

对于&&我建议你查找一些名为De Morgan的法律:https://en.wikipedia.org/wiki/De_Morgan%27s_laws

答案 1 :(得分:0)

我们可以欺骗并使用真值表来弄明白。 ->!&&||的真值表如下所示:

X    Y    X->Y    ~X    ~Y    X && Y    X || Y
T    T    T       F     F     T         T
T    F    F       F     T     F         T
F    T    T       T     F     F         T
F    F    T       T     T     F         F

我们发现&&有一个T||有一个F||实际上非常接近->;它只是FX F移到X T的位置。当你看到类似的东西时,你的第一个想法应该是否定变量来交换真值表的相应部分;通过否定X中的X -> Y,我们应该交换真值表的各个部分并获得与X && Y相同的值。事实上,

X    Y    ~X    ~X -> Y    X || Y
T    T    F     T          T
T    F    F     T          T
F    T    T     T          T
F    F    F     F          F

那是一个失败。对于&&,我们看到它类似,只是我们有一个T而不是F ->。当你看到这个,否定了整个事情:

X    Y    X && Y    !(X && Y)
T    T    T         F
T    F    F         T
F    T    F         T
F    F    F         T

现在我们看到我们需要否定Y来交换->的真值表的第一行和第二行:

X    Y    !Y    X -> !Y    !(X -> !Y)
T    T    F     F          T
T    F    T     T          F
F    T    F     T          F
F    F    T     T          F

根据需要出现。这一切都需要看到你必须与之合作 - 你在哪里开始 - 并了解你需要去哪里,然后从一端或两端工作以找出联系。在这些情况下,考虑“T s的数量”很方便,但根据具体情况,您可能会发现更有用的东西。