我有一个公式 a(n) = n * a(n-1) +1 ; a(0) = 0
我该如何从中得到Omega, Theta或O表示法,而不用主定理,或者有没有一个好的网站可以了解这个解释。
我有一个公式 a(n) = n * a(n-1) +1 ; a(0) = 0
我该如何从中得到Omega, Theta或O表示法,而不用主定理,或者有没有一个好的网站可以了解这个解释。
a(0) = 0
a(1) = 1
a(2) = 3
a(3) = 10
a(4) = 41
一个合理的猜测是,对于n>1,a(n) >= n!。这对于 n=1 是成立的。假设对于 n=k-1 也成立。
a(k) = ka(k-1)+1
>= k (k-1)! + 1
>= k!.
因此,如果对于n=k-1成立,那么对于n=k也成立,所以对于所有正整数n,a(n) >= n!,且a(n) = Omega(n!)。
一个合理的上界猜测是a(n) <= 2(n!)。这对前几个值来说是正确的,但用归纳法证明有点麻烦。有时候在归纳证明中,证明更强的命题会更好。在这种情况下,最好证明a(n) < 2(n!),或者a(n)<=2(n!)-1。当n=1时,它是正确的。假设对于某个k-1>=1,n=k-1时命题成立。那么
a(k) = k(a(k-1))+1
<= k(2(k-1)!-1)+1
= 2(k!) +1-k
<= 2(k-1)!-1.
因此,对于任何n≥1,a(n) < 2(n!)。由于我们有形如c*(n!)的下限和上限,所以a(n) = Theta(n!)。
sum(factorial(n)/factorial(k) for k in range(n)) - factorial(n) + 1
。 - orlp您可能已经注意到您的公式与阶乘n!
非常接近。现在,您可以更正式地表达这一发现:例如,您可以证明
n! < a(n) < 2*n! (for big enough n)
O
、Θ
和 Ω
都是 n!
。我相信你可以使用归纳法证明上述不等式或者它的某个变形(虽然我还没有尝试过)。提示:
将a(n)除以n!,前几项为
a(1)/1! = 1/1! = 1
a(2)/2! = (2.1+1)/2! = 1 + 1/2!
a(3)/3! = (3.(2.1+1)+1)/3! = 1 + 1/2! + 1/3!
a(4)/4! = (4.(3.(2.1+1)+1)+1)/4!= 1 + 1/2! + 1/3! + 1/4!
...
n! <= a(n) < (e-1).n!
并且 a(n)
在 Θ(n!)
中。
a(n) = Omega(g(n))
函数g(n)
可能是什么吗? - Random Dev