R中的排列组合,阶乘的计算

2011-06-02 10:04 · friendpine

参考了网上的一些资料,得到了下面的一些函数可以做这些事。 组合数的计算:从N中选择K个用函数 choose(N,K)

参考了网上的一些资料,得到了下面的一些函数可以做这些事。

组合数的计算:从N中选择K个用函数 choose(N,K)

阶乘的计算有三种方法:

1)factorial(N),最快的方法

2) prod(1:N),最慢的方法

3) gamma(N+1),也是非常快的算法

可以看下面的一个测试:

> system.time(replicate(10000000,gamma(101)))

  用户   系统   流逝

45.271  0.484 45.754

> system.time(replicate(10000000,factorial(100)))

  用户   系统   流逝

43.443  0.336 43.808

> system.time(replicate(10000000,prod(1:100)))

  用户   系统   流逝

58.404  0.604 59.035

有了组合的计算和阶乘的计算方法,排列数的计算就简单了,P(N,K)=choose(N,K) * factorial(K)

参考自统计之都论坛 https://cos.name/cn/topic/8522

4)abline(coef=c(a,b)),a,b分别是intercept和slope

关键词: