Was ist eine prägnante, leicht zu lesende Art zu testen, um zu sehen, ob zwei von drei Zahlen gleich sind?

7

Grundsätzlich, wenn ich eine Funktion wie folgt habe:

%Vor%

Gibt es einen einfachen und präzisen Weg, um herauszufinden, ob n Zahlen gleich sind? Was ist mit nur drei Gegenständen? Gibt es eine mathematische Operation, die ich nutzen kann? Ich weiß, dass ich einen iterativen Lösungsansatz machen kann, ich bin nur neugierig, ob es andere Möglichkeiten gibt, diese zu lösen, die klarer sind.

Hier ist eine Zusammenfassung der Bedingungen, weil ich Schwierigkeiten habe, das Problem auszudrücken:

%Vor%     
Elijah 21.03.2011, 17:45
quelle

6 Antworten

12

Eine Methode wäre, die Parameter zu einer Menge hinzuzufügen und dann zu sehen, ob die Länge dieser Menge gleich 2 ist (oder weniger als 3, wenn Sie true zurückgeben, wenn sie alle gleich sind). Zum Beispiel in Python:

%Vor%     
Andrew Clark 21.03.2011, 17:51
quelle
5

Ich glaube nicht, dass Sie effizienter oder prägnanter werden als der manuelle Weg:

%Vor%

Oder sonst:

%Vor%

Wenn a, b und c nur boolesche Werte (0 oder 1) sind, können Sie Folgendes tun:

%Vor%     
Eclipse 21.03.2011 17:58
quelle
3

In C oder C ++ können Sie tun:

%Vor%

oder um die Anzahl der Übereinstimmungen zurückzugeben:

%Vor%

Für den Fall, dass Sie nur angeben möchten, ob 2 gleich sind:

%Vor%

Wir verwenden gerne bitweise oder | anstatt logisch || für die Leistung. Dies alles basiert auf dem Standard, der angibt, dass Vergleiche 1 für TRUE und 0 für FALSE zurückgeben.

    
phkahler 21.03.2011 18:05
quelle
2

Wenn die Eingabevariablen boolesch sind, können Sie eine Wahrheitstabelle erstellen und die resultierende Funktion zum Beispiel mit einem KV-Diagramm minimieren

%Vor%

Die Minimierung ergibt, dass das Ergebnis von

zurückgegeben wird %Vor%

KV-Diagramm ist einfach zu handhaben für bis zu 4 Variablen (mit Erfahrung vielleicht 6 Variablen) mehr Booleans brauchen anspruchsvollere Techniken.

    
ma cılay 21.03.2011 18:11
quelle
2

In C könnten Sie

verwenden %Vor%     
Sven Marnach 21.03.2011 19:33
quelle
0
%Vor%     
Weiser 21.03.2011 19:57
quelle

Tags und Links