【发布时间】:2021-06-23 22:22:35
【问题描述】:
我有一个n*n 矩阵,我需要从每一行中取出 1 个元素并将它们加在一起。我需要对所有可能的组合执行此操作,并找到最小的行和列索引。考虑以下示例:
set.seed(1)
n <- 9
A <- matrix(round(runif(n, min = 0, max = 9)), nrow = sqrt(n), ncol = sqrt(n))
> A
[,1] [,2] [,3]
[1,] 2 7 4
[2,] 1 1 7
[3,] 8 4 3
因此这里有 27 种可能的组合:
2+1+8 = 11
2+1+4 = 7
2+1+3 = 6
.
.
4+7+3 = 14
因此最小值的预期结果是 6,产生最小结果的索引是 (1,1),(2,1),(3,3) 和 (1,1),(2,2),(3,3)
如您所见,解决方案搜索空间将随着n 的增加而爆炸式增长。你能推荐一个快速的方法来编写这个例程吗?
【问题讨论】:
标签: r combinations permutation combinatorics