使用R的划分和置换

使用R的划分和置换,r,combinations,permutation,combinatorics,partition,R,Combinations,Permutation,Combinatorics,Partition,我正在尝试使用R将m的所有可能分区(包括0)查找为N个部分。然后,我希望在不替换和不重复的情况下排列每个结果 例如,对于M=4和N=2,我想得到: [1,] 4 3 2 0 1 [2,] 0 1 2 4 3 现在,我可以得到: [1,] 4 3 2 [2,] 0 1 2 使用partitions::restrictedparts(4,2,include.zero=TRUE)。我该如何继续 为了给这个问题提供一些背景知识,我实际上是在尝试寻找滚动模具60次后,每边出现次数的所有可能结果。在您

我正在尝试使用R将m的所有可能分区(包括0)查找为N个部分。然后,我希望在不替换和不重复的情况下排列每个结果

例如,对于M=4和N=2,我想得到:

[1,] 4 3 2 0 1
[2,] 0 1 2 4 3 
现在,我可以得到:

[1,] 4 3 2
[2,] 0 1 2
使用
partitions::restrictedparts(4,2,include.zero=TRUE)
。我该如何继续


为了给这个问题提供一些背景知识,我实际上是在尝试寻找滚动模具60次后,每边出现次数的所有可能结果。

在您当前使用的软件包中有一个函数(即
分区
),它正好满足您的需要。它被恰当地称为
组合
(有关更多信息,请参阅)

现在,为了解决您的实际问题,我们有:

myParts <- partitions::compositions(60, 6)  ## Note that include.zero is TRUE by default

dim(myParts)
[1]       6 8259888

myParts有帮助:
vapply(1:60,函数(x)样本(1:6,1),1)
?,我可能再次误解了你的问题。同样对于你的第一个案例,我无法将骰子问题与第一个案例联系起来,你可以这样做
e这给出了一组实验的结果,但我想知道所有可能的结果@PKumar@dis,请你再详细说明一下,你所说的所有可能的结果是什么意思?第一种情况更像是把一枚硬币掷4次,然后找出所有可能的正面和反面出现次数的组合@普库马尔
myParts <- partitions::compositions(60, 6)  ## Note that include.zero is TRUE by default

dim(myParts)
[1]       6 8259888
transMat <- t(as.matrix(myParts))
head(transMat)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   60    0    0    0    0    0
[2,]   59    1    0    0    0    0
[3,]   58    2    0    0    0    0
[4,]   57    3    0    0    0    0
[5,]   56    4    0    0    0    0
[6,]   55    5    0    0    0    0

tail(transMat)
           [,1] [,2] [,3] [,4] [,5] [,6]
[8259883,]    1    0    0    0    0   59
[8259884,]    0    1    0    0    0   59
[8259885,]    0    0    1    0    0   59
[8259886,]    0    0    0    1    0   59
[8259887,]    0    0    0    0    1   59
[8259888,]    0    0    0    0    0   60