首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有效地找到nPr (排列)?

如何有效地找到nPr (排列)?
EN

Stack Overflow用户
提问于 2013-08-09 19:01:13
回答 1查看 3.2K关注 0票数 4

还有比使用基本公式n!/(N)更好的方法吗?nCr (组合)nCr=(NCr)Cr+ (n-1)C(r-1)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 20:56:39

这个怎么样:nPr = (n−1)Pr + (n−1)P(r−1)⋅r

基本原理: nPr表示从n中选择r元素的方式数,同时注意它们的顺序而不将它们放回。在上面的递归中,我区分了两种情况。或者您不选择n_th元素,在这种情况下,您将从一组(n−1)中选择所有的_r元素。或者您也将选择n_th元素,在这种情况下,您将从一组(n−1)中选择另一个(r−1)元素,并且在选择_n_th元素的顺序上存在_r可能性。

此外,还请注意,您可以避免使用这两个阶乘,只在差异上使用该产品:

代码语言:javascript
复制
  n
─┬──┬─       n!
 │  │   i = ──── = (n−r+1)⋅(n−r+2)⋅…⋅(n−1)⋅n = nPr
 │  │        r!
i=n−r+1

这导致了另一个递归公式:nPr = (n−1)P(r−1)⋅n

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18153810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档