Popular Posts
Enable SSL connection for Jsoup import org.jsoup.Connection; import org.jsoup.Jsoup; import javax.net.ssl.*; import java.io.IOException; import java.security.KeyManagement... Dump MySQL & restore $ mysqldump -u root -x --all-databases > dump.sql $ mysqldump -u root データベース名 > dump.sql $ mysql -u root -p $ mysql -u root データベ... Create barcode import java.io.File; import java.io.FileNotFoundException; import net.sourceforge.barbecue.Barcode; import net.sourceforge.barbecue.Barcode...
Stats
Permutation
package bruce.math;

import java.math.BigDecimal;

public class Permutation {
    public static BigDecimal H(int n, int m) throws IllegalArgumentException {
        return C(n + m - 1, m);
    }

    public static BigDecimal P(int n, int m) throws IllegalArgumentException {
        return C(n, m).multiply(factorial(m));
    }

    public static BigDecimal C(int n, int m) throws IllegalArgumentException {
        if (n < m)
            throw new IllegalArgumentException("n must great equal than m.");
        return factorial(n).divide(factorial(n - m).multiply(factorial(m)));
    }

    public static BigDecimal factorial(int num) throws IllegalArgumentException {
        if (num < 0)
            throw new IllegalArgumentException("num must great than zero.");
        return num <= 1 ? new BigDecimal(1) : factorial(num - 1).multiply(new BigDecimal(num));
    }
}