9

..或者我必须给

P.nk <- factorial(n) / factorial(n-k)

或者

P.nk <- choose(n,k) * factorial(k)

谢谢你。

4

4 回答 4

11

我不知道任何现有的功能。您的第一个建议将因 n 大而失败。您的第二个想法在编写为函数时应该可以正常工作:

perm <- function(n,k){choose(n,k) * factorial(k)}

然后perm(500,2)将给出 249500 例如。

于 2010-05-20T09:04:48.510 回答
3

我认为gregmisc包提供了这些功能。

library(gregmisc)
permutations(n=4,r=4)

邮件列表参考: [R] 排列

于 2010-05-20T09:09:58.043 回答
2

签出nsamp(n,k,ordered=T)'prob'包

于 2010-05-20T09:20:31.170 回答
0

包裹gtools

# R version 3.5.3
install.packages("gtools")
library(gtools)

base::nrow(gtools::permutations(500,2))

结果:

[1] 249500

另请参阅combination-and-permutations-in-rpermutation_with_replacement.R

另一个包prob

base::ncol(prob::permsn(500,2))

[1] 249500

于 2019-06-04T03:06:38.410 回答