3 ms·
Is "bool(a1) + ... + bool(aN) == M" not just "a1 || a2...||an"?
by kevinwang 10y ago
Is "bool(a1) + ... + bool(aN) == M" not just "a1 || a2...||an"?
- ambrop7 10y agoObviously no, the first (for M==1) means exactly one is true, the latter at least one is true. But a1||...||aN is equivalent to bool(a1)+...+bool(aN)>0 (assuming no integer overflow :).
- kmill 10y agoNo, it's true when exactly M are true. "a1 || a2 || ... || an" is true when at least one is true. The latter is the same as "a1 + ... + an == 1 || a1 + ... + an == 2 || ... || a1 + ... + an == n".
- Ded7xSEoPKYNsDd 10y agoSo your + operator implicitly casts booleans to an integer type, with false=0 and true=1?
- simcop2387 10y agoIn c++, yes. Not every language will do that though.
- kmill 10y agoWhat you are saying is the only way I can imagine to interpret what I wrote, if one assumes I was intending to make any sense. By the way, in Python, bool is a subtype of int (i.e., instanceof(True,int) == True), and True + True == 2. C is the same, and in Javascript booleans are converted to integers for arithmetic operations.
- OJFord 10y ago> What you are saying is the only way I can imagine to interpret what I wrote One might imagine it (without experience, or not thinking, of any particular programming language) as being a logical OR on Booleans - which in EE at least is frequently written '+'.