二项式系数的增长是函数阶乘还是多项式

时间:2016-04-17 23:27:42

标签: time-complexity big-o binomial-coefficients

我编写了一个给出单词列表的算法,必须检查该单词列表中的四个单词的每个唯一组合(无论顺序如何)。

要检查的组合数量x可以使用二项式系数计算,即x = n!/(r!(n-r)!)其中n是列表中的字词总数,r }是每个组合中的单词数,在我的情况下总是4,因此函数是x = n!/(4!(n-4)!) = n!/(24(n-4)!)。因此,总字数n会增加要检查的组合数x,因此会因此增加吗?

让我感到震惊的是,WolframAlpha能够将此函数重写为x = (n^4)/24 − (n^3)/4 + (11.n^2)/24 − n/4,所以现在它会随着n的增长而增长多项式?那是哪个?!

Here is a graph to visualise the growth of the function (the letter x is switched to an l)

1 个答案:

答案 0 :(得分:7)

对于r的固定值,此函数为O(n ^ r)。在你的情况下,r = 4,它是O(n ^ 4)。这是因为分子中的大部分术语都被分母取消:

n!/(4!(n-4)!) 
   = n(n-1)(n-2)(n-3)(n-4)(n-5)(n-6)...(3)(2)(1) 
     -------------------------------------------
     4!(n-4)(n-5)(n-6)...(3)(2)(1)

   = n(n-1)(n-2)(n-3)
     ----------------
           4!

这是n中的4次多项式。