/**
* 组合
*
* @param n 总数
* @param m 选择个数
* @return 组合数
*/
public static int c(int n, int m) {
return a(n, m) / j(m);
}
/**
* 排列
*
* @param n 总数
* @param m 选择数
* @return 排列数
*/
public static int a(int n, int m) {
return j(n) / j(n - m);
}
/**
* 阶乘
*
* @param x x>=1的正整数
* @return 阶乘结果
*/
public static int j(int x) {
if (x <= 0) x = 1;
int sum = 1;
while (x != 1) {
sum *= x;
x--;
}
return sum;
}