在Java中,可以使用数学库或自己实现组合数公式来计算排列和组合问题的解。下面是使用库的示例代码,需要导入Apache Commons Math库:
import org.apache.commons.math3.util.CombinatoricsUtils;
public class PermutationCombination {
public static void main(String[] args) {
int n = 5; // 元素总数
int r = 3; // 取出的元素数
// 排列数量
long permutation = CombinatoricsUtils.factorial(n) / CombinatoricsUtils.factorial(n - r);
System.out.println("Permutation: " + permutation);
// 组合数量
long combination = CombinatoricsUtils.binomialCoefficient(n, r);
System.out.println("Combination: " + combination);
}
}
如果不使用库,可以自己实现组合数公式,下面是示例代码:
public class PermutationCombination {
public static void main(String[] args) {
int n = 5; // 元素总数
int r = 3; // 取出的元素数
// 排列数量
long permutation = 1;
for (int i = 0; i < r; i++) {
permutation *= n - i;
}
System.out.println("Permutation: " + permutation);
// 组合数量
long combination = 1;
for (int i = 0; i < r; i++) {
combination *= n - i;
combination /= i + 1;
}
System.out.println("Combination: " + combination);
}
}