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
现在我们了解一下上述程序。
函数 factorial 使用 while 循环查找数字 n 的阶乘。然后它返回 fact。演示这一点的代码段如下 −
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);
}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP