r - 从 n 中选择 k 个不同且递增的索引

标签 r algorithm sum combinations

考虑下图中的公式,其中j和n是固定整数。很明显,n 不能很大。我正在考虑使用 n=10。关键特征是从 n 中找出所有不同的 j 管 (i_1 < ... < i_j)。请问在 R 中有没有一种简单的方法可以实现这一点?有人可以帮我吗? photo

最佳答案

这只是 combinations ,从 n 中选择 j 而不考虑顺序。当然,组合元素到i1ij的映射需要对它们进行排序(为了满足约束 i1 < … <ij),但这实际上是 combn() 返回的方式默认结果:

jtubes <- function(j,n) combn(n,j);
jtubes(3,5);
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,]    1    1    1    1    1    1    2    2    2     3
## [2,]    2    2    2    3    3    4    3    3    4     4
## [3,]    3    4    5    4    5    5    4    5    5     5

combn() 将结果作为每列一个组合的矩阵返回,但您可以通过一次调用 t() 将其更改为每行。

关于r - 从 n 中选择 k 个不同且递增的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828567/

相关文章:

java - 数组的总和和平均值

r - 在 R Shiny 中使用 TableTools for DataTables for renderDataTable

c++ - 在 Rcpp 中生成整数样本

r - 与 dplyr 中的 starts_with() 相反

java - 无法通过在线判断中的所有测试用例

php - PHP 表中的总和列

c - 如何制作数组 1*x 并对它的数字求和?

r - 在 R 中安装 RWeka 包时出错

algorithm - 为什么插入排序 Θ(n^2) 在一般情况下?

algorithm - 从两组中各取一个元素