列出从 m 中抽取 n 个带替换的数字的所有方法 < n values in R

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

在模拟研究中,我需要生成所有不同的方法来生成 1 到 n (n>m) 之间的 m 数字序列,使得数字之和为 n,即

nums <- c(n_1, n_2, ..., n_m)

有限制

min(num) > 0 & sum(nums) == n

换句话说:一组 n 元素可能划分为 m 不同的子集。我知道这种分区的数量是“第二类斯特林数”,这对于大 n 来说是不可行的,但对于小 n 我需要它。

r combinatorics
1个回答
1
投票

partitions 包 (GitHub) 中,

partitions::compositions(n, m, include.zero)
应该可以解决问题。这里,
n
代表每个向量的总和,
m
代表该向量的元素数量,
include.zero=FALSE
确保没有零。

partitions::compositions(n=5, m=2, include.zero=FALSE) |> t()
# [1,] 4 1
# [2,] 3 2
# [3,] 2 3
# [4,] 1 4
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.