参考了网上的一些资料,得到了下面的一些函数可以做这些事。
组合数的计算:从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://blog.sciencenet.cn/blog-54276-450738.html
上一篇:
对于bootstrap的一些粗浅认识-2下一篇:
《Linear models with R 》学习笔记之一