【发布时间】:2012-06-14 12:10:23
【问题描述】:
我需要计算一个数字的组合。
计算 nCp where n>>p 的最快方法是什么?
我需要一种快速的方法来为多项式方程生成二项式系数,并且我需要获取所有项的系数并将其存储在一个数组中。
(a+b)^n = a^n + nC1 a^(n-1) * b + nC2 a^(n-2) * ...... +nC(n-1) a * b^(n-1) + b^n
计算 nCp 最有效的方法是什么?
【问题讨论】:
-
我尝试使用传统方法计算组合,但您可能已经猜到它的效率非常低,即使对于小型多项式也需要很多时间
-
@rao_555:
n和p的大小数字是多少?以及什么样的语言?例如,在对小数进行运算从根本上更快的语言中,是否值得尝试计算unsigned long long中的结果(示例取自C)并避免溢出,这对答案产生了影响通过巧妙的技巧,或者结果是否比这大得多,所以尝试没有意义。 -
@rao_555:好吧,如果
n是 10^10 并且p是n/2,那么 nCp 大约有 450 亿个十进制数字。就个人而言,我会尝试在那时更改要求。 -
抱歉,100 亿位数。仍然。
-
@SteveJessop:你必须接受过物理或工程方面的培训。
标签: algorithm math data-structures