Существует ли функция R для получения числа перестановок из n объектов, принимающих k P (n, k)? - PullRequest
7 голосов
/ 20 мая 2010

.. или я должен дать

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

или

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

Спасибо.

Ответы [ 4 ]

10 голосов
/ 20 мая 2010

Я не знаю ни одной существующей функции. Ваше первое предложение потерпит неудачу при большом n. Ваша вторая идея должна хорошо работать, когда написана как функция:

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

Тогда perm(500,2) даст, например, 249500.

3 голосов
/ 20 мая 2010

Я думаю, что пакет gregmisc обеспечивает эти функции.

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

Ссылка на список рассылки: [R] перестановка

2 голосов
/ 20 мая 2010

Проверьте nsamp(n,k,ordered=T) в пакете 'prob'

0 голосов
/ 04 июня 2019

пакет gtools

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

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

результат:

[1] 249500

также см. комбинации и перестановки в r , permutation_with_replacement.R

другой пакет prob:

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

[1] 249500

...