Math 平等和等价之间有什么区别?

Math 平等和等价之间有什么区别?,math,computer-science,symbols,Math,Computer Science,Symbols,我在《数学与计算机科学阅读》中读过一些使用等价符号的例子≡,(基本上是一个带三行的“=”),对我来说,把它当作相等来读总是有意义的。这两个概念之间有什么区别?在我所看到的区分相等和等价的语言中,相等通常意味着类型和值相同,而等价意味着只是值相同。例如: int i = 3; double d = 3.0; i和d将具有等价关系,因为它们表示相同的值,但不相等,因为它们具有不同的类型。其他语言可能有不同的等价思想(例如两个变量是否代表同一个对象)。: 在数学中,等价物 关系是一种二元关系 集合的

我在《数学与计算机科学阅读》中读过一些使用等价符号的例子≡,(基本上是一个带三行的“=”),对我来说,把它当作相等来读总是有意义的。这两个概念之间有什么区别?

在我所看到的区分相等和等价的语言中,相等通常意味着类型值相同,而等价意味着只是值相同。例如:

int i = 3;
double d = 3.0;
i和d将具有等价关系,因为它们表示相同的值,但不相等,因为它们具有不同的类型。其他语言可能有不同的等价思想(例如两个变量是否代表同一个对象)。

:

在数学中,等价物 关系是一种二元关系 集合的两个元素 他们在一起被视为是“等价”的 有办法。设a、b和c是任意的 某些集合X的元素,然后是“a~b” 或“a”≡ b“表示a是 相当于b

等价关系“~”是自反的、对称的和传递的

换句话说,=只是等价关系的一个实例

编辑:这个看似简单的自反、对称和传递标准并不总是微不足道的。参见布洛赫的有效Java第二版第页。35例如

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;
    }
... 

}

上述equals实现打破了对称性,因为
CaseInsensitiveString
知道
String
类,但
String
类不知道
CaseInsensitiveString

您可以有两个具有相同真值(等效)的语句或两个相同的语句(相等)。此外,“三条等号”也可以表示“定义为”。

将其置于编程领域之外

  • (31)平等——(与另一个人有相同的数量、价值或尺度;“在平等的条件下”;“法律面前人人平等”)

  • 相当于,相当于——(本质上相当于某物;“它像金子一样好”;“一个相当于命令的愿望”;“他的陈述相当于认罪”

至少在我的字典里,“Equivalance”的意思是对原文的足够好的替代,但不一定完全相同,同样,“Equivalence”也表达完全相同的意思

null == 0   # true , null is equivelant to 0 ( in php ) 
null === 0  # false, null is not equal to 0 ( in php )  

(有些人使用≈ 许多语言区分对象的相等性和这些对象的值的相等性

例如,Ruby有3种不同的方法来测试相等性。第一种方法是equal?,比较两个变量是否指向同一实例。这在C风格的语言中相当于检查两个指针是否指向同一地址。第二种方法是==,测试值相等性。因此,在这种情况下,3==3.0是真的。第三种方法是,eql?,比较值和类类型


Lisp也有不同的相等概念,这取决于您要测试的内容。

区别首先在于引入这两个概念的级别≡' 是形式逻辑的符号,其中,给定两个命题a和b,a≡ b表示(a=>b和b=>a)

“=”是集合上等价关系的典型示例,并且至少假定了集合理论。当定义特定集合时,通常会为其提供适当的相等概念,该概念以等价关系的形式出现,并使用符号“=”。例如,当定义有理数的集合Q时,当且仅当ad=bc(其中ad和bc是整数,整数相等的概念已在别处定义)时,定义a/b=c/d(其中a/b和c/d是有理的)


有时你会发现非正式的符号f(x)≡ g(x),其中f和g是函数:这意味着f和g具有相同的域,并且f(x)=g(x)对于该域中的每个x(这也是一个等价关系)。最后,有时你会发现≡ (或)作为一个通用符号来表示一个等价关系。

等式实际上是一种特殊的等价关系。

0.9999999999999999... = 1

这表明等式只是“字符串数”(更正式地定义为Z->{0,…,9}中的函数)上的等价关系从这个例子中我们可以看出,等价类甚至不是单例。

我认为你的问题是关于数学符号而不是编程。你提到的三等号可以用HTML编写
≡
,也可以用LaTeX编写
\equiv

a≡ b最常见的意思是“a被定义为b”或“让a等于b”

So 2+2=4,但φ≡ (1+sqrt(5))/2

这是一个方便的等效表:

Mathematicians      Computer scientists
--------------      -------------------
      =                      ==
      ≡                      =

(关于等价关系的其他答案也是正确的,但我认为这些答案并不常见。还有一个≡ b(mod m)发音为“a与b,mod m全等”,用程序员的说法可以表示为mod(a,m)=mod(b,m)。换句话说,a和b在经过m的修改后是相等的。)

上面的答案是正确的/部分正确的,但它们并不能解释到底有什么区别。在理论计算机科学中(可能在数学的其他分支中)它与逻辑方程中自由变量的量化有关(即我们同时使用两个符号时)

对我来说,理解差异的最佳方法是:

  • 根据定义
    A.≡ B
    表示
    对于A和B中自由变量的所有可能值,A=B

    A≡ B[A=B]

  • 举例说明
    x=2x
    iff(事实上,iff与≡)
    x=0

    x≡ 2x
    iff(因为并非所有可能的x值都是x=2x)
    假的

  • 我希望有帮助<