问题标签 [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.
matlab - 获取二项式系数
在尝试向量化一段特定的 Matlab 代码时,我找不到一个简单的函数来生成二项式系数的列表。我能找到的最好的是nchoosek
,但由于某些莫名其妙的原因,这个函数只接受整数(不是整数向量)。我目前的解决方案如下所示:
这会生成给定值的二项式系数集n
。然而,由于二项式系数总是对称的,我知道我做的工作量是必要的两倍。我确信我可以创建一个利用对称性的解决方案,但我确信这将以牺牲可读性为代价。
有没有比这更优雅的解决方案,也许使用我不知道的 Matlab 函数?请注意,我对使用符号工具箱不感兴趣。
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
,我想要的是跟随。
我发现了以下问题,看起来可能有一种方法可以使用conv
etc 自动完成。如果有人可以针对这种情况提出自动化解决方案(或至少对这种自动化有一些想法),x=(x1,x2) and c=(c1,c2,c3) and n=2
上面描述的情况; 我想我可以将其推广到更高维的情况。
注意:F 或 g 中术语的顺序无关紧要,因为它们是以某种结构化的方式排序的。
c - C中具有大整数的二项式系数
前段时间我创建了一个大整数库,使用 FFT 和二进制拆分来计算大整数(最多 500 万)的阶乘。现在我需要用大整数(比如 n=10000 和 k=4000))计算二项式系数(n!/(k!*(nk)!)),我需要实现一个函数来实现之间的除法大整数,甚至是大整数的倒数。
所以,我问你我可以使用哪种算法来实现这个功能。
我在代表一个大整数的结构下面发布:
其中“arg”是大整数的多项式表示,“size”是位数,“nsize”是 arg 的长度。
抱歉我的英语不好,感谢您的关注。
r - glm 切换交互作用的系数名称
我使用 R 代码:
正如我们所看到的coef
,交互的名称与GAMMA.2:VAR1
中的顺序不同form
(我们有VAR1:GAMMA.2
相反的顺序)。由于几个原因,我需要输出
之后不更改系数的名称。具体来说,我希望系数的名称与我在form
对象中使用的名称相同(无需像上面的代码那样切换)。我可以告诉glm()
不要切换交互的名称吗?
matlab - 在Matlab中获取符号多项式的系数
我有一个 Matlab 函数,它返回以下形式的多项式:
其中 a、b 和 c 是常数,x 和 y 是符号(类sym
)。
我想以 形式获得多项式的系数[a b c]
,但我遇到了以下问题。如果函数返回poly = y^2
,则coeffs(poly) = 1
。我不想要这个——我想要它回来[0 0 1]
。
如何创建一个函数,以我想要的形式给出符号多项式的系数?
python - 计算大数的二项式概率
我想在 python 上计算二项式概率。我试图应用公式:
我得到的一些概率是无限的。我检查了一些 p=inf 的值。对于其中之一,n=450,000 和 k=17。该值必须大于 1e302,这是浮点数处理的最大值。
然后我尝试使用sum(np.random.binomial(n,p,numberOfTrials)==valueOfInterest)/numberOfTrials
这将抽取 numberOfTrials 个样本并计算抽取 valueOfInterest 值的平均次数。
这不会提高任何无限价值。但是,这是一种有效的方法吗?为什么这种方式不会提高任何无限价值而计算概率呢?
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
?
c++ - C++ 二项分布
我正在尝试为以下公式制作一个 C++ 程序:
我做了选择功能的一部分:
我的 k 输出为空白,我的 choose() 输出为 0000000000000000000000
任何帮助将不胜感激
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年后重访此帖后来,我不记得我是如何将原始问题陈述转换为我的版本的,尽管如此,我还是分享了原始解决方案的链接,以防有人想看看正确的解决方法。
c++ - 当 n % p 或 k % p == 0 时,nCk 模 p
我正在尝试解决黑客等级的编码挑战,该挑战需要计算二项式系数模素数,即
我正在使用此答案中的代码,该代码适用于前三组输入,但在 4 日开始失败。我在调试器中单步执行并确定问题出现在以下情况:
我只需要知道如何修改我当前的解决方案来处理 n % p == 0 或 k % p == 0 的特定情况。我在堆栈交换中找到的答案似乎都没有解决这个特定情况。这是我的代码:
约束:
4 <= N <= 10^9
1 <= K <= N