Java排列組合代碼

/**
     * 組合
     *
     * @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;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章