是這樣的
從0~9,a~z這36個字元中隨機抽取3個數,計算有多少種排列組合的方法
求大神指教
回複討論(解決方案)
36*36*36=46656
36*36*36
算了 自己寫出來了
/** * 排列組合演算法 * C($n,$m) * $n 元素的個數 * $m 從$n中取出的元素個數 * $num 組合情況的總數 **/function get_combination($n,$m) {if ((is_int($n) && is_int($m)) && ($m<=$n)){$a = 1;//初始化for ($i=1;$i<=$m;$i++){$a = $n*$a;$b = 1*$i;$n--;}$num = $a/$b;return $num;}}
組合公式:c(n,m)=p(n,m)/m!=n!/((n-m)!*m!)
您認為您算的對嗎?
組合公式:c(n,m)=p(n,m)/m!=n!/((n-m)!*m!)
您認為您算的對嗎?
你可以試試
36*35*34
按組合公式算出的是 7140
比你少一半
組合公式:c(n,m)=p(n,m)/m!=n!/((n-m)!*m!)
您認為您算的對嗎?
你可以試試
echo get_combination(3,3);
輸出 2
怎麼也是不對的
echo get_combination(3,3);
輸出 2
怎麼也是不對的
恩 剛看了下也是
你寫的公式也是有錯誤
如果按你的公式
從2個數裡提出兩個數來排列 就等於1
對
從2個數裡提出兩個數來 組合 就是 1
排列 才是 2
p(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!(規定0!=1).
補充以下 這3個數可以相同
比如從數組(1,2)裡提取隨機兩個數來組合 可以是
11
22
12
21
對
從2個數裡提出兩個數來 組合 就是 1
排列 才是 2
p(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!(規定0!=1).
好了 自己把自己繞進去了
n^m就OK了
謝謝了
一直糾結排列組合去了