问题标签 [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 投票
3 回答
4186 浏览

matlab - 获取二项式系数

在尝试向量化一段特定的 Matlab 代码时,我找不到一个简单的函数来生成二项式系数的列表。我能找到的最好的是nchoosek,但由于某些莫名其妙的原因,这个函数只接受整数(不是整数向量)。我目前的解决方案如下所示:

这会生成给定值的二项式系数集n。然而,由于二项式系数总是对称的,我知道我做的工作量是必要的两倍。我确信我可以创建一个利用对称性的解决方案,但我确信这将以牺牲可读性为代价。

有没有比这更优雅的解决方案,也许使用我不知道的 Matlab 函数?请注意,我对使用符号工具箱不感兴趣。

0 投票
1 回答
481 浏览

matlab - 多项式展开:分离多项式系数和 x

我想自动计算有变量(x1,x2,...)以及系数(c1,c2,...)的多项式的展开。我的目标是计算p(1)*(c1*x1+c2*x2+...)^n+ ... + p(n)*(c1*x1+c2*x2+...)^n .

如您所见,结果表达式可以写成F(x1,x2...)*g(c1,c2,...)[其中 F 是行矩阵,g 是列矩阵],即系数和变量之间存在一些乘法解耦。

现在我使用 MATLAB 符号工具箱并通过手动检查生成的符号展开来构造 F 和 g。这不是很可行,因为如果 n 很大并且c=(c1,c2,...)太大,则有太多项,并且不再可能手动进行。例如(c1*x1+c2*x2+c3)and n=2,我想要的是跟随。

我发现了以下问题,看起来可能有一种方法可以使用convetc 自动完成。如果有人可以针对这种情况提出自动化解决方案(或至少对这种自动化有一些想法),x=(x1,x2) and c=(c1,c2,c3) and n=2上面描述的情况; 我想我可以将其推广到更高维的情况。

注意:F 或 g 中术语的顺序无关紧要,因为它们是以某种结构化的方式排序的。

0 投票
0 回答
371 浏览

c - C中具有大整数的二项式系数

前段时间我创建了一个大整数库,使用 FFT 和二进制拆分来计算大整数(最多 500 万)的阶乘。现在我需要用大整数(比如 n=10000 和 k=4000))计算二项式系数(n!/(k!*(nk)!)),我需要实现一个函数来实现之间的除法大整数,甚至是大整数的倒数。

所以,我问你我可以使用哪种算法来实现这个功能。

我在代表一个大整数的结构下面发布:

其中“arg”是大整数的多项式表示,“size”是位数,“nsize”是 arg 的长度。

抱歉我的英语不好,感谢您的关注。

0 投票
2 回答
587 浏览

r - glm 切换交互作用的系数名称

我使用 R 代码:

正如我们所看到的coef,交互的名称与GAMMA.2:VAR1中的顺序不同form(我们有VAR1:GAMMA.2相反的顺序)。由于几个原因,我需要输出

之后不更改系数的名称。具体来说,我希望系数的名称与我在form对象中使用的名称相同(无需像上面的代码那样切换)。我可以告诉glm()不要切换交互的名称吗?

0 投票
2 回答
6962 浏览

matlab - 在Matlab中获取符号多项式的系数

我有一个 Matlab 函数,它返回以下形式的多项式:

其中 a、b 和 c 是常数,x 和 y 是符号(类sym)。

我想以 形式获得多项式的系数[a b c],但我遇到了以下问题。如果函数返回poly = y^2,则coeffs(poly) = 1。我不想要这个——我想要它回来[0 0 1]

如何创建一个函数,以我想要的形式给出符号多项式的系数?

0 投票
4 回答
4754 浏览

python - 计算大数的二项式概率

我想在 python 上计算二项式概率。我试图应用公式:

我得到的一些概率是无限的。我检查了一些 p=inf 的值。对于其中之一,n=450,000 和 k=17。该值必须大于 1e302,这是浮点数处理的最大值。

