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