简化n个多选k的复杂度


11

我有一个递归算法,其时间复杂度相当于从n中重复选择k个元素,我想知道是否可以得到一个更简化的big-O表达式。在我的情况下,可能大于并且它们独立增长。kn

具体来说,我期望一些显式的指数表达式。到目前为止,我能找到的最好的结果是基于Stirling的近似值,所以我可以使用它,但是我想知道是否可以得到更好的东西。O(n!)≈O((n/2)n)

O((n+k−1k))=O(?)


这不是很有帮助,但非常有趣,
— 拉马努詹

谢谢,n!∼π(ne)n8n3+4n2+n+1306外观就像一个很酷的近似,但实际上似乎并没有帮助简化它。
— yoniLavi

Answers:


6

编辑:这个答案是ķ<ñ。不限制ķ的ñ表示表达式是无界的。

如果则表达式变为 。请注意,根据斯特林公式,对于任何 其中是二进制熵。特别是。因此我们有O (( 2 (n − 1 )ķ=ñ-1个0<α<1(mØ((2(ñ-1个)ñ-1个))0<α<1个 ħ(q)=-q日志q- (1-q)日志(1-q)ħ(1/2)=1ķ=n−1O(( 2(n−1

(米α米)=Θ(米-1个/22H(α)米),
H(q)=-q日志⁡q-(1个-q)日志⁡(1个-q)H(1个/2)=1个ķ=ñ-1个
Ø((2(ñ-1个)ñ-1个))=Θ((2ñ-2)-1个/222ñ-2)=Θ(4ññ)。

由于上限是最坏的情况(我将其作为练习来证明这一点),因此您的表达式为。O (4 nķ=ñ-1个Ø(4ññ)


谢谢,正是我想要的!这是激励我学习信息论的另一件事。
— yoniLavi

@ Falcor84:我在上次转换中输入的打字错误较小。平方根部分不必转到分母。因此,界限比Paresh提出的界限稍好。(实际上,边界是渐近严格的。)
— A.Schulz

我也应该注意到那个小减号,再次感谢。
— yoniLavi

您的是最坏情况的“作为练习的左手”陈述是错误的。如果,则表达式为。这并不总是小于。n = 3 ( k + 2ķ=ñ-1个ñ=3( 4(k+2k)=(k+22)=(k+1)(k+2)2(42)=6
— 彼得·索尔

1
由于,因此问题在和是对称的(在我的情况下,这个问题可能会增长而与之无关) )。因此,我想,更准确的答案是将答案的最后一部分中的n替换为nkx:=max(n,k)(n+k−1k)=(n+k−1n−1)nkx:=max(n,k)
— yoniLavi 2013年

2

Wolfram说Sondow(2005)[1]以及Sondow和Zudilin(2006)[2]指出了不平等: 对于是一个正整数,是一个实数。米- [R≥1

1个4[R米[([R+1个)[R+1个[R[R]米<(([R+1个)米米)<[([R+1个)[R+1个[R[R]米
米[R≥1个

然后,我们可以使用 其中和。 r=n

(ñ+ķ-1个ķ)<(ñ+ķķ)=(([R+1个)米米)
m=k[R=ñķ米=ķ

然后我们有

(ñ+ķ-1个ķ)<[([R+1个)[R+1个[R[R]米=(ñ+ķķ)ñ+ķ

现在,二项式表达式在Pascal三角形的中间值最高。因此,在我们的情况下,或。ñ+ķ=2ķķ=ñ

用上面的不等式代替,得到: 。

(ñ+ķ-1个ķ)<22ñ=4ñ

因此,更严格的界限是。

(ñ+ķ-1个ķ)=Ø(4ñ)

您还可以看到最大值的下限是

(ñ+ķ-1个ķ)=Ω(4ññ)

参考文献:
[1] Sondow,J.,“问题11132”。阿米尔。数学。每月
112,180,2005 。[2] Sondow,J.和Zudilin,W.“拉曼努安和戈斯珀的欧拉常数,q对数和公式”,拉曼努安J. 12,12,225-244,2006。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.