Algorithm 表达式的渐近运行时复杂性

Algorithm 表达式的渐近运行时复杂性,algorithm,math,mathematical-optimization,polynomial-math,asymptotic-complexity,Algorithm,Math,Mathematical Optimization,Polynomial Math,Asymptotic Complexity,我可以说: 对数n+对数(n-1)+对数(n-2)+对数(n-k)=θ(k*logn) 上述内容的正式书写方式: 西格玛(i从0到k)对数(n-i)=θ(k*logn) 如果上述陈述是正确的,我如何证明 如果它是错误的,我如何将它(当然是方程的左侧)表示为n和k的渐近运行时函数 谢谢。表示: LHS=log(n)+log(n-1)+…+日志(n-k) RHS=k*log n 请注意: LHS=log(n*(n-1)*…*(n-k))=log(k+1阶多项式) 因此,这等于: (k+1)*日志(n

我可以说:

对数n+对数(n-1)+对数(n-2)+对数(n-k)=θ(k*logn)

上述内容的正式书写方式:

西格玛(i从0到k)对数(n-i)=θ(k*logn)

如果上述陈述是正确的,我如何证明

如果它是错误的,我如何将它(当然是方程的左侧)表示为n和k的渐近运行时函数

谢谢。

表示:

LHS=log(n)+log(n-1)+…+日志(n-k)

RHS=k*log n

请注意:

LHS=log(n*(n-1)*…*(n-k))=log(k+1阶多项式)

因此,这等于:

(k+1)*日志(n(1+限制为0的术语))

如果我们考虑除法:

(k+1)*log(n(1+限制为0的术语))/RHS

我们进入极限:

(k+1)/k=1+1/k

因此,如果
k
是一个常数,则这两个项的增长速度相同。所以
LHS=theta(RHS)

n
为常数时,以前在限制中
0
的术语不会消失,而是得到:

(k+1)*一些常量/k*(一些其他常量)

所以它是:

(1+1/k)*(另一个常量)
。因此也
LHS=theta(RHS)
表示:

LHS=log(n)+log(n-1)+…+日志(n-k)

RHS=k*log n

请注意:

LHS=log(n*(n-1)*…*(n-k))=log(k+1阶多项式)

因此,这等于:

(k+1)*日志(n(1+限制为0的术语))

如果我们考虑除法:

(k+1)*log(n(1+限制为0的术语))/RHS

我们进入极限:

(k+1)/k=1+1/k

因此,如果
k
是一个常数,则这两个项的增长速度相同。所以
LHS=theta(RHS)

n
为常数时,以前在限制中
0
的术语不会消失,而是得到:

(k+1)*一些常量/k*(一些其他常量)

所以它是:


(1+1/k)*(另一个常量)
。因此,同样
LHS=theta(RHS)
当证明
Θ
时,你要证明
O
Ω

上限很容易证明:
log(n(n-1)…(n-k))≤ log(n^k)=k log n=O(k log n)

对于下限,如果
k≥ n/2
, 然后在产品中有
n/2
项大于
n/2

log(n(n-1)…(n-k))≥ (n/2)对数(n/2)=Ω(n对数n)≥ Ω(k对数n)

如果
k≤ n/2
,所有术语均大于
n/2


log(n(n-1)…(n-k))≥ log((n/2)^k)=k log(n/2)=Ω(k log n)

当证明
时,您要证明
O
Ω

上限很容易证明:
log(n(n-1)…(n-k))≤ log(n^k)=k log n=O(k log n)

对于下限,如果
k≥ n/2
, 然后在产品中有
n/2
项大于
n/2

log(n(n-1)…(n-k))≥ (n/2)对数(n/2)=Ω(n对数n)≥ Ω(k对数n)

如果
k≤ n/2
,所有术语均大于
n/2



log(n(n-1)…(n-k))≥ log((n/2)^k)=k log(n/2)=Ω(k log n)

你以前是如何证明θ界的?@DennisMeng-有一点,但我特别需要这个。我说的是“How have”不是“have”。@DennisMeng哦,作为“θ界求解者”,我没有很好的经验。在我现在学习的课程中,没有强调θ的界限,尽管我们需要一点,只是想知道。我见过的通常方法是证明大O和大Omega边界,但如果你还只是刚刚弄湿你的脚,那么我可以理解你对证明方法不熟悉。你以前是如何证明θ边界的?@DennisMeng-有一点,但我特别需要这个。我说“怎么有”没有。“怎么有”。@DennisMeng哦,作为一名“θ边界解算器”,我没有很好的经验。在我现在学习的课程中,没有强调θ的界限,尽管我们需要一点,只是想知道。我见过的通常方法是证明大O和大Omega边界,但是如果你仍然只是刚刚开始,那么我可以理解不熟悉证明方法。我需要一个明确的θ表达式,你是说这是θ(lg(n^(k+1))?非常感谢!我能说一般来说log(k阶多项式)=Teta吗(k*logn)?@我现在看到的程序员-是的。但是我会非常小心,极限可能会非常反直觉;)但是很容易用WolframAlpha进行实验。非常感谢:)我所学的课程是关于算法的,所以数学层不那么重要。在你的回答中,你是说log(k+1阶多项式)=θ(klog n),在你的评论中,你说log(多项式k阶)=θ(klog n)-这有意义吗?我需要一个明确的θ表达式,你是说这是θ(lg(n^(k+1))?非常感谢!我能说一般来说log(k阶多项式)=teta(k*logn)?我现在看到的程序员-是的。但是我会非常小心,极限可能会非常违反直觉;)但是用WolframAlpha进行实验很容易。非常感谢:)我所学的课程是关于算法的,所以数学层并不那么重要。在你的回答中,你说log(k+1阶多项式)=θ(klog n),在你的评论中,你说log(多项式k阶)=θ(klog n)-这有意义吗?为什么log(n*(n-1)*…*(n-k)你是对的,它应该是
log(n^(k+1))
,但这不是问题,因为这仍然适用于
O(k logn)
。最后一行中的相同内容应该是
log((n/2)^(k+1))
,但也没有真正改变