R语言实践:排列与组合

组合数:choose(n, k)
注意:从n个中选出k个
阶乘(k!):factorial(k)
排列数:choose(n, k) * factorial(k)
幂 : ^
余数: %%
整数商:%/%

==
combn(x,n) -- 列出所有组合数矩阵
t(combn(x,n)) -- 将结果转置,每行内容就是组合数


> x <- 1:6
> x
[1] 1 2 3 4 5 6
> n <- 3
> combn(x,n)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,]    1    1    1    1    1    1    1    1    1     1     2     2     2     2     2     2     3     3     3     4
[2,]    2    2    2    2    3    3    3    4    4     5     3     3     3     4     4     5     4     4     5     5
[3,]    3    4    5    6    4    5    6    5    6     6     4     5     6     5     6     6     5     6     6     6
> m <- t(combn(x,n))
> m
      [,1] [,2] [,3]
 [1,]    1    2    3
 [2,]    1    2    4
 [3,]    1    2    5
 [4,]    1    2    6
 [5,]    1    3    4
 [6,]    1    3    5
 [7,]    1    3    6
 [8,]    1    4    5
 [9,]    1    4    6
[10,]    1    5    6
[11,]    2    3    4
[12,]    2    3    5
[13,]    2    3    6
[14,]    2    4    5
[15,]    2    4    6
[16,]    2    5    6
[17,]    3    4    5
[18,]    3    4    6
[19,]    3    5    6
[20,]    4    5    6


转载自:https://site.douban.com/167315/widget/notes/10872119/note/333609706/


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值