布尔意义

Ton*_*ion 31 boolean-logic

我需要一些关于这个布尔含义的帮助.

有人可以用简单的术语解释这是如何工作的:

A暗示B = B + A'(如果A然后B).也相当于A >= B

Pav*_*aev 95

布尔含义A implies B仅表示"如果A为真,则B必须为真".这意味着(双关语意)如果A不是真的,那么B可以是任何东西.从而:

False implies False -> True
False implies True  -> True
True  implies False -> False
True  implies True  -> True
Run Code Online (Sandbox Code Playgroud)

这也可以理解为(not A) or B- 即"A是假,或B必须为真".

  • 定义在答案的第一句中给出,并且是布尔逻辑中蕴涵的标准定义.您可能会发现它与您的常识相反,但这是因为您使用了一个非常狭窄且严格定义的运算符的名称并将其投影到其使用范围之外,并将其与更广泛的语言定义混合在一起"暗示".对于新引入正式布尔逻辑的人来说,这是一个常见的错误,并且它也会发生在其他运算符中(尽管由于不幸的名称,这是最常见的含义). (4认同)
  • 如果你把它改写成具体的陈述,那就更容易理解了.例如,考虑声明"X是狗_Implies_,X是哺乳动物".这无疑是真的,不是吗?现在让我们看看真相表在这里的样子.如果X确实是狗,左边部分是真的,右边部分也是如此:True表示True - > True.如果X是cat,则第一部分为false,第二部分为true:False表示True - > True.这真正说的是,非狗是哺乳动物并不能使所有狗都是哺乳动物的说法无效. (4认同)

inf*_*ing 18

以下是我的想法:

if(A)
  return B;
else
  return True;
Run Code Online (Sandbox Code Playgroud)

如果A为真,那么b是相关的并且应该被检查,否则,忽略B并返回true.

  • 很棒的解释!作为单线"回归A?B:是的;` (5认同)

Ada*_*unn 16

我想我看到Serge来自哪里,我会试着解释其中的差异.这对评论来说太长了,所以我会将其作为答案发布.

从质疑暗示是否适用的角度来看,塞尔似乎正在接近这一点.这有点像科学家试图确定两个事件之间的关系.考虑以下故事:

一位科学家在四天内访问了四个不同的国家.在每个国家,她想确定下雨是否意味着人们会使用遮阳伞.她生成以下真值表:

Did it rain?  Did people      Does rain => umbrellas?  Comment
              use umbrellas?  
No            No              ??                       It didn't rain, so I didn't get to observe
No            Yes             ??                       People were shielding themselves from the hot sun; I don't know what they would do in the rain
Yes           No              No                       Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here.
Yes           Yes             ??                       Perhaps these people use umbrellas no matter what weather it is

在上面,科学家不知道雨和雨伞之间的关系,她正试图确定它是什么.只有在其中一个国家的某一天,她才能明确表示这意味着不正确的关系.

同样地,似乎Serge试图测试A => B,并且只能在一种情况下确定它.

但是,当我们评估布尔逻辑时,我们提前知道关系,并想测试关系是否被遵守.另一个故事:

一位母亲告诉她的儿子,"如果你弄脏了,洗个澡"(脏=>洗澡).在母亲下班回家的四个不同日子里,她检查是否遵守了规则.她生成以下真值表:

Get dirty?   Take a bath?   Follow rule?   Comment
No           No             Yes            Son didn't get dirty, so didn't need to take a bath. Give him a cookie.
No           Yes            Yes            Son didn't need to take a bath, but wanted to anyway. Extra clean! Give him a cookie.
Yes          No             No             Son didn't follow the rule. No cookie and no TV tonight.
Yes          Yes            Yes            He took a bath to clean up after getting dirty. Give him a cookie.

母亲提前制定了规则.她知道污垢和浴室之间的关系是什么,她想确保遵守规则.

当我们使用布尔逻辑时,我们就像母亲一样:我们提前知道运算符,并且我们希望使用该形式的语句.也许我们想要将语句转换为不同的形式(就像原始问题一样,他或她想知道两个语句是否相同).在计算机编程中,我们经常希望将一组变量插入到语句中,并查看整个语句的计算结果是true还是false.

这不是一个知道暗示是否适用的问题 - 它不会写在那里,如果它不应该.真值表不是关于确定规则是否适用,而是关于确定是否遵守规则.


Dan*_*sen 10

我喜欢用这个例子:如果下雨,那就是阴天.

Raining => Cloudy
Run Code Online (Sandbox Code Playgroud)

与许多初学者可能认为的相反,这绝不表明下雨会导致浑浊,或者浑浊导致下雨.(编辑:这只是意味着,在目前,它是不是都下雨,不混浊看到我在实质蕴涵最近的一篇博客中,这里有我的发展,除其他事项外,一个理通常的"定义"的实质蕴涵.读者需要熟悉基本的证明方法,例如直接证明和矛盾证明.)

~[Raining & ~Cloudy]
Run Code Online (Sandbox Code Playgroud)