简化三路比较 a < b < c || b < c < a || c < a < b;
Simplify three way comparison 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
是否有一些有用的数学或布尔代数技巧可以使这不那么麻烦?
a
、b
、c
都是数字。在我的特定用例中,它们保证是不同的。
(补充上下文,在回答过程中出现this question)
您有 3 个不同的布尔值比较,您希望保留其中的 2 个。 (严格来说,2 个或更多,但在您的情况下,您永远不可能拥有全部 3 个)。所以你可以写
a < b && b < c || b < c && c < a || c < a && a < b
作为
(a < b) + (b < c) + (c < a) == 2
有没有更短的方法来计算这个布尔表达式?
a < b < c || b < c < a || c < a < b
在 JavaScript 中将是:
a < b && b < c || b < c && c < a || c < a && a < b
是否有一些有用的数学或布尔代数技巧可以使这不那么麻烦?
a
、b
、c
都是数字。在我的特定用例中,它们保证是不同的。
(补充上下文,在回答过程中出现this question)
您有 3 个不同的布尔值比较,您希望保留其中的 2 个。 (严格来说,2 个或更多,但在您的情况下,您永远不可能拥有全部 3 个)。所以你可以写
a < b && b < c || b < c && c < a || c < a && a < b
作为
(a < b) + (b < c) + (c < a) == 2