问题标签 [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 回答
4083 浏览

time-complexity - 二项式系数函数的增长是阶乘还是多项式

我写了一个算法,给定一个单词列表,必须检查该单词列表中四个单词的每个唯一组合(无论顺序如何)。

要检查的组合数x, 可以使用二项式系数计算,即x = n!/(r!(n-r)!)其中n是列表中的单词总数,r是每个组合中的单词数,在我的情况下始终为 4,因此函数为x = n!/(4!(n-4)!) = n!/(24(n-4)!)。因此,随着总单词n的数量 增加要检查的组合数量x,因此会阶乘增加,对吗?

让我感到震惊的是 WolframAlpha 能够将这个函数重写为x = (n^4)/24 − (n^3)/4 + (11.n^2)/24 − n/4,所以现在它看起来会随着增长而呈多项式增长n?那是哪个?!

这是一个可视化函数增长的图表(字母 x 切换为 l)

0 投票
2 回答
608 浏览

java - 二项式系数。递归树。如何避免多次计算相同的值

我正在使用名为BinomialCoefficients的程序。

我做了一个框跟踪C(5,3),它返回10是正确的,但我注意到在我的完整递归树中C(5, 3),该值C(3, 2)被评估了 2 次,并被C(2, 1)评估了 3 次。

什么可能是修改,以避免多次计算相同的值?

这只是显示上下文的功能。

0 投票
2 回答
819 浏览

algorithm - 寻找二项式系数的除数的智能算法

我对我的算法的技巧很感兴趣,我用它来找出一个非常大的数的除数,更具体地说是“n over k”或 C(n, k)。数字本身的范围可能非常高,因此确实需要将时间复杂度纳入“等式”。

n 超过 k 的公式是 n! / (k!(nk)!) 我知道我必须尝试利用阶乘以某种方式“递归”的事实——但我还没有读过太多离散数学,所以这个问题既是数学问题又是编程问题自然。

我想我真正在寻找的只是一些让我朝着正确方向前进的提示——我真的被困住了。

0 投票
3 回答
3144 浏览

r - 使用多个因子预测器从 GLM 中删除截距

我在 R 中使用 logit 链接函数运行二项式逻辑回归。我的响应是阶乘 [0/1],我有两个多级阶乘预测变量 - 我们称它们为 a 和 b,其中 a 有 4 个因子水平(a1、a2、a3 ,a4) 和 b 有 9 个因子水平 (b1,b2...b9)。所以:

然后模型输出将显示有关模型的所有信息以及系数。

汇总输出中缺少 a 和 b(a1 和 b1)的因子水平。我知道它在模型的“拦截”中是固定的。我已经读过,如果我想删除截距项并查看这些因子水平的估计值,我可以在模型公式中添加 -1 或 +0,即:

...或... mod2 <- glm(y~a+b+0, family=binomial(logit),data=pretend) 摘要(mod2)

在新模型 (mod2) 中,截距项消失了,变量 a 的因子水平 a1 在系数列表中给出。但是,变量 b 的因子水平 b1 仍然缺失,并且鉴于不再有截距项,那么我该如何解释该因子水平的优势比呢?

有人可以向我解释如何获得 b1 的系数以及为什么会这样吗?

谢谢你。

0 投票
2 回答
1407 浏览

c - 如何找到固定 n 的前 r 二项式系数的总和?

我已经尝试了解决这个系列的基本方法,但是n&的较大值需要时间r。有没有办法在一个时间复杂度不取决于nOR r.Range r,n<=10^5的值的单个表达式中减少这个表达式

注意:在这里,r < n即我必须找到r+1这个系列的第一项的总和。


我已经阅读了这个问题,但它对我没有帮助:

找到固定 n 模 m 的前 r 二项式系数之和的算法

0 投票
2 回答
85 浏览

arrays - 算法,以便我可以以某种方式索引 2^n 组合,以便我可以从 1 到 2^n 的任何索引值回溯,而无需使用数组

我正在尝试做某事,但它超出了我的领域。为了解释,让我们设置 n=3 以简化事情,其中​​ n 是此示例中的参数总数:A、B、C。这些参数可以具有 ON 和 OFF 状态(也称为 0 或 1)。在这种情况下,这些参数的组合总数为 2^n = 8,可以可视化为:

当然上面的列表可以按(2^n)排序!= 40320 种方式。我想要一个算法,这样我就可以在给定一个从 1 到 2^n 的数字的情况下计算我的任何参数(0 或 1)的状态。例如,如果我使用上面的表格有 3 的数量,我知道 A 的状态是 1,B 和 C 是 0。当然,你可以有一个表格/数组来查找它,给定特定的排序,但即使是相对较小的n 的值你需要有一个巨大的表。

我不熟悉这个和你可以做索引的方法,这就是我需要帮助的原因。

亲切的问候

0 投票
2 回答
705 浏览

stata - 使用前缀在Stata中存储二项式置信区间的结果

我正在尝试计算按年完成治疗的人的比例的 95% 二项式威尔逊置信区间(数据集是每个人的行列)。

我想将结果存储到一个矩阵中,以便我可以使用该putexcel命令将结果导出到现有的 Excel 电子表格,而无需更改工作表的格式。我创建了一个二进制变量dscomplete_binary,如果治疗未完成,则为 0,如果治疗已完成,则为 1。

我尝试了以下方法:

这给出了具有 95% 置信区间的每年的输出。以前我曾经statsby折叠数据集以将结果存储在变量中,但这会从内存中清除数据集,因此我必须不断地重新打开它。

有没有办法运行命令并以表格格式存储结果,以便数据以与此类似的方式存储:

我尝试了以下命令,它们对二项式 Wilson 选项给出了不同的估计:

0 投票
1 回答
94 浏览

c++ - 解析二项式c ++的系数

我正在尝试读取二项式列表,在作为命令行参数给出的文件中按行分隔。文件看起来像这样...

数字.txt

预期输出:

我的输出:

我正在获得正确的“真实”双变量值。sscanf() 也没有检测到 x 系数之一的前导零值,我可以对 sscanf() 做些什么来解决这个问题?

0 投票
3 回答
2239 浏览

algorithm - 如何证明二项式系数是 2 的 n 次方渐近大 theta?

我被这个问题困住了。我认为这相当于证明 2m 选择 m 是 4 的 n 次方的大 theta,但仍然难以证明。

在此处输入图像描述

感谢@LutzL 的建议。我之前想到了斯特林的近似值。在此处输入图像描述

0 投票
4 回答
381 浏览

c - 二项式系数舍入误差

我必须计算表达式 (x+y)**n 的 c 二项式系数,其中 n 非常大(大约 500-1000)。我想到的第一个计算二项式系数的算法是乘法公式。所以我将它编码到我的程序中

该代码在单核线程上非常快,例如与递归公式相比,尽管后者较少受到舍入错误的影响,因为只涉及和而不是除法。所以我想测试这些算法的价值,并尝试评估 500 选择 250(订购 10^160)。我发现“相对误差”小于 10^(-19),所以基本上它们是相同的数字,尽管它们的差异类似于 10^141。

所以我想知道:有没有办法评估计算错误的顺序?有没有比乘法公式更精确的计算二项式系数的快速方法?由于我不知道我的算法的精度,我不知道在哪里截断斯特林的系列以获得更好的结果..

我已经用谷歌搜索了一些二项式系数表,所以我可以从中复制,但我发现最好的一个在 n = 100 处停止......