代码之家  ›  专栏  ›  技术社区  ›  Mark

r中整数n的k-排列[重复]

  •  -1
  • Mark  · 技术社区  · 7 年前

    这个问题已经有了答案:

    功能

    permutations(n)
    

    从程序包 e1071 ,返回一个包含整数1:n的所有排列的矩阵(每行一个排列)。例如:

    > permutations(3)
          [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    2    1    3
    [3,]    2    3    1
    [4,]    1    3    2
    [5,]    3    1    2
    [6,]    3    2    1
    

    排列一词的较弱含义表示那些有序排列,其中没有元素出现超过一次,但不需要使用给定集合中的所有元素。我特别考虑的是,从给定的n大小集合中取一个固定长度k的元素的排列,换句话说:n的k排列。

    如何获得一个包含整数1:n的所有k-排列的矩阵(每行一个排列)?

    2 回复  |  直到 7 年前
        1
  •  3
  •   SatZ    7 年前

    permutations gtools e1071

    对于您的案例,您可以使用

    library(gtools)
    gtools::permutations(n,k)
    

    来自

    gtools::permutations(3,2)

    permutations(3,2)
    
             [,1] [,2]
        [1,]    1    2
        [2,]    1    3
        [3,]    2    1
        [4,]    2    3
        [5,]    3    1
        [6,]    3    2
    
        2
  •  2
  •   Stéphane Laurent    7 年前

    arrangements 包裹。之后 some benchmarks

    > library(arrangements)
    > permutations(3,2)
         [,1] [,2]
    [1,]    1    2
    [2,]    1    3
    [3,]    2    1
    [4,]    2    3
    [5,]    3    1
    [6,]    3    2