函数choose(n,k)
告诉我们在n个不同元素的集合中,有多少个大小为k的子集。假设我需要实际列出这些子集,我该如何创建它?换句话说,我正在寻找一个接受向量x
(长度为n
)和数字k
的函数,并返回一个向量列表,每个向量的大小为k
,其中包含x的子集。列表的长度应该是choose(length(x),k)
。例如:
enum.choose = function(x,k) {
# implementation should go here
{
enum.choose(1:3,2)
# should be:
# [[1]]
# 1 2
# [[2]]
# 1 3
# [[3]]
# 2 3
combn(1:3, 2)
的意思是从1到3中取出两个数进行组合。请查看? combn
获取详细文档。 - Ramnath