n选择楼层的渐近增长(n / 2)

时间:2014-09-12 17:11:04

标签: performance algorithm asymptotic-complexity

如何找到n选择楼层(n / 2)的渐近增长?我试过了 使用扩展并得到它等于

[n*(n-1)*........*(floor(n/2)+1)] / (n-floor(n/2))!

知道我怎么能从那里出发? 感谢任何帮助,更喜欢提示答案

2 个答案:

答案 0 :(得分:3)

使用Stirling's approximation,即可获得

n! = \sqrt{2n\pi}(n/e)^n

如果你将它替换为$ \ choose {n} {n / 2} $,你应该最终得到

2^{n+1/2}/\sqrt{n\pi}

PS。你可能想在实际使用答案之前检查我的数学: - )

答案 1 :(得分:0)

我同意以上答案,但想提供更多的深度。假设n是偶数,我们有:

n choose n/2 = n! / ((n/2)!)^2

要对此进行上限,我们在分子中使用“ Stirling's Approximation”的上限,在分母中使用下限(例如,我们需要最大的分子和最小的分母)。这将为我们提供上限:

n choose n/2 <= [e * n^(n + 1/2) * e^-n] / [sqrt(2*pi) * (n/2)^(n/2 + 1/2) * e^-n/2]^2

然后我们将分母中的指数分布得到:

n choose n/2 <= [e * n^(n + 1/2) * e^-n] / [2*pi * (n/2)^(n+1) * e^-n]

取消e^-n,将2^(n+1)从分母移到分子并进行简化;我们得到:

n choose n/2 <= (e / pi) * [2^n / sqrt(n)]

按照相同的过程进行下界,将斯特林的近似上界置于分母中,将下界置于分子中。这将产生:

n choose n/2 >= (2 * sqrt(2*pi) / e^2) * [2^n / sqrt(n)]

然后我们知道它的下限是某个恒定时间2^n / sqrt(n),而它的上限是另一个恒定时间2^n / sqrt(n)

因此,我们得出结论,其渐近增长为n choose n/2 = Theta( 2^n / sqrt(n) )