高效枚举具有常数和的多项式 - R

问题描述 投票:0回答:1

假设我有一个 N 面骰子,每一面的概率不均匀,我将其扔了 M 次。现在我们不再观察个体结果,而是只观察总和。

我必须对可能性进行编码,其中我必须对仅限于观察到的总和的多项似然分量求和。

如果 N=3,M = 2 并且总和为 4,那么很明显,我必须对其中一个投掷为 1、另外 3 个投掷均为 2 的两种情况进行求和。

我还可以枚举所有可能性来计算总和,并将计算限制为我感兴趣的总和的组合,但显然,随着 N 和 M 的增加,这很快就会变得棘手。

所以我正在寻找一种有效的方法来选择 R 中的常和组合。

r memory-efficient
1个回答
0
投票

一种选择是使用

RcppAlgos::partitionsGeneral()
,它采用“在各种约束下对数字进行分区的有效算法”:

library(RcppAlgos)

partitionsGeneral(3, 2, repetition = TRUE, target = 4)

     [,1] [,2]
[1,]    1    3
[2,]    2    2
© www.soinside.com 2019 - 2024. All rights reserved.