Quelle est la différence entre égalité et équivalence?
j'ai lu quelques exemples en mathématiques et en informatique qui utilisent le symbole d'équivalence ≡
, (essentiellement un " = " avec trois lignes) et il est toujours logique pour moi de lire ceci comme si c'était l'égalité. Quelle est la différence entre ces deux concepts?
9 réponses
Wikipédia: relation d'Équivalence:
En mathématiques, une équivalence la relation est une relation binaire entre deux éléments d'un ensemble dont les groupes ensemble comme "équivalent" dans d'une certaine façon. Que a, b et c soient arbitraires les éléments d'un ensemble X. "a ~ b" ou "a Liste B" indique que a est équivalent à b.
Une relation d'équivalence "~" est réflexive, symétrique et transitive.
En d'autres termes, = est juste une instance de relation d'équivalence.
Modifier: ce critère apparemment simple d'être réflexif, symétrique et transitif n'est pas toujours trivial. Voir Bloch's Effective Java 2nd ed p. 35 par exemple,
public final class CaseInsensitiveString {
...
// broken
@Override public boolean equals(Object o) {
if (o instance of CaseInsensitiveString)
return s.equalsIgnoreCase(
((CaseInsensitiveString) o).s);
if (o instanceof String) // One-way interoperability!
return s.equalsIgnoreCase((String) o);
return false;
}
...
}
Le dessus est égal à la mise en œuvre brise la symétrie car CaseInsensitiveString
sait à propos de String
classe, mais String
la classe ne sait pas à propos de CaseInsensitiveString
.
je considère que votre question porte sur la notation mathématique plutôt que sur la programmation. Le triple signe égal auquel vous vous référez peut être écrit ≡
en HTML ou \equiv
en LaTeX.
a ≡ b plus couramment signifie "est défini à b" ou "a est égal à b".
So 2+2=4 mais φ փ (1+sqrt(5)) / 2.
Voici une table d'équivalence pratique:
Mathematicians Computer scientists
-------------- -------------------
= ==
≡ =
(les autres réponses sur les relations d'équivalence sont correctes aussi, mais je ne pense pas qu'elles soient aussi communes. Il y a aussi un "b" (mod m) qui se prononce "a correspond à b, mod m" et dans le langage programmeur serait exprimé comme mod(a,m) == mod(b,m). En d'autres termes, a et b sont égaux après mod'ING par M.)
beaucoup de langues font la distinction entre l'égalité des objets et l'égalité des valeurs de ces objets.
Ruby, par exemple, a 3 façons différentes pour tester l'égalité. La première, de l'égalité?, compare deux variables pour voir s'ils pointent vers la même instance. C'est l'équivalent dans une langue de style C de faire une vérification pour voir si 2 pointeurs se réfèrent à la même adresse. La seconde méthode,==, teste l'égalité des valeurs. Donc 3 == 3.0 serait vrai dans ce cas. Le troisième, eql?, comparer à la fois valeur et type de classe.
le Lisp a aussi différents concepts d'égalité selon ce que vous essayez de tester.
dans les langues que j'ai vu qui différencient entre égalité et équivalence, égalité signifie habituellement le type et valeur sont les mêmes, alors que l'équivalence signifie que les valeurs sont les mêmes. Par exemple:
int i = 3;
double d = 3.0;
i et d auraient une relation d'équivalence puisqu'ils représentent la même valeur mais pas l'égalité puisqu'ils ont des types différents. D'autres langues peuvent avoir des idées différentes de l'équivalence (comme si deux variables représentent le même objet).
prenez-le en dehors du domaine de la programmation.
(31) égale -- (ayant la même quantité, valeur ou mesure qu'une autre; "en des termes égaux"; "tous les hommes sont égaux devant la loi")
équivalent, équivalent -- (étant essentiellement égal à quelque chose; "il était aussi bon que l'or"; "un souhait qui était équivalent à un ordre"; "sa déclaration équivalait à un aveu de culpabilité"
Au moins, dans mon dictionnaire, "equivelance" signifie Son un bon-assez subsitute pour l'original, mais pas nécessairement identique, et de même "égalité" signifie totalement identique.
null == 0 # true , null is equivelant to 0 ( in php )
null === 0 # false, null is not equal to 0 ( in php )
(certaines personnes utilisent ≈ pour représenter des valeurs non identiques à la place )