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