我刚刚查完集合运算顺序和逻辑运算顺序,
按照我的理解,顺便来回答一下!(我的提问)
集合的交并补运算符没有优先级顺序,运算顺序完全由括号决定。
逻辑与或非才有优先级顺序:逻辑非>逻辑与>逻辑或。
以下内容来自维基百科:
交换律
A交B=B交A
A并B=B并A
结合律
(A交B)交 C = A 交(B交C)
(A并B)并 C = A 并(B并C)
分配律
(A交B)并 C =(A交C)并(B交C)
(A并B)交 C =(A并C)交(B并C)
德·摩根定律
非(P 且 Q)=(非 P)或(非 Q)
非(P 或 Q)=(非 P)且(非 Q)
如果你遇到了"A交B并C"这样没有括号确定运算顺序的表达式,那就没有办法计算,
因为你这样算:" A 交(B 并 C)"
和你这样算:"(A 交 B)并 C "
结果是不一样的!
但如果是逻辑表达式,没有括号也可以确定运算顺序,
比如:"AB+C",
你只能这样计算"(AB)+ C ",而不能这样计算" A(B+C) "!
对应的集合运算应该是"(A 交 B)并 C ",而不能是" A 交(B 并 C)"!
另外,我看网上有的人说,应该从左往右计算,
也就是把"A交B并C交D并E"按照这样"((((A交B)并C)交D)并E)"计算
我没有找到有说集合运算有左结合性的资料,
所以我也不知道他们是听谁说的,
不过我感觉应该是错的。
禁止转载