首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >布尔否定

布尔否定
EN

Stack Overflow用户
提问于 2015-02-03 00:56:05
回答 5查看 3.4K关注 0票数 3

我的一个试题是:

代码语言:javascript
复制
! ( ! ( a != b)  &&  ( b > 7 ) )

选择:

代码语言:javascript
复制
a) (a != b) || (b < 7)
b) (a != b) || (b <= 7)
c) (a == b) || (b <= 7)
d) (a != b) && (b <= 7)
e) (a == b) && (b > 7)

一开始,我以为是D。这是不正确的,我知道原因。我不明白逻辑否定操作符是如何反转的&而且大于/小于。我想我已经把范围缩小到前两个了。是否有任何实例>将更改为<=?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-03 01:05:19

是否有任何实例>将更改为<=?

答:每次你否定它。

考虑一下x > 1。对此的否定显然是x <= 1。如果简单地将其否定为x < 1,那么这两种情况都不包括x == 1大小写。

尽管如此,给定的布尔! ( ! ( a != b) && ( b > 7 ) )可以分解如下:

  1. 给予: ! ( !(a != b) && (b > 7))
  2. 否定a != b! ((a == b) && (b > 7))
  3. 分发!!(a == b) || !(b > 7)
  4. 否定a==b(a != b) || !(b > 7)
  5. 否定b>7(a != b) || (b <= 7)

因此,答案是B。

票数 7
EN

Stack Overflow用户

发布于 2015-02-03 01:04:15

答案应该是B。这是因为(a = b)旁边的否定是先求值的,然后再将外部否定分配给整个命题。

使用DeMorgan的法律,&&将切换到\。类似地,!=变成==,>变成<=。

代码语言:javascript
复制
!(!(a != b) && (b > 7))
!((a == b) && (b > 7))
 (a != b) || (b <= 7)
票数 2
EN

Stack Overflow用户

发布于 2015-02-03 01:05:39

代码语言:javascript
复制
! ( ! ( a != b)  &&  ( b > 7 ) )

= ! ( (a = b) && (b > 7))

= (a != b) || (b <= 7)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28289598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档