Permutation

优质
小牛编辑
130浏览
2023-12-01

置换是指以某种方式排列或排序集合成员的方式的数量。 从n个元素中排列k个元素的排列公式是 -

n P k = n!/(n - k)!

算法 (Algorithm)

该算法仅关注排列而不考虑阶乘的细节 -

START
   Step 1 → Define values for n and r
   Step 2 → Calculate factorial of n and (n-r)
   Step 3 → Divide factorial(n) by factorial(n-r)
   Step 4 → Display result as permutation
STOP

伪代码 (Pseudocode)

这个算法可以简单地导出到下面给出的伪代码中 -

procedure permutation()
   Define n and r
   P = factorial(n)/factorial(n-r)
   DISPLAY P 
end procedure

实现 (Implementation)

该算法的实现如下 -

#include <stdio.h>
int factorial(int n) {
   int f;
   for(f = 1; n > 1; n--)
      f *= n;
   return f;
}
int npr(int n,int r) {
   return factorial(n)/factorial(n-r);
}
int main() {
   int n, r;
   n = 4;
   r = 3;
   printf("%dp%d = %d \n", n, r, npr(n,r));
   return 0;
}

输出 (Output)

该方案的产出应该是 -

4p3 = 24