然后我尝试使用sum(np.random.binomial(n,p,numberOfTrials)==valueOfInterest)/numberOfTrials

这将抽取 numberOfTrials 个样本并计算抽取 valueOfInterest 值的平均次数。

这不会提高任何无限价值。但是,这是一种有效的方法吗?为什么这种方式不会提高任何无限价值而计算概率呢?

0 投票
2 回答
1220 浏览

c++ - 使用 boost::math::binomial_coefficient 对二项式系数进行整数计算,返回值为 boost::multiprecision::cpp_int? 如何?

我想将二项式系数计算为整数,最多约numberLeaves=100, K=10. 我相信这应该可以存储在大约 128 位整数中。

因此,我想boost::multiprecision::cpp_int用来存储结果,并boost::math::binomial_coefficient<boost::multiprecision::cpp_int>用来计算它:

不幸的是,即使二项式系数是整数,上面的代码也是无效的,因为boost::math::binomial_coefficient要求返回值必须是浮点类型,声称

...模板参数必须是实值类型,例如 float 或 double 而不是整数类型 - 这太容易溢出了!

如前所述,在我的情况下,我希望二项式系数计算的结果适合大约 128 位 - 我希望它是一个整数。

因此,我考虑将boost::multiprecision::cpp_dec_float其作为模板参数传递给boost::math::binomial_coefficient,然后将浮点返回值(通过舍入)转换为最接近的整数

可悲的是,我找不到从 a 转换为 aboost::multiprecision::cpp_dec_float的方法boost::multiprecision::cpp_int。似乎库严格禁止执行有损转换boost::multiprecision

现在我正在编写自己的函数来计算二项式系数,并将值作为整数返回。

我发现很难相信实际上没有任何方法可以boost::math::binomial_coefficient用来计算二项式系数并将其作为boost::multiprecision::cpp_int.

是否可以boost::math::binomial_coefficient用来计算二项式系数并将其返回为boost::multiprecision::cpp_int?

0 投票
3 回答
4350 浏览

c++ - C++ 二项分布

我正在尝试为以下公式制作一个 C++ 程序:

在此处输入图像描述

我做了选择功能的一部分:

我的 k 输出为空白,我的 choose() 输出为 0000000000000000000000

任何帮助将不胜感激

0 投票
4 回答
588 浏览

c++ - 如何计算均匀分布的二项式系数的总和

如何找到以 M 为模的均匀分布的二项式系数的总和?
IE。( n C a + n C a+r + n C a+2r + n C a+3r + ... + n C a+kr ) % M = ?
给定:0 <= a < r, a + kr <= n < a + (k+1)r, n < 10 5 , r < 100

我的第一次尝试是:

但这不是有效的。所以在阅读了这里 和这篇论文之后, 我发现上面的总和相当于:
summation[ω -ja * (1 + ω j ) n / r], for 0 <= j < r; ω = e i2π/r是一个原始的 r th单位根。
在 Order(r) 中找到这个总和的代码是什么?

编辑:n 可以达到 10 5并且 r 可以达到 100。

原始问题来源:https
://www.codechef.com/APRIL14/problems/ANUCBC比赛问题编辑:https
: //discuss.codechef.com/t/anucbc-editorial/5113 6年后重访此帖后来,我不记得我是如何将原始问题陈述转换为我的版本的,尽管如此,我还是分享了原始解决方案的链接,以防有人想看看正确的解决方法。

0 投票
2 回答
783 浏览

c++ - 当 n % p 或 k % p == 0 时,nCk 模 p

我正在尝试解决黑客等级的编码挑战,该挑战需要计算二项式系数模素数,即

我正在使用此答案中的代码,该代码适用于前三组输入,但在 4 日开始失败。我在调试器中单步执行并确定问题出现在以下情况:

我只需要知道如何修改我当前的解决方案来处理 n % p == 0 或 k % p == 0 的特定情况。我在堆栈交换中找到的答案似乎都没有解决这个特定情况。这是我的代码:

约束:
4 <= N <= 10^9
1 <= K <= N