什么是简洁易读的测试方式,看看三个中的两个数字是否相等?

Eli*_*jah 7 algorithm

基本上,如果我有这样的功能:

function foo (int a, int b, int c) {
    return true if two out of the three variables are true otherwise false
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单而简洁的方法来确定是否有n个数字在一组中是相等的?那只有三个项目呢?有没有我可以利用的数学运算?我知道我可以做一个迭代的方法来解决,我只是好奇是否有其他解决方法更清楚.

这是条件的细分,因为我很难表达问题:

if no numbers are equal, return false
if two numbers out of three are equal, return true
if all three numbers are equal, return false
Run Code Online (Sandbox Code Playgroud)

And*_*ark 12

一种方法是将参数添加到集合中,然后查看该集合的长度是否等于2(如果它们全部相等则返回true则小于3).例如,在Python中:

def foo(a, b, c):
    return len(set((a, b, c))) == 2
Run Code Online (Sandbox Code Playgroud)


Ecl*_*pse 5

我不认为你会比手动方式更有效率或更简洁:

if a == b 
   return b != c 
else
   return b == c || a == c
Run Code Online (Sandbox Code Playgroud)

或者这个:

return ((a == b) || (a==c) || (b==c)) && ((a!=b) || (a!=c) || (b!=c))
Run Code Online (Sandbox Code Playgroud)

如果a,b和c只是布尔值(0或1),那么你可以这样做:

return a+b+c == 1 || a+b+c == 2 // Either two are false, or two are true
Run Code Online (Sandbox Code Playgroud)