在 R 循环中查找选择(k,n)中的组合

Posted

技术标签:

【中文标题】在 R 循环中查找选择(k,n)中的组合【英文标题】:Find combinations in choose(k, n) in a R loop 【发布时间】:2022-01-17 07:38:55 【问题描述】:

我需要找到一组中所有可能组合的总和。例如:

sum(choose(5, 0),

    choose(5, 1),

    choose(5, 2),

    choose(5, 3),

    choose(5, 4),

    choose(5, 5))

可以使用 for 循环来循环使用任何给定的 nk,而不是这样写出来?

【问题讨论】:

choose() 是矢量化的,所以你可以只做sum(choose(5, 0:5)) 【参考方案1】:

如果您想为多个n 执行此操作,您可以使用sapply

setNames( sapply( 1:10, function(x) sum( choose( x, 0:x ) ) ), 1:10 )
   1    2    3    4    5    6    7    8    9   10 
   2    4    8   16   32   64  128  256  512 1024

或者使用for 循环

res <- vector(l=10)
for(i in 1:10) res[i] <- sum( choose( i, 0:i ) ) 
res
 [1]    2    4    8   16   32   64  128  256  512 1024

【讨论】:

【参考方案2】:

你可以使用

> sum(choose(5, 0:5))
[1] 32

或者只是申请binomial sums

> 2^5
[1] 32

【讨论】:

以上是关于在 R 循环中查找选择(k,n)中的组合的主要内容,如果未能解决你的问题,请参考以下文章

从 C 中的递归函数中枚举并返回从二维数组中的 n 项中选择 k 的所有组合

编写一个循环来选择变量值的所有组合,在 R 中生成正方程值

编程算法,java,组合:求出n个数中取出k个数的组合,编程终于成功了!!!!需要的自己参考一下哈,哈哈

如何在 Spark .NET 中执行分布式组合(N 选择 K)?

n中的k个组合[重复]

HDU4045-第二类斯特林数