此篇只是將以前數學課排列組合的公式寫成小函式,基本上沒什麼太大的功用,因為通常我們想要的是列出組合,而不是計算總共有多少組合數
//************************************************* // 函式名稱:完全相異物直線排列的組合數 // 功能說明: // 從 N 個不同事物中,任取 M 個排成一列的排列數的組合數 //************************************************* function P(n,m){ return (factorial(n)/factorial(n-m)); }
//************************************************* // 函式名稱:相異物的組合數 // 功能說明: // 從 N 個不同物件中,不重複且不計其前後次序 // 取 M個物件為一組的組合數 //************************************************* function C(n,m){ return P(n,m)/factorial(m); }
//************************************************* // 函式名稱:重複組合的組合數 // 功能說明: // 從N類相異物中任取R個為一組,每類個數均不小於R // 且可重複取,此組合為N中取R之重複組合 //************************************************* function H(n,r){ return C((r+n-1),(n-1)); }
注意以上函式會使用到之前所寫的階乘函式如下:
//************************************************* // 函式名稱:階乘函式 // 功能說明:5! = 5 * 4 * 3 * 2 * 1 = echelon(5) //************************************************* function factorial(n){ if(n == 1 || n == 0 ) { return 1; } else { return n * factorial(n - 1); } }
全站熱搜
留言列表