public class MathUtil
extends java.lang.Object
构造器和说明 |
---|
MathUtil() |
限定符和类型 | 方法和说明 |
---|---|
static long |
combination(int n,
int m)
对数学公式C(n,m)的计算实现
参考公式C(n,m) = n!
|
static long |
factorial(int num)
整数阶乘
参考公式 n!
|
static long |
permutation(int n,
int m)
对数学公式P(n,m)的计算实现,P(n,m)又称为A(n,m)
参考公式P(n,m) = n!
|
public static long factorial(int num) throws java.lang.IllegalArgumentException
参考公式 n! = n * (n-1) * (n-2) * ... * 1,num
作为参数计算获取结果
注意1:返回值类型为long,本方法在参数num
大于一定值(约20)后就会溢出
特别地,数字0的阶乘是1
num
- 入参数字java.lang.IllegalArgumentException
- when num < 0public static long permutation(int n, int m) throws java.lang.IllegalArgumentException
参考公式P(n,m) = n! / (n-m)!
注意1:返回值类型为long,本方法在超出long类型结果时会溢出
特别地,当 m
和 n
同时为0时,结果为1
n
- 参数1,元素的总个数m
- 参数2,参与排序的元素个数java.lang.IllegalArgumentException
- when n < m or m < 0public static long combination(int n, int m) throws java.lang.IllegalArgumentException
参考公式C(n,m) = n! / ((n-m)! * m!)
注意1:返回值类型为long,本方法在超出long类型结果时会溢出
特别地,当 n
为0时,结果
n
- 参数1,元素的总个数m
- 参数2,参与组合的元素个数java.lang.IllegalArgumentException
- when n < m or m < 0