问题标签 [binomial-coefficients]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
414 浏览

c# - 处理组合

在 C# 中,我创建了一个包含各种索引列表的列表数组。我想显示 2 种不同索引组合的 1 种组合。一个里面的2个组合不能重复。

我正在尝试编写一个有 14 名配对球员的网球锦标赛。每个玩家不得与另一位玩家配对两次。

0 投票
0 回答
217 浏览

algorithm - 如何计算 C(n, k) % 3?

更新: C(n, k) 表示Binomial Coefficient

我正在处理一个数论问题。我已经把大问题变成了一个简单的问题: 如何计算C(n,k)%3,其中 n<=10^15。大约m ( <= 10 000 )需要在1 秒内计算的数据集。

我解决它的方法是使用Lucas' theorem. 是O(m log n)。而且它的速度足以解决问题。但我想知道这个问题是否有更好的解决方案,甚至是n <= 10^100orm <= 1 000 000

非常感谢!

0 投票
2 回答
882 浏览

c++ - c中的ncr(组合)

我正在尝试使用 dp 在 c 中计算 ncr(combinations)。但它在 n=70 时失败了。任何人都可以帮忙吗?

基本思想是 ncr = ((n-r+1)/r)* nc(r-1)

0 投票
14 回答
57157 浏览

algorithm - 如何有效地计算帕斯卡三角形中的一行?

我有兴趣找到帕斯卡三角形的第 n 行(不是特定元素,而是整行本身)。最有效的方法是什么?

我考虑了通过总结上面行中的相应元素来构造三角形的传统方法,这将采取:

另一种方法是使用特定元素的组合公式:

对于行中的每个元素,我猜前一种方法会花费更多时间,具体取决于计算组合的方式。有任何想法吗?

0 投票
3 回答
2320 浏览

python - python - 如何在试验概率不相等的python中进行二项分布

我知道如何在 python 中进行标准二项式分布,其中每次试验的概率都是相同的。我的问题是如果试验概率每次都发生变化该怎么办。我正在根据下面的论文起草一个算法,但我认为我应该在这里检查一下是否已经有标准的方法来做到这一点。

http://www.tandfonline.com/doi/abs/10.1080/00949658208810534#.UeVnWT6gk6w

提前致谢,

詹姆士

0 投票
2 回答
1892 浏览

combinations - 仅根据索引计算第 N 个多集组合(有重复)

我如何仅根据它的索引计算第 N 个组合。应该有 (n+k-1)!/(k!(n-1)!) 个重复组合。

所以 black_magic_function(3) 应该产生 {0,0,1,1,1}。

这将进入 GPU 着色器,因此我希望每个工作组/线程能够找出它们的排列子集,而不必全局存储序列。

生成它的算法可以MBnext_multicombinationhttp://www.martinbroadhurst.com/combinatorial-algorithms.html看到

更新:

所以我想我会用帕斯卡三角形中的二项式系数来代替(n+k-1)!/(k!(n-1)!)它的外观。

T1:

T2:

n=3,k=5本文开头的控制台输出比较:第三条对角线{3,6,10,15,21,28,36}给出了每个翻转点的索引{0,0,0,1,1} -> {0,0,1,1,1} -> {0,1,1,1,1},等等。它左侧的对角线似乎显示了前一个块中包含多少个值(diagonal[2][i] == diagonal[3][i] - diagonal[3][i-1]))。如果您水平阅读金字塔的第 5 行,您将获得最大数量的组合,以增加 N in (n+k-1)!/(k!(n-1)!)where的值K=5

可能有一种方法可以使用此信息来确定任意索引的确切组合,而无需枚举整个集合,但我不确定我是否需要走那么远。最初的问题只是将完整的组合空间分解为相等的子集,这些子集可以在本地生成,并由 GPU 并行处理。所以上面的三角形给了我们每个块的起始索引,其中的组合可以很简单地导出,并且它的所有连续元素都递增地枚举。它还为我们提供了块大小,以及我们拥有的总组合数。因此,现在如何将不均匀大小的块放入跨 X 个线程的相等工作负载组中成为一个打包问题。

0 投票
0 回答
2425 浏览

r - 在 R 中拟合负二项式分布时的警告

我正在尝试使用以下代码在 R 中拟合负二项式分布:

数据如下:

当我对上述数据运行 fitdistr 时,我收到以下警告:

尽管有警告,但我确实得到了系数估计值。我无法理解输出系数值是否值得信赖并且可以进一步使用。另外,这些警告背后的原因是什么,我该如何消除它们?任何帮助将不胜感激。

谢谢。

0 投票
3 回答
516 浏览

c++ - 二项式系数函数 C++ 错误答案 n>13

我正在尝试学习 C++,因此我正在尝试做一个函数来计算二项式系数。该代码的最高值为 12,对于较大的值,生成的结果不正确。我很感谢你的意见。

0 投票
2 回答
9374 浏览

python - 当 n 非常大时有效地计算 nCr mod p

我需要nCr mod p有效地计算。现在,我已经写了这段代码,但是它超过了时间限制。请提出更优化的解决方案。

就我而言,p = 10^9 + 7 and 1 ≤ n ≤ 100000000

我还必须确保没有溢出,因为nCr mod p保证适合 32 位整数,但n!可能会超过限制。

PS:另外我认为我的代码可能不完全正确。但是,它似乎适用于 smalln正确。如有不对请指出!

0 投票
2 回答
2807 浏览

python - 如何在python中为变量显示加号

我目前正在用 Python 编写一个程序,它将三项式方程分解为二项式方程。但是,问题是每当我计算二项式时,如果它是正数,那么 + 号将不会出现。例如,当我为 b 输入 2 并为 c 输入 -15 时,我得到了输出

二项式是: (x-3)(x5)

如您所见,第二个二项式没有显示 + 号。我怎样才能解决这个问题?

这是我的代码:

我试过做:

但是我最终得到:

二项式是: (x+-3)(x+5)