如上定义的语句“f(x)是O(g(x))”通常写为 f(x)= O(g(x))。有人认为这是滥用符号,因为 使用等号可能会产生误导,因为它暗示了一个 这个陈述没有的对称性。正如de Bruijn所说,O(x)= O(x ^ 2)为真,但O(x ^ 2)= O(x)不是
我理解正式定义但不是de Bruin所说的。我试图理解O(x)= O(x ^ 2)甚至O(x)是O(x ^ 2)的真正含义。
直观地,我会把它读作“具有复杂度x的函数类与具有复杂度x ^ 2的函数类相同”。但这没有意义。
wikipedia talk页面也无济于事。
答案 0 :(得分:6)
直观地,我会把它读作“具有复杂度x的函数类与具有复杂度x ^ 2的函数类相同”。但这没有意义。
是的,这就是为什么人们不喜欢带有等号的符号。
它应该读作“具有复杂度x的函数类包含在具有复杂性x ^ 2的函数类中”或“具有复杂性的线性上界的函数也是具有二次上部复杂性界限的函数” (当然,二次约束不是很紧。)
答案 1 :(得分:0)
在数学中,'='通常表示“平等”,应该是equivalence relation。这意味着它应该是反身的,对称的和传递的。
正如de Bruijn所说,O(x)= O(x ^ 2)为真但O(x ^ 2)= O(x)不是
表示关系不对称。