..或做我必须给是否有一个R函数来获取n个对象的排列数k p(n,k)?
P.nk <- factorial(n)/factorial(n-k)
或
P.nk <- choose(n,k) * factorial(k)
谢谢。
..或做我必须给是否有一个R函数来获取n个对象的排列数k p(n,k)?
P.nk <- factorial(n)/factorial(n-k)
或
P.nk <- choose(n,k) * factorial(k)
谢谢。
我不知道任何现有的功能。你的第一个建议会失败,大n。当作为一个函数写你的第二个想法应该工作正常:
perm <- function(n,k){choose(n,k) * factorial(k)}
然后perm(500,2)
会给249500为例。
第一个建议可以改写为exp(lfactorial(n) - lfactorial(n-k))'。但我也会用。 – Marek 2010-05-20 10:31:27
实际上,所要求的将是:dim(permutations(n,k))[1] – 2010-05-20 09:18:15
在“概率”包退房nsamp(n,k,ordered=T)
'nsamp(500,2,ordered = TRUE)'在Rob回答中遇到问题状态('value out of range') 。 – Marek 2010-05-20 10:28:01
正如其他人所说,存在gregmisc直线排列功能(在新的解析gregmisc包gtools) 。但是,我发现的那个和所有其他包函数实际上是用于生成排列,而不仅仅是给出排列的总数。因此,他们往往是缓慢的。 我以前曾基准过这样的功能。这里的选项2是最快的,比我发现的任何包函数快得多。与第一个选项相比,它的计算上限也更高。 – John 2010-05-20 15:20:27
感谢您的有用信息 – Brani 2010-05-21 06:39:36