简化长布尔表达式

Simplify a long boolean expression

我是这个平台的新手,我在 CS-class 中遇到布尔表达式问题。我必须简化这个布尔表达式,但不知道该怎么做。

双 x ; 双 y ;

布尔值 b = ( (y < -x) ^ (5 * x >= y) ) && ( (x < -y) != (x >= y * 0.2) )

假设纯数学,y < -x 等价于 x < -y5 * x >= y 等价于 x >= y * 0.2whateverBoolean1 ^ whateverBoolean2 等价于 whateverBoolean1 != whateverBoolean2 .因此,您可以省略 && 运算符的任何一侧。

我忽略了浮点运算的怪胎(0.2不是精确的数字,所以一些原始和简化表达式不等价的反例可能会通过一些努力找到。)