Java中的置换和组合

置换和组合是组合学的一部分。置换是一组元素可以进行的不同安排,如果一次使用一个元素,一次使用某个元素,或者一次使用全部元素。如果一次选择一个元素,一次选择一些元素或一次全部选择元素,则组合是选择元素的不同方式。

一个例子如下:

Permutation = factorial(n) / factorial(n-r);
Combination = factorial(n) / (factorial(r) * factorial(n-r));
n = 5
r = 3
Permutation = 60
Combination = 10

演示此的程序如下所示-

示例

public class Example {
   static int factorial(int n) {
      int fact = 1;
      int i = 1;
      while(i <= n) {
         fact *= i;
         i++;
      }
      return fact;
   }
   public static void main(String args[]) {
      int n = 7, r = 3, comb, per;
      per = factorial(n) / factorial(n-r);
      System.out.println("Permutation: " + per);
      comb = factorial(n) / (factorial(r) * factorial(n-r));
      System.out.println("Combination: " + comb);
   }
}

上面程序的输出如下-

输出结果

Permutation: 210
Combination: 35

现在让我们了解上面的程序。

函数阶乘使用while循环查找数字n的阶乘。然后它返回事实。证明这一点的代码片段如下所示-

static int factorial(int n) {
   int fact = 1;
   int i = 1;
   while(i <= n) {
      fact *= i;
      i++;
   }
   return fact;
}

在函数中main(),使用各自的公式找到n和r的置换和组合。然后显示结果。证明这一点的代码片段如下所示-

public static void main(String args[]) {
   int n = 7, r = 3, comb, per;
   per = factorial(n) / factorial(n-r);
   System.out.println("Permutation: " + per);
   comb = factorial(n) / (factorial(r) * factorial(n-r));
   System.out.println("Combination: " + comb);
}