简化三向比较 a < b < c ||b < c < a ||c < a < b;



是否有更短的方法来计算这个布尔表达式?

a < b < c || b < c < a || c < a < b

在JavaScript中应该是:

a < b && b < c || b < c && c < a || c < a && a < b

是否有一些有用的数学或布尔代数技巧可以使它不那么麻烦?

abc均为数字。在我的特定用例中,它们可以保证不同。

(作为附加上下文,它是在回答这个问题的过程中产生的)

你有3个不同的布尔比较,你想要其中2个保持。(严格来说,2个或更多,但在你的情况下,你不可能同时拥有3个),所以你可以写

a < b && b < c || b < c && c < a || c < a && a < b

(a < b) + (b < c) + (c < a) == 2

最新更新