证明n! = O(n ^ n)

时间:2011-02-15 02:44:04

标签: algorithm recursion complexity-theory big-o

更新:抱歉,我忘记将n ^ n放入O()

我的尝试是解决这种递归关系:

T(n) = nT(n-1) +1
T(0) = 1;

使用迭代方法我得到了n ^ n,但我不确定这是否是证明它的方法。

5 个答案:

答案 0 :(得分:19)

我假设您要证明函数n!是集O(n^n)的元素。这很容易证明:

定义:函数f(n)是集合O(g(n))的元素,如果存在c>0,则m存在k>m,以便所有f(k)<=c*g(k)我们有n!

因此,我们必须将n^nn! = n * (n-1) * (n-2) * (n-3) * ... * 3 * 2 * 1 n^n = n * n * n * n * ... * n * n * n 进行比较。让我们把它们写在另一个之下:

n!

如您所见,第一行(n^n)和第二行(n)右侧都有n! <= n^n项。如果我们比较这些项目,我们会发现每个项目最多都与第二行中的相应项目一样大。因此c=1(至少对于n> 5)。

所以,我们可以 - 看看定义 - 比如存在m=5,以便k>5存在k! < k^k,对于所有n!我们都有O(n^n),这证明{{1}}确实是{{1}}的一个元素。

答案 1 :(得分:8)

备注:以下是对原始问题的回答:“证明n!= n ^ n”

我可以很容易地证明它是真的:取n = 5.

n! = 120
n^n = 3125

答案 2 :(得分:2)

n不是这样! = n ^ n,因此您将无法证明这一点。此外,你的递归关系的解决方案既不是n!或者n ^ n。 (它满足T(1)= 1 * 1 + 1 = 2,既不是1!也不是1 ^ 1.)

你究竟想做什么,为什么?

答案 3 :(得分:0)

代表n==2n! = 2 != 4 = n^n 对于n!=2(n-1)除以n!,但n-1不划分n^nn^n mod n-1 == 1

实际的斯特林近似值为n! ~ sqrt(2 Pi n) (n/e)^n

你的数学背景是什么?您是否需要复杂的分析证明或更具组合性的东西?

答案 4 :(得分:0)

n! != n^n。但是,上面定义的T(n)序列不是n!。但它是否等于n^n?对于n=1T(1) = 1*T(0) + 1 = 1*1 + 1 = 2n^n = 1^1 = 1。但是,假设您还意味着T(1) = 1,那么n=1就等于它们。更进一步,n=2,然后T(2) = 2*T(1) + 1 = 2*1 + 1 = 3!= 2^2。所以我真的不确定你要问的是什么。