㈠ 排列組合A和C都有哪些計算方法
計算方法——
(1)排列數公式
排列用符號A(n,m)表示,m≦n。
計算公式是:A(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!
此外規定0!=1,n!表示n(n-1)(n-2)…1
例如:6!=6x5x4x3x2x1=720,4!=4x3x2x1=24。
(2)組合數公式
組合用符號C(n,m)表示,m≦n。
公式是:C(n,m)=A(n,m)/m!或C(n,m)=C(n,n-m)。
例如:C(5,2)=A(5,2)/[2!x(5-2)!]=(1x2x3x4x5)/[2x(1x2x3)]=10。
(1)全排列組合演算法擴展閱讀:
排列有兩種定義,但計算方法只有一種,凡是符合這兩種定義的都用這種方法計算;定義的前提條件是m≦n,m與n均為自然數。
(1)從n個不同元素中,任取m個元素按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的一個排列。
(2)從n個不同元素中,取出m個元素的所有排列的個數,叫做從n個不同元素中取出m個元素的排列數。
㈡ 排列組合的演算法和階乘的公式
從5個不同的小球里任取三個,共有多少種取法?
屬於組合問題,C(3,5)=(5*4*3)/(3*2*1)=10種
從數字1、2、3、4、5中任取三個數組成一個新的三位數,共可組成多少個不同的三位數?
屬於排列問題,方法一,P(3,5)=5*4*3=60個
方法二,C(3,5)*P(3,3)=10*6=60個
「!」表示階乘,5!=5*4*3*2*1=120,3!=3*2*1=6
㈢ 排列組合公式具體展開演算法
暈.....
C24=4*3/2!=6
P24=4*3=12
Cnm=m*(m-1)...(m-n+1)/m!
Pnm=m*(m-1)...(m-n+1)
㈣ 全排列演算法(摻雜了遞歸)理解不了,幫忙看看
解釋:
int p[]; // 用來存放參與排列組合的數據的數組(有效元素下標從 1 到 n)
int n; // 參與排列組合的數據的個數
void perm(int m){……}
// 用來進行局部排列組合的函數
// 其中的 m 表示本輪局部排列組合的起點,即,將數組中 m 到 n 的元素進行排列組合
// 但是如果 m==n 則表示已經完成了一個排列組合,所以輸出一個排列組合結果。
程序注釋:
voidperm(intm){
intj,temp;//j循環中要處理的元素下標,temp交換數據時要用到的臨時變數
if(m==n)//如果需要進行局部排列組合的數據就只是最後一個數據
{
//那麼不需要再進行局部排列組合了,
//直接輸出數組中的所有數據,得到了一個排列結果。
for(j=1;j<=n;j++)
printf("%d",p[j]);//輸出每一個數據
printf(" ");//追加一個換行符
return;//本輪局部排列組合結束
}
//保持m號元素之前的數據不變,
//將m到n的元素進行局部排列組合。
for(j=m;j<=n;j++)
{
temp=p[m];p[m]=p[j];p[j]=temp;//將m到n的元素逐個交換到m位置上
perm(m+1);//再對m之後的部分進行局部排列組合。
temp=p[m];p[m]=p[j];p[j]=temp;//把以前在m位置上的數據交換回來
}
}
比如要對 1,2,3,4,5 進行全排列組合
先從 1,2,3,4,5 中,每次選出一個作為第一個數
然後再從其餘的數字中,每次選出一個作為第二個數
然後再從其餘的數字中,每次選出一個作為第三個數
然後再從其餘的數字中,每次選出一個作為第四個數
再將最後剩下的數據作為第五個數
㈤ 求排列組合公式及演算法
如果只能按順序排列
1.不重復
C(6,4)=C(6,2)=15
2.
有一個可重復C(6,1)*C(6,3)=120
這樣的組合一共有15+120=135種
如果可以亂順序排列
1.不重復
A(6,4)=360
2.
有一個可重復A(6,1)*A(6,3)=720
這樣的組合一共有360+720=1080種
㈥ 求全排列組合演算法的VB源代碼
'1、全排列
P(n)=N!
自定義函數PL:
Function
PL(byval
N
as
integer)
PL=1:i=1
do
while
i<=N
PL=PL*i
loop
End
Fuction
'2、組合
ZH(N,K)=N!/(N-K)!/K!
的自定義函數,從N個種取K個的組合數:
Function
ZH(Byval
N
as
integer,K
as
INteger)
'
調用了上面的排列函數
PL
ZH=PL(N)/PL(N-K)/PL(K)
End
Function
㈦ 求排列組合總個數的演算法
排列:從n個不同元素中,任取m(m≤n)個元素,按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的一個排列.
組合:從n個不同元素中,任取m(m≤n)個元素並成一組,叫做從 n個不同元素中取出m個元素的一個組合.
如果是排列的話,就是說要考慮先後順序 A4 (3是上標) =24
如果是組合的話,不考慮先後順序, C4(3 上標 )=4種方法
你這屬於考慮先後順序的 排列
㈧ 排列組合公式及演算法
P(m,n)=n*(n-1)(n-2)...(n-m+1)=n!/(n-m)!【n個元素中,取m個的排列】
C(m,n)=P(m,n)/P(m,m)=n(n-1)(n-2)...(n-m+1)/m!
=n!/[(n-m)!*m!].【n個元素中取m個元素的組合】
滿意請把我列為最佳答案~~~~