请告诉我,下面的两个表达式是否等价。 有三个条件 A, B, C 和两个 状态 a, b。
status = ( A && B && C ) ? a : b;
status = (A || B || C) ? b : a;
1
johnlui 2017-06-05 10:30:10 +08:00
送分题,当然不等价。。。。。
|
2
littleylv 2017-06-05 10:31:13 +08:00
明显不一样。
|
3
johnlui 2017-06-05 10:31:21 +08:00
三者相同的时候就不等价了
|
4
forgcode 2017-06-05 10:31:46 +08:00
不等!
|
5
littleylv 2017-06-05 10:32:25 +08:00
另外这跟 PHP 没关系,任何一种语言都适用。
楼主你学过计算机的基础吗 |
6
qq8567952 2017-06-05 10:34:48 +08:00
不等价,A,B,C 都为 true 时,第一个 status 为 a,第二个为 b
|
7
feiyuanqiu 2017-06-05 10:40:12 +08:00
status1 = ( A && B && C ) ? a : b;
status2 = (A || B || C) ? b : a; 当 A、B、C 都为假时,status1 = b, status2 = a 当 A、B、C 都为真时,status1 = a, status2 = b |
8
kkhaike 2017-06-05 10:40:45 +08:00
应该是 (!A || !B || !C) ? b : a;
|
9
littleylv 2017-06-05 10:42:05 +08:00 1
解释太多了你们。
简单的就是 A && B == !A || !B |
10
banli OP 出题失误, 写错了 。 第二个表达是 (!A || !B || !C) ? b : a; 对不住啦。
|
11
mrgeneral 2017-06-05 10:46:46 +08:00
高中数学吧,取反的时候符号和本身都得反啊。
如果是按照#10 修正的话,那就没区别了。 |
12
bukip 2017-06-05 10:47:44 +08:00
数字逻辑再读一遍
|
13
littleylv 2017-06-05 10:49:01 +08:00
@banli #10 A && B == !A || !B 这种已经是书里教过的“定理”之类的定论了吧,为什么要怀疑有猫腻?
|
14
jiangzhuo 2017-06-05 10:49:17 +08:00
我们管这门课叫离散数学??
|
15
grayon 2017-06-05 10:49:44 +08:00
status
= ( A && B && C ) ? a : b; = !( A && B && C )? b : a; = ( !A || !B || !C ) ? b : a; |
16
banli OP 哦哦。 明白了。 效率就是快
|
17
littleylv 2017-06-05 10:53:05 +08:00
@jiangzhuo #14 好像是这个学的 https://book.douban.com/subject/1268628/
|
18
bravecarrot 2017-06-05 13:00:13 +08:00 via iPhone
肯定不会等价
建议 lz 遇到这种不清楚逻辑的画个真值表 |
21
vingz 2017-06-05 13:18:55 +08:00
不等价,特例,A\B\C 都为 true 的时候
|
23
Sapp 2017-06-05 14:36:12 +08:00
压根没仔细看都不可能等价....
|
24
mingyun 2017-06-10 10:19:03 +08:00
15 楼正解
|