50得票5回答
哪种方法更好地计算nCr?

方法一: C(n,r) = n!/(n-r)!r! 方法二: 在书籍 《组合算法》(Combinatorial Algorithms) 作者Wilf 中,我发现了这个: C(n,r)可以写成C(n-1,r) + C(n-1,r-1)。 例如:C(7,4) = C(6,4) + C(6,3)...

50得票14回答
如何高效地计算帕斯卡三角形中的一行?

我对寻找帕斯卡三角形的第n行感兴趣(不是一个特定的元素,而是整个行本身)。最有效的方法是什么? 我考虑了构建三角形的传统方法,通过对上一行中相应元素求和,这将需要: 1 + 2 + .. + n = O(n^2) 另一种方法可以是使用特定元素的组合公式: c(n, k) = n! /...

49得票3回答
大数情况下快速计算组合数n选k模p的方法?

我所说的“大n”是指数百万级别。p是质数。 我尝试过http://apps.topcoder.com/wiki/display/tc/SRM+467,但这个函数似乎不正确(我用144选6模5测试它时,它给了我0,而应该给我2)。 我尝试过http://online-judge.uva.es...

23得票8回答
在C++中计算组合数(N选R)的数量

我正在尝试用C++编写一个查找NCR的程序。但是我的结果有问题,不正确。您能帮助我找出程序中的错误吗?#include <iostream> using namespace std; int fact(int n){ if(n==0) return 1; if (n...

12得票3回答
二项式系数对142857取模

如何计算大的n和r的模142857的二项式系数。142857有什么特别之处吗?如果问题是模素数p,那么我们可以使用 Lucas 定理,但对于142857应该怎么办。

11得票1回答
二项式系数函数的增长是阶乘还是多项式?

我编写了一个算法,给定一个单词列表,必须检查该单词列表中每个唯一的四个单词组合(无论顺序如何)。 要检查的组合数 x 可以使用二项式系数计算,即 x = n!/(r!(n-r)!),其中 n 是列表中单词的总数,而 r 是每个组合中单词的数量,在我的情况下始终为4,因此函数是 x = n!/...

10得票4回答
高效算法获取对象中所有项的组合

给定一个包含n个键的数组或对象,我需要找到所有长度为x的组合。 给定X是可变的。binomial_coefficient(n,x)。 目前我正在使用以下方法: function combine(items) { var result = []; var f = functi...

9得票6回答
Python中用于处理非常大的数字的二项式检验

我需要在Python中进行二项式检验,可以计算10000阶数的'n'个数字。 我已经使用scipy.misc.comb实现了一个快速的binomial_test函数,然而,它在n = 1000左右就受到了很大的限制,我猜测是因为在计算阶乘或组合数本身时达到了最大可表示的数字。这是我的函数: ...

9得票3回答
当n非常大时,高效计算nCr mod p。

我需要高效计算nCr mod p。目前,我已经编写了这段代码,但它超出了时间限制。请建议更优的解决方案。 对于我的情况,p = 10^9 + 7,1 ≤ n ≤ 100000000 我还要确保没有溢出,因为nCr mod p保证适合32位整数,但是n!可能会超过限制。 def nCr(n...

8得票4回答
计算大数的二项概率

我希望使用Python计算二项式概率。我尝试应用公式: probability = scipy.misc.comb(n,k)*(p**k)*((1-p)**(n-k)) 我得到的一些概率是无限的。我检查了一些概率等于inf的值。对于其中一个,n=450,000,k=17。这个值必须大于1...