简化长布尔表达式
Simplify a long boolean expression
我是这个平台的新手,我在 CS-class 中遇到布尔表达式问题。我必须简化这个布尔表达式,但不知道该怎么做。
双 x ;
双 y ;
布尔值 b = ( (y < -x) ^ (5 * x >= y) ) && ( (x < -y) != (x >= y * 0.2) )
假设纯数学,y < -x
等价于 x < -y
,5 * x >= y
等价于 x >= y * 0.2
,whateverBoolean1 ^ whateverBoolean2
等价于 whateverBoolean1 != whateverBoolean2
.因此,您可以省略 &&
运算符的任何一侧。
我忽略了浮点运算的怪胎(0.2不是精确的数字,所以一些原始和简化表达式不等价的反例可能会通过一些努力找到。)
我是这个平台的新手,我在 CS-class 中遇到布尔表达式问题。我必须简化这个布尔表达式,但不知道该怎么做。
双 x ; 双 y ;
布尔值 b = ( (y < -x) ^ (5 * x >= y) ) && ( (x < -y) != (x >= y * 0.2) )
假设纯数学,y < -x
等价于 x < -y
,5 * x >= y
等价于 x >= y * 0.2
,whateverBoolean1 ^ whateverBoolean2
等价于 whateverBoolean1 != whateverBoolean2
.因此,您可以省略 &&
运算符的任何一侧。
我忽略了浮点运算的怪胎(0.2不是精确的数字,所以一些原始和简化表达式不等价的反例可能会通过一些努力找到。)