..或做我必須給是否有一個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