请帮我理解图片中提到的符号?我试图理解“Bachmann-Landau符号族”下面的“Big O符号”,在“形式定义”列中,有很多带有方程式的符号,我以前没有遇到过这些符号。有人熟悉吗?https://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann–Landau_notations
请帮我理解图片中提到的符号?我试图理解“Bachmann-Landau符号族”下面的“Big O符号”,在“形式定义”列中,有很多带有方程式的符号,我以前没有遇到过这些符号。有人熟悉吗?https://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann–Landau_notations
f(n) = n * 100
g(n) = n^2
n=5
,它不会告诉您哪个复杂度更大,因为5*100=500
和5^2=25
。如果您放置的数字足够大,例如n=100
,则f(n)=100*100=10000
且g(n)=100^2=100*100=10000
。因此,我们得到相同的值。如果您尝试放置比这更大的任何内容,g(n)将变得越来越大。
它还必须遵循方程式f(n) <= k*g(n)
。例如,如果我放置k=0.1
,那么
100*n <= 0.1*n^2 *10
1000n <= n^2 /n
1000 < n
k=0.1
,你需要 n_0 = 1000
来满足方程,但这已经足够了。所有大于 n > 1000
的值都会更大,因此函数 g(n)
总是更复杂。 (好吧,真正的证明并不那么简单,但你可以看到这个模式)。关键是,无论 k
是什么,即使它等于 k=0.000000001
,总会有一个 n_0
的破解点,从那时起,所有的 g(n)
都会比 f(n)
更大。O(n)
和 O(n^2)
之间的区别。f(n) = n
g(n) = 10*n
g(n) > f(n)
,对吧?但在复杂性理论中,我们需要知道它是否增长更快,如果是这样,是否比简单地乘以常数增长更快。k=0.01
,那么可以看到无论n
有多大,都找不到满足f(n) <= k*g(n)
的n_0
,因此f(n) != o(g(n))
从复杂度理论的角度来看,可以将符号表示为更小/更大,因此f(n) = o(g(n)) -> f(n) < g(n)
f(n) = O(g(n)) -> f(n) <= g(n)
f(n) = Big-Theta(g(n)) -> f(n) === g(n)
//... etc, remember these euqations are not algebraic, just for complexity
(A(reverse),E(reverse))
是什么意思 :) - libikv*k>0
和 E(reverse)*n0
) - user3764118∀
和∃
。这是基本数学知识,可以在互联网上或任何超过学校水平的数学课程(比如大学)中学习。 - Zabuzard
∀
和∃
是大多数数学中使用的典型数学符号。∀
被称为全称量词,通常读作“对于所有”或“对于每个”,而∃
则是存在量词,通常读作“存在(至少一个)...使得”。 - SergGr∀ k > 0 ∃ n0 ∀ n > n0 |f(n)| < k*g(n)
这一行应该被理解为“对于每个正的k
,都存在一个值n0
,使得对于每个n
满足n > n0
,都有|f(n)| < k*g(n)
”。或者更通俗地说,对于每个正的倍数k
,你可以走得足够远(n0
),在那之后的点(n > n0
)上,|f(n)|
的值小于k*g(n)
。甚至更不正式地说,在无穷大时,f(n)
“基本上比”g(n)
小。 - SergGr