一道算法题的解法,不知对错

在别人的博客发现这样一道题: http://www.cnblogs.com/guoyaohua/p/8711911.html

 

 

 

我的思路是这样的:  

   如果  N < K  ,  方案数为0 ,  因为不满足每种至少一个的要求

   如果  N = K  ,  方案数为 k! ,  k的阶乘

   如果  N > K  ,  比如 N 比 K 大 1 , 那么除了必须满足的每种一个的要求 , 还多了一个自由位置, 这个位置可以有 k 种可能。

                                        N 比 K 大 2 , 多了2个自由位置, 这2个位置可以有 k*k 种可能。  

                                        N 比 K 大 3 , 多了3个自由位置, 这3个位置可以有 k*k*k 种可能。  

 

  所以, 把总的排列法 分为2个集合, 1个集合是必须满足的每种一个的要求 , k! 种可能

                   1个集合是除此之外的自由位置排列 , k^(N-k) 种可能

 

  

  那么,总的排列方法就是 :  K! *   k^(N-k)   :   这里存疑, 不知道对还是不对 

 

 

 

 

 

  

posted on 2018-04-04 17:27  齐文宣  阅读(176)  评论(0编辑  收藏  举报

导航