问题标签 [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.
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
?那是哪个?!
java - 二项式系数。递归树。如何避免多次计算相同的值
我正在使用名为BinomialCoefficients的程序。
我做了一个框跟踪C(5,3)
,它返回10
是正确的,但我注意到在我的完整递归树中C(5, 3)
,该值C(3, 2)
被评估了 2 次,并被C(2, 1)
评估了 3 次。
什么可能是修改,以避免多次计算相同的值?
这只是显示上下文的功能。
algorithm - 寻找二项式系数的除数的智能算法
我对我的算法的技巧很感兴趣,我用它来找出一个非常大的数的除数,更具体地说是“n over k”或 C(n, k)。数字本身的范围可能非常高,因此确实需要将时间复杂度纳入“等式”。
n 超过 k 的公式是 n! / (k!(nk)!) 我知道我必须尝试利用阶乘以某种方式“递归”的事实——但我还没有读过太多离散数学,所以这个问题既是数学问题又是编程问题自然。
我想我真正在寻找的只是一些让我朝着正确方向前进的提示——我真的被困住了。
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 的系数以及为什么会这样吗?
谢谢你。
c - 如何找到固定 n 的前 r 二项式系数的总和?
我已经尝试了解决这个系列的基本方法,但是n
&的较大值需要时间r
。有没有办法在一个时间复杂度不取决于n
OR r
.Range r,n<=10^5的值的单个表达式中减少这个表达式
注意:在这里,r < n
即我必须找到r+1
这个系列的第一项的总和。
我已经阅读了这个问题,但它对我没有帮助:
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 的值你需要有一个巨大的表。
我不熟悉这个和你可以做索引的方法,这就是我需要帮助的原因。
亲切的问候
stata - 使用前缀在Stata中存储二项式置信区间的结果
我正在尝试计算按年完成治疗的人的比例的 95% 二项式威尔逊置信区间(数据集是每个人的行列)。
我想将结果存储到一个矩阵中,以便我可以使用该putexcel
命令将结果导出到现有的 Excel 电子表格,而无需更改工作表的格式。我创建了一个二进制变量dscomplete_binary
,如果治疗未完成,则为 0,如果治疗已完成,则为 1。
我尝试了以下方法:
这给出了具有 95% 置信区间的每年的输出。以前我曾经statsby
折叠数据集以将结果存储在变量中,但这会从内存中清除数据集,因此我必须不断地重新打开它。
有没有办法运行命令并以表格格式存储结果,以便数据以与此类似的方式存储:
我尝试了以下命令,它们对二项式 Wilson 选项给出了不同的估计:
c++ - 解析二项式c ++的系数
我正在尝试读取二项式列表,在作为命令行参数给出的文件中按行分隔。文件看起来像这样...
数字.txt
预期输出:
我的输出:
我正在获得正确的“真实”双变量值。sscanf() 也没有检测到 x 系数之一的前导零值,我可以对 sscanf() 做些什么来解决这个问题?
c - 二项式系数舍入误差
我必须计算表达式 (x+y)**n 的 c 二项式系数,其中 n 非常大(大约 500-1000)。我想到的第一个计算二项式系数的算法是乘法公式。所以我将它编码到我的程序中
该代码在单核线程上非常快,例如与递归公式相比,尽管后者较少受到舍入错误的影响,因为只涉及和而不是除法。所以我想测试这些算法的价值,并尝试评估 500 选择 250(订购 10^160)。我发现“相对误差”小于 10^(-19),所以基本上它们是相同的数字,尽管它们的差异类似于 10^141。
所以我想知道:有没有办法评估计算错误的顺序?有没有比乘法公式更精确的计算二项式系数的快速方法?由于我不知道我的算法的精度,我不知道在哪里截断斯特林的系列以获得更好的结果..
我已经用谷歌搜索了一些二项式系数表,所以我可以从中复制,但我发现最好的一个在 n = 100 处停止......