當前位置:首頁 » 操作系統 » 組合m選n演算法

組合m選n演算法

發布時間: 2022-05-06 23:22:12

㈠ 數n個數,m個數為一組,有多少個不同的組合方式

典型的排列組合問題。
考慮m個數排列次序不同算一種的,叫排列。
從n個不同元素中,任取m(m≤n)個元素按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的一個排列;從n個不同元素中取出m(m≤n)個元素的所有排列的個數,叫做從n個不同元素中取出m個元素的排列數,用符號 p(n,m)表示。 p(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)!(規定0!=1)
不考慮m個數排列次序的,叫組合。
組合數公式是指從n個不同元素中,任取m(m≤n)個元素並成一組,叫做從n個不同元素中取出m個元素的一個組合;從n個不同元素中取出m(m≤n)個元素的所有組合的個數,叫做n個不同元素中取出m個元素的組合數。用符號c(m,n) 表示。c(m,n)=p(m,n)/n!
註:n!是一種計算方法,叫階乘。以3!為例,3!=3*2*1。特別的,當n=0時,0!=1。

㈡ m個數,得到各種組合,每種組合數大於1,有什麼好演算法

向左轉|向右轉
其中:m≥n
組合的公式,即在m個數中選出n個數進行組合,組合不分前後順序,而排列就不同,用A表示。
題目說:每種組合數大於1
則,n>1
公式中:!(感嘆號)表示階乘
【舉例:5!=5*4*3*2*1】

㈢ 從M個數中取N個數的組合的計算公式是什麼

m!/(n!*(m-n)!)

㈣ 不用遞歸編寫函數計算從m選n的組合數

不用遞歸就用循環。從m選n的組合數為((m-n+1)/1)((m-n+2)/2)...(m/n),可以保存p,每次都讓p乘(m-n+i)/i,i從1循環到n就得到了結果。注意((m-n+1)/1)...((m-n+i)/i)是從m-n+i選i的組合數,是一個整數,因此我們只需要用整形變數存儲p,且得到的是精確值。

以下是樣例C++程序:

unsignedcomb(unsignedm,unsignedn)
{
unsignedp=1;
for(unsignedi=1,j=m-n+1;i<=n;++i,++j){
p*=j;
p/=i;
}
returnp;
}

㈤ 從m個數中選n個數,有多少種組合

#include <stdio.h>

#include <stdlib.h>

long int fac(int x) //定義階乘函數

{

int i;

long int s = 1;

for(i=1;i<=x;i++)

s *= i;

return s;

}

int main( ) //主函數

{

int m, n;

printf("輸入m和n(m≤10,n≤m): ");

scanf("%d %d",&m, &n);

printf("C(m,n)=%ld ",fac(m)/(fac(m-n)*fac(n)));

system("pause");

return 0;

}

(5)組合m選n演算法擴展閱讀:

C語言求排列組合結果總數

int sumzuhe(int N, int K)

{

if (K == 0)

return 1;

if (N == K)

return 1;

return sumzuhe(N - 1, K - 1) + sumzuhe(N - 1, K);

}

㈥ 組合計算公式是什麼

組合計算公式:c(n,m)=c(n-1,m-1)+c(n-1,m)。

等式左邊表示從n個元素中選取m個元素,而等式右邊表示這一個過程的另一種實現方法:任意選擇n中的某個備選元素為特殊元素,從n中選m個元素可以由此特殊元素的被包含與否分成兩類情況,即m個被選擇元素包含了特殊元素和m個被選擇元素不包含該特殊元素。

前者相當於從n-1個元素中選出m-1個元素的組合,即c(n-1,m-1);後者相當於從n-1個元素中選出m個元素的組合,即c(n-1,m)。

c(n,0)+c(n,1)+c(n,2)+……+c(n,n)=2的n次方。

其他排列與組合公式介紹:

從n個元素中取出r個元素的循環排列數=p(n,r)/r=n!/r(n-r),n個元素被分成k類,每類的個數分別是n1,n2,……nk這n個元素的全排列數為n!/(n1!*n2!*……*nk!)。

而k類元素來說,每類的個數無限,從中取出m個元素的組合數為c(m+k-1,m),排列(Pnm(n為下標,m為上標))。

Pnm=n×(n-1)……(n-m+1);Pnm=n!/(n-m)!(註:!是階乘符號);Pnn(兩個n分別為上標和下標)=n!;0!=1;Pn1(n為下標1為上標)=n。

組合(Cnm(n為下標,m為上標)),Cnm=Pnm/Pmm;Cnm=n!/m!(n-m)!;Cnn(兩個n分別為上標和下標)=1;Cn1(n為下標1為上標)=n;Cnm=Cnn-m。

㈦ 排列組合的公式C(m,n),A(m,n)的公式是什麼怎麼計算

a(m,n)=c(m,n)*a(n,n)
a(m,n)是從m個不同元素中選n個元素的排列數(區分元素排列先後順序)
c(m,n)是從m個不同元素中選n個元素的組合數(不區分元素排列先後順序)
a(n,n)是n個元素全排列數(區分元素排列先後順序)。

㈧ M個數任選N個數(N<M)這樣的公式是什麼

你要找的是排列組合公式吧?找到了,還有例題,慢慢看,別心急。

1.加法原理和乘法原理
兩個原理是理解排列與組合的概念,推導排列數及組合數公式,分析和解決排列與組合的應用問題的基本原則和依據;完成一件事共有多少種不同方法,這是兩個原理所要回答的共同問題。而兩者的區別在於完成一件事可分幾類辦法和需要分幾個步驟。
例1.書架上放有3本不同的數學書,5本不同的語文書,6本不同的英語書。
(1)若從這些書中任取一本,有多少種不同的取法?
(2)若從這些書中取數學書、語文書、英語書各一本,有多少種不同的取法?
(3)若從這些書中取不同的科目的書兩本,有多少種不同的取法。
解:(1)由於從書架上任取一本書,就可以完成這件事,故應分類,由於有3種書,則分為3類然後依據加法原理,得到的取法種數是:3+5+6=14種。
(2)由於從書架上任取數學書、語文書、英語書各1本,需要分成3個步驟完成,據乘法原理,得到不同的取法種數是:3×5×6=90(種)。
(3)由於從書架上任取不同科目的書兩本,可以有3類情況(數語各1本,數英各1本,語英各1本)而在每一類情況中又需分2個步驟才能完成。故應依據加法與乘法兩個原理計算出共得到的不同的取法種數是:3×5+3×6+5×6=63(種)。
例2.已知兩個集合A={1,2,3},B={a,b,c,d,e},從A到B建立映射,問可建立多少個不同的映射?
分析:首先應明確本題中的「這件事是指映射,何謂映射?即對A中的每一個元素,在B中都有唯一的元素與之對應。」
因A中有3個元素,則必須將這3個元素都在B中找到家,這件事才完成。因此,應分3個步驟,當這三個步驟全進行完,一個映射就被建立了,據乘法原理,共可建立不同的映射數目為:5×5×5=53(種)。
2.排列數與組合數的兩個公式
排列數與組合數公式各有兩種形式,一是連乘積的形式,這種形式主要用於計算;二是階乘的形式,這種形式主要用於化簡與證明。
連乘積的形式 階乘形式
Anm=n(n-1)(n-2)……(n-m+1) =
Cnm=

例3.求證:Anm+mAnm-1=An+1m

證明:左邊=

∴ 等式成立。

評述:這是一個排列數等式的證明問題,選用階乘之商的形式,並利用階乘的性質:n!(n+1)=(n+1)!可使變形過程得以簡化。
例4.解方程.
解:原方程可化為:
解得x=3。

評述:解由排列數與組合數形式給出的方程時,在脫掉排列數與組合數的符號時,要注意把排列數與組合數定義中的取出元素與被取元素之間的關系以及它們都屬自然數的這重要限定寫在脫掉符號之前。
3.排列與組合的應用題
歷屆高考數學試題中,排列與組合部分的試題主要是應用問題。一般都附有某些限制條件;或是限定元素的選擇,或是限定元素的位置,這些應用問題的內容和情景是多種多樣的,而解決它們的方法還是有規律可循的。常用的方法有:一般方法和特殊方法兩種。
一般方法有:直接法和間接法。
(1)在直接法中又分為兩類,若問題可分為互斥各類,據加法原理,可用分類法;若問題考慮先後次序,據乘法原理,可用佔位法。
(2)間接法一般用於當問題的反面簡單明了,據A∪=I且A∩ = 的原理,採用排除的方法來獲得問題的解決。
特殊方法:
(1)特元特位:優先考慮有特殊要求的元素或位置後,再去考慮其它元素或位置。
(2)捆綁法:某些元素必須在一起的排列,用「捆綁法」,緊密結合粘成小組,組內外分別排列。
(3)插空法:某些元素必須不在一起的分離排列用「插空法」,不需分離的站好實位,在空位上進行排列。
(4)其它方法。
例5.7人排成一行,分別求出符合下列要求的不同排法的種數。
(1)甲排中間; (2)甲不排兩端;(3)甲,乙相鄰;
(4)甲在乙的左邊(不要求相鄰); (5)甲,乙,丙連排;
(6)甲,乙,丙兩兩不相鄰。
解:(1)甲排中間屬「特元特位」,優先安置,只有一種站法,其餘6人任意排列,故共有:1×=720種不同排法。
(2)甲不排兩端,亦屬於「特元特位」問題,優先安置甲在中間五個位置上任何一個位置則有種,其餘6人可任意排列有 種,故共有 · =3600種不同排法。
(3)甲、乙相鄰,屬於「捆綁法」,將甲、乙合為一個「元素」,連同其餘5人共6個元素任意排列,再由甲、乙組內排列,故共有 ·=1400種不同的排法。
(4)甲在乙的左邊。考慮在7人排成一行形成的所有排列 中:「甲在乙左邊」與「甲在乙右邊」的排法是一一對應的,在不要求相鄰時,各占所有排列的一半,故甲在乙的左邊的不同排法共有 =2520種。
(5)甲、乙、丙連排,亦屬於某些元素必須在一起的排列,利用「捆綁法」,先將甲、乙、丙合為一個「元素」,連同其餘4人共5個「元素」任意排列,現由甲、乙、丙交換位置,故共有· =720種不同排法。
(6)甲、乙、丙兩兩不相鄰,屬於某些元素必須不在一起的分離排列,用「插空法」,先將甲、乙、丙外的4人排成一行,形成左、右及每兩人之間的五個「空」。再將甲、乙、丙插入其中的三個「空」,故共有·=1440種不同的排法。
例6.用0,1,2,3,4,5這六個數字組成無重復數字的五位數,分別求出下列各類數的個數:
(1)奇數;(2)5的倍數;(3)比20300大的數;(4)不含數字0,且1,2不相鄰的數。
解:(1)奇數:要得到一個5位數的奇數,分成3步,第一步考慮個位必須是奇數,從1,3,5中選出一個數排列個位的位置上有 種;第二步考慮首位不能是0,從餘下的不是0的4個數字中任選一個排在首位上有種;第三步:從餘下的4個數字中任選3個排在中間的3個數的位置上,由乘法原理共有 =388(個)。
(2)5的倍數:按0作不作個位來分類
第一類:0作個位,則有=120。
第二類:0不作個位即5作個位,則 =96。
則共有這樣的數為: + =216(個)。
(3)比20300大的數的五位數可分為三類:
第一類:3xxxx, 4xxxx, 5xxxx有3個;
第二類:21xxx, 23xxx, 24xxx, 25xxx, 的4個;
第三類:203xx, 204xx, 205xx, 有3個,
因此,比20300大的五位數共有:3+4 +3 =474(個)。
(4)不含數字0且1,2不相鄰的數:分兩步完成,第一步將3,4,5三個數字排成一行;第二步將1和2插入四個「空」中的兩個位置,故共有=72個不含數字0,且1和2不相鄰的五位數。
例7.直線與圓相離,直線上六點A1,A2,A3,A4,A5,A6,圓上四點B1,B2,B3,B4,任兩點連成直線,問所得直線最多幾條?最少幾條?
解:所得直線最多時,即為任意三點都不共線可分為三類:
第一類為已知直線上與圓上各取一點連線的直線條數為=24;
第二類為圓上任取兩點所得的直線條數為=6;
第三類為已知直線為1條,則直線最多的條數為N1= ++1=31(條)。
所得直線最少時,即重合的直線最多,用排除法減去重合的字數較為方便,而重合的直線即是由圓上取兩點連成的直線,排除重復,便是直線最少條數:N2=N1-2=31-12=19(條)。

解排列組合問題的策略

要正確解答排列組合問題,第一要認真審題,弄清楚是排列問題還是組合問題、還是排列與組合混合問題;第二要抓住問題的本質特徵,採用合理恰當的方法來處理,做到不重不漏;第三要計算正確。下面將通過對若干例題的分析,探討解答排列組合問題的一些常見策略,供大家參考。
一、解含有特殊元素、特殊位置的題——採用特殊優先安排的策略
對於帶有特殊元素的排列問題,一般應先考慮特殊元素、特殊位置,再考慮其他元素與其他位置,也就是解題過程中的一種主元思想。
例1 用0,2,3,4,5這五個數字,組成沒有重復數字的三位數,其中偶數共有( )
A.24個 B.30個 C.40個 D.60個
解:因組成的三位數為偶數,末尾的數字必須是偶數,又0不能排在首位,故0是其中的「特殊」元素,應優先安排,按0排在末尾和0不排在末尾分為兩類:①當0排在末尾時,有 個;②當0不排在末尾時,三位偶數有 個,據加法原理,其中偶數共有 + =30個,選B。
若含有兩個或兩個以上的特殊位置或特殊元素,則應使用集合的思想來考慮。這里僅舉以下幾例:
(1)無關型(兩個特殊位置上分別可取的元素所組成的集合的交是空集)
例2 用0,1,2,3,4,5六個數字可組成多少個被10整除且數字不同的六位數?
解:由題意可知,兩個特殊位置在首位和末位,特殊元素是「0,首位可取元素的集合A={1,2,3,4,5},末位可取元素的集合B={0},A∩B= 。如圖1所示。

末位上有 種排法,首位上有 種不同排法,其餘位置有 種不同排法。所以,組成的符合題意的六位數是 =120(個)。

說明:這個類型的題目,兩個特殊位置上所取的元素是無關的。先分別求出兩個特殊位置上的排列數(不需考慮順序),再求出其餘位置上的排列數,最後利用乘法原理,問題即可得到解決。
(2)包合型(兩個特殊位置上分別可取的元素所組成集合具有包合關系)
例3 用0,1,2,3,4,5六個數字可組成多少個被5整除且數字不同的六位奇數?
解:由題意可知,首位、末位是兩個特殊位置,「0」是特殊元素,首位可取元素的集合
A={1,2,3,4,5},末位可取元素的集合B={5},B A,用圖2表示。

末位上只能取5,有 種取法,首位上雖然有五個元素可取但元素5已經排在末位了,故只有 種不同取法,其餘四個位置上有 種不同排法,所以組成的符合題意的六位數有 =96(個)。
說明:這個類型的題目,兩個特殊位置上所取的元素組成的集合具有包含關系,先求被包合的集合中的元素在特殊位置上的排列數,再求另一個位置上的排列數,次求其它位置上排列數,最後利用乘法原理,問題就可解決。
(3)影響型(兩個特殊位置上可取的元素既有相同的,又有不同的。這類題型在高考中比較常見。)
例4 用1,2,3,4,5這五個數字,可以組成比20000大並且百位數字不是3的沒有重復數字的五位數有多少個?
解:由題意可知,首位和百位是兩個特殊位置,「3」是特殊元素。首位上可取元素的集合 A={2,3,4,5},百位上可取元素的集合B={1,2,4,5}。用圖3表示。

從圖中可以看出,影響型可分成無關型和包含型。①首先考慮首位是3的五位數共有: 個;②再考慮首位上不是3的五位數,由於要比20000大,∴首位上應該是2、4、5中的任一個, 種選擇;其次3應排在千位、十位與個位三個位置中的某一個上, 種選擇,最後還有三個數、三個位置,有 種排法,於是首位上不是3的大於20000的五位數共有個 。
綜上①②,知滿足題設條件的五位數共有: + =78個。
二、解含有約束條件的排列組合問題一――採用合理分類與准確分步的策略
解含有約束條件的排列組合問題,應按元素的性質進行分類,按事件發生的連貫過程分步,做到分類標准明確、分步層次清楚,不重不漏。
例5 平面上4條平行直線與另外5條平行直線互相垂直,則它們構成的矩形共有________個。
簡析:按構成矩形的過程可分為如下兩步:第一步.先在4條平行線中任取兩條,有 種取法;第二步再在5條平行線中任取兩條,有 種取法。這樣取出的四條直線構成一個矩形,據乘法原理,構成的矩形共有· =60個。
例6 在正方體的8個頂點,12條棱的中點,6個面的中心及正方體的中心共27個點中,共線的三點組的個數是多少?
解:依題意,共線的三點組可分為三類:兩端點皆為頂點的共線三點組共有 =28(個);兩端點皆為面的中心的共線三點組共有 =3(個);兩端點皆為各棱中點的共線三點組共有 =18(個)。
所以總共有28+3+18=49個。
例7 某種產品有4隻次品和6隻正品(每隻產品均可區分)。每次取一隻測試,直到4隻次品全部測出為止。求第4隻次品在第五次被發現的不同情形有多少種?
解:先考慮第五次測試的產品有4種情況,在前四次測試中包含其餘的3隻次品和1隻正品,它們排列的方法數是6 。依據乘法原理得所求的不同情形有4×6 =576種。
有些排列組合問題元素多,取出的情況也有多種,對於這類問題常用的處理方法是:可按結果要求,分成不相容的幾類情況分別計算,最後計算總和。
例8 由數字0,1,2,3,4,5組成沒有重復的6位數,其中個位數字小於十位數字的共有 ( )
A、210個 B、300個 C、464個 D、600個
分析:按題意個位數字只可能是0,1,2,3,4共5種情況,符合題的分別有 , , ,, 個。
合並總計,共有 + + + + =300(個)。
故選B。
說明:此題也可用定序問題縮位法求解,先考慮所有6位數: 個,因個位數字須小於個位數字,故所求6位數有( )/ =300(個)。
處理此類問題應做到不重不漏,即每兩類的交集為空集,所有類的並集為合集,因此要求合理分類。
例9 已知集合A和集合B各含12個元素,A∩B含有4個元素,試求同時滿足下面的兩個條件的集合C的個數:
(1)C A∪B,且C中含有3個元素;
(2)C∩A≠ ( 表示空集)。
分析:由題意知,屬於集合B而不屬於集合A元素個數為12-4=8,因此滿足條件(1)、(2)的集合C可分為三類:
第一類:含A中一個元素的集C有 個;
第二類:含A中二個元素的集C有 個;
第三類:含A中三個元素的集C有 個。
故所求集C的個數是 + + =1084。
有序分配問題是指把元素按要求分成若干組,分別分配到不同的位置上,對於這類問題的常用解法,是先將元素逐一分組,然後再進行全排列、但在分組時要注意是否為均勻分組。
例10 3名醫生和6名護士被分配到3所學校為學生體檢,每校分配1名醫生和2名護土,不同的分配方法共有 ( )。
A.90種 B.180種 C.270種 D.540種
分析:(一)先分組、後分配:
第一步:將3名醫生分成3組,每組一人只有一種分法。
第二步:將6名護士分成3組,每組2人有:( )/ 種分法。
第三步:將醫生3組及護士3組進行搭配,使每組有一名醫生、2名護士,有 種搭配方法。
第四步:將所得的3組分配到3所不同的學校有 種分配法。
故共有不同的分配方法: · =540(種)。故選(D)。
分析:(二)第一步:先將6名護士分配到3所不同學校,每所學校2名,則有 (種)分法。
第二步:再將3名醫生分配到3所不同的學校,每所學校1人,有 種分法。
故共有 =540(種)故選(D)。
說明:處理此類問題應注意准確分步。
三、解排列組台混合問題——採用先選後排策略
對於排列與組合的混合問題,可採取先選出元素,後進行排列的策略。
例11 4個不同小球放入編號為1、2、3、4的四個盒子,則恰有一個空盒的放法有_________種。
簡析:這是一個排列與組合的混合問題。因恰有一個空盒,所以必有一個盒子要放2個球,故可分兩步進行:第一步選,從4個球中任選2個球,有 種選法。從4個盒子中選出3個,有 種選法;第二步排列,把選出的2個球視為一個元素,與其餘的2個球共3個元素對選出的3個盒子作全排列,有 種排法。所以滿足條件的放法共有 =144種。
四、正難則反、等價轉化策略
對某些排列組合問題,當從正面入手情況復雜,不易解決時,可考慮從反面入手,將其等價轉化為一個較簡單的問題來處理。即採用先求總的排列數(或組合數),再減去不符合要求的排列數(或組合數),從而使問題獲得解決的方法。其實它就是補集思想。
例12 馬路上有編號為1、2、3、…、9的9隻路燈,為節約用電,現要求把其中的三隻燈關掉,但不能同時關掉相鄰的兩只或三隻,也不能關掉兩端的路燈,則滿足條件的關燈方法共有_______種。
簡析:關掉一隻燈的方法有7種,關第二隻、第三隻燈時要分類討論,情況較為復雜,換一個角度,從反面入手考慮。因每一種關燈的方法唯一對應著一種滿足題設條件的亮燈與暗燈的排列,於是問題轉化為在6隻亮燈中插入3隻暗燈,且任何兩只暗燈不相鄰、且暗燈不在兩端,即從6隻亮燈所形成的5個間隙中選3個插入3隻暗燈,其方法有=10種。故滿足條件的關燈的方法共有10種。
例13 甲、乙兩隊各出7名隊員按事先排好的順序出場參加圍棋擂台賽,雙方先由1號隊員比賽,負者被淘汰,勝者再與負方2號隊員比賽,……直到有一方隊員全被淘汰為止,另一方獲勝,形成—種比賽過程,那麼所有可能出現的比賽過程共有多少種?
解:設甲隊隊員為a1,a2,…a7,乙隊隊員為b1,b2,……,b7,下標表示事先安排好的出場順序,若以依次被淘汰的隊員為順序,比賽過程可類比為這14個字母互相穿插的一個排列,最後是勝隊中獲勝隊員和可能未參賽的隊員。如a1a2b1b2a3b3b4b5a4b6b7a5a6a7。所表示為14個位置中取7個位置安排甲隊隊員,其餘位置安排乙隊隊員,故比賽過程的總數為 =3432。
例14 有2個a,3個b,4個c 共九個字母排成一排,有多少種排法?
分析:若將字母作為元素,1—9號位置作為位子,那麼這是一個「不盡相異元素的全排列」問題,若轉換角色,將1—9號位置作為元素,字母作為位子,那麼問題便轉化成一個相異元素不許重復的組合問題。
即共有 =1260(種)不同的排法。
有些問題反面的情況為數不多,容易討論,則可用剔除法。
對有限制條件的問題,先以總體考慮,再把不符合條件的所有情況剔除。這是解決排列組合應用題時一種常用的解題策略。
例15 四面體的頂點和各棱中點共有10個點,在其中取4個不共面的點,不同的取法共有( )
A.150種 B.147種 C.14種 D.141種
分析:在這10個點中,不共面的不易尋找,而共面的容易找。因此,採用剔除法,由10個點中取出4個點的組合數( 減去4個點共面的個數即為所求)。4點共面情形可分三類:
第一類:四面體每個面中的四個點共面,共有 4× =60種;
第二類:四面體的每2組對棱的中點構成平行四邊形,則這四點共面,共有3種;
第三類:四面體的一條棱上三點共線,這三點與對棱中點共面,共有6種。故4點不共面的取法有
-(4 +6+3)=141種。
例16 從0、1、2、3、4、5、6、7、8、9這10個數中取出3個數,使和為不小於10的偶數,不同的取法有多少種。
解:從這10個數中取出3個不同的偶數的取法有 種;取1個偶數和2個奇數的取法有 種。另外,從這10個數中取出3個數,使其和為小於10的偶數,有9種不同取法。
因此,符合題設條件的不同取法有 + -9=51種。
五、解相鄰問題——採用「捆綁」策略
對於某幾個元素要求相鄰的排列問題,可先將相鄰的元素「捆綁」起來看作一個元素與其他元素排列,然後再在相鄰元素之間排列。
事實上,這種方法就是將相鄰的某幾個元素,優先考慮。讓這些特殊元素合成一個元素,與普通元素排列後,再松綁。
例17 A,B,C,D,E五人並排站成一排,如A,B必相鄰,且B在A右邊,那麼不同排法有 ( )
A.24種 B.60種 C.90種 D.120種
分析:將特殊元素A,B按B在A的右邊「捆綁」看成一個大元素,與另外三個元素全排列 ,由A,B不能交換,故不再「松綁」,選A。
例18 5人成一排,要求甲、乙相鄰,有幾種排法?
解:將甲、乙「捆綁」成一個元素,加上其他3元素,共4元素,全排列有 種,甲、乙內部的排列有 種。故共有 =48種。
也可以這樣理解:先讓甲、丙、丁、戊,排成一列有 種,再將乙插入甲的左邊或右邊,有 種,共 =48種。
例19 計劃展出10幅不同的畫,其中一幅水彩畫、4幅油畫、5幅國畫,排成一行陳列,要求同一品種的畫必須連在一起,並且水彩畫不放在兩端,那麼不同的陳列方式有多少種? ( )
A、 B、 C、 D、
分析:先把3種品種的畫各看成整體,而水彩畫不能放在頭尾,故只能放在中間,又油畫與國畫有 種放法,再考慮油畫與國畫本身又可以全排列,故排列的方法為 ,故選D。
例20 5名學生和3名老師站成一排照相,3名老師必須站在一起的不同排法共有________種。
簡析:將3名老師捆綁起來看作一個元素,與5名學生排列,有 種排法;而3名老師之間又有 種排法,故滿足條件的排法共有 =4320種。
用「捆綁」法解題比較簡單,實質是通過「捆綁」減少了元素,它與下面要提到的「插孔」法結合起來,威力便更大了。
六、解不相鄰問題——採用「插孔」策略
對於某幾個元素不相鄰的排列問題,可先將其他元素排列好,然後再將不相鄰的元素在這些排好的元素之間及兩端的空隙中插入。
例21 7人站成一行,如果甲、乙兩人不相鄰,則不同的排法種數是 ( )
A.1440種 B.3600種 C.4320種 D.4800種
簡析:先讓甲、乙之外的5人排成一行,有 種排法,再讓甲、乙兩人在每兩人之間及兩端的六個間隙中插入,有 種方法。故共有 · =3600種排法,選B。
例22 要排一個有6個歌唱節目和4個舞蹈節目的演出節目單,任何兩個舞蹈不相鄰,問有多少種不同排法?
分析:先將6個歌唱節目排成一排有 種排法,6個歌唱節目排好後包括兩端共有7個「間隔」可以插入4個舞蹈節目有 種,故共 ·6!=604800種不同排法。
例23 從1,2,3,…,2000這2000個自然數中,取出10個互不相鄰的自然數,有多少種方法?
解:將問題轉化成把10名女學生不相鄰地插入站成一列橫列的1990名男生之間(包括首尾兩側),有多少種方法?
因為任意相鄰2名男學生之間最多站1名女學生,隊伍中的男學生首尾兩側最多也可各站1名女學生。於是,這就是1991個位置中任選10個位置的組合問題,故共有 種方法。
利用「插孔」法,也可以減少元素,從而簡化問題。
例24 一排6張椅子上坐3人,每2人之間至少有一張空椅子,求共有多少種不同的坐法?
解:將問題轉化成把3個人坐5張椅子,然後插一把空椅子問題。
3個人若坐5張椅子,每2人之間一張空椅子。坐法是固定的有 種不同的坐法,然後,將餘下的那張椅子插入3個坐位的4個空隙,有4種插法。所以共有4 =24種不同的坐法。
七、解定序問題——採用除法策略
對於某幾個元素順序一定的排列問題,可先把這幾個元素與其它元素一同進行排列,然後用總排列數除以這幾個元素的全排列數,這其實就是局部有序問題,利用除法來「消序」。
例25 由數字0、1、2、3、4、5組成沒有重復數字的六位數,其中個位數小於十位數字的共有( )
A.210個 B.300個 C. 464個 D.600個
簡析:若不考慮附加條件,組成的六位數共有 個,而其中個位數字與十位數字的 種排法中只有一種符合條件,故符合條件的六位數共 =300個,故選B。
例26 信號兵把紅旗與白旗從上到下掛在旗桿上表示信號,現有3面紅旗、2面白旗,把這5面旗都掛上去,可表示不同信號的種數是 ________(用數字作答)。
分析:5面旗全排列有 種掛法,由於3面紅旗與2面白旗的分別全排列均只能作一次的掛法,故共有不同的信號種數是 =10(種)。
說明:此題也可以用組合來解,只需5個位置中確定3個,即 =10。
例27 有4個男生,3個女生,高矮互不相等,現將他們排成一行,要求從左到右,女生從矮到高排列,有多少種排法?
分析:先在7個位置上任取4個位置排男生,有 種排法,剩餘的3個位置排女生,因要求「從矮到高」,只有一種排法,故共有 =840種。
在處理分堆問題時,有時幾堆中元素個數相等,這時也要用除法,
例28 不同的鋼筆12支,分3堆,一堆6支,另外兩堆各3支,有多少種分法?
解:若3堆有序號,則有 · ,但考慮有兩堆都是3支,無須區別,故共有 / =9240種。
例29 把12支不同的鋼筆分給3人,一人得6支,二人各得3,有幾種分法?
解:先分堆:有 / 種。再將這三堆分配給三人,有 種。共有 · / =3 種。
本題亦可用「選位,選項法」,即: =3 。
八、解分排問題—採用直排處理的策略
把n個元素排成前後若干排的排列問題,若沒有其他特殊要求,可採取統一排成一排的方法來處理。
例30 兩排座位,第一排3個座位,第二排5個座位,若8位學生坐(每人一個座位)。則不同的坐法種數是( )
A、 B、 C、 D、
簡析:因8名學生可在前後兩排的8個座位中隨意入坐,再無其他條件,所以兩排座位可看作一排來處理,其不同的坐法種數是 ,故應選D。
九、解「小團體」排列問題——採用先整體後局部策略
對於「小團體」排列問題,可先將「小團體」看作一個元素與其餘元素排列,最後再進行「小團體」內部的排列。
例31 三名男歌唱家和兩名女歌唱家聯合舉行一場音樂會,演出的出場順序要求兩名女歌唱家之間恰有一名男歌唱家,其出場方案共有 ( )
A.36種 B.18種 C.12種 D.6種
簡析:按要求出場順序必須有一個小團體「女男女」,因此先在三名男歌唱家中選一名(有 種選法)與兩名女歌唱家組成一個團體,將這個小團體視為一個元素,與其餘2名男歌唱家排列有 種排法。最後小團體內2名女歌唱家排列有 種排法,所以共有 =36種出場方案,選A。
十、簡化計算繁瑣類問題——採用遞歸策略
所謂遞歸策略,就是先建立所求題目結果的一個遞推關系式,再經簡化題目條件得出初始值,進而遞推得到所求答案。
例32 有五位老師在同一年級的6個班級中,分教一個班的數學,在數學會考中,要求每位老師均不在本班監考,共有安排監考的方法總數

參考資料:http://www.wishkind.com/bbs/archiver/?tid-295.html

㈨ 組合計算公式是什麼

組合計算公式是:C(n,m)=A(n,m)/m。

組合是數學的重要概念之一,它表示從n個不同元素中每次取出m個不同元素,不管其順序合成一組,稱為從n個元素中不重復地選取m個元素的一個組合。所有這樣的組合的種數稱為組合數。

n元集合A中不重復地抽取m個元素作成的一個組合實質上是A的一個m元子集和。如果給集A編序成為一個序集,那麼A中抽取m個元素的一個組合對應於數段到序集A的一個確定的嚴格保序映射。

組合數的性質:

1、互補性質:即從n個不同元素中取出m個元素的組合數=從n個不同元素中取出(n-m)個元素的組合數;這個性質很容易理解,例如C(9,2)=C(9,7),即從9個元素里選擇2個元素的方法與從9個元素里選擇7個元素的方法是相等的。

2、組合恆等式:若表示在n個物品中選取m個物品,則如存在下述公式:C(n,m)=C(n,n-m)=C(n-1,m-1) C(n-1,m)。

㈩ 組合演算法:從m個數中選n個數的所有組合

#include <iostream.h>

int combine(int a[], int n, int m)
{
m = m > n ? n : m;

int* order = new int[m+1];
for(int i=0; i<=m; i++)
order[i] = i-1;

int count = 0;
int k = m;
bool flag = true;
while(order[0] == -1)
{
if(flag)
{
for(i=1; i<=m; i++)
cout << a[order[i]] << " ";
cout << endl;
count++;
flag = false;
}

order[k]++;
if(order[k] == n)
{
order[k--] = 0;
continue;
}

if(k < m)
{
order[++k] = order[k-1];
continue;
}

if(k == m)
flag = true;
}

delete[] order;
return count;
}

int main()
{
const int M = 4;
const int N = 3;
int a[M];
int b[N];
for(int i=0;i<M;i++)
a[i] = i+1;

combine(a,M,N);

return 0;
}

熱點內容
創建實例在linux 發布:2024-10-07 18:03:16 瀏覽:485
黑客學c語言 發布:2024-10-07 17:37:39 瀏覽:941
ftp比較文件 發布:2024-10-07 17:04:56 瀏覽:39
如何配置幼兒園園內的玩具 發布:2024-10-07 17:04:23 瀏覽:863
干支日演算法 發布:2024-10-07 16:47:17 瀏覽:502
sqlin語句用法 發布:2024-10-07 16:45:05 瀏覽:640
直出伺服器怎麼樣 發布:2024-10-07 15:41:36 瀏覽:477
比亞迪唐dmi哪個配置性價比 發布:2024-10-07 15:19:28 瀏覽:903
編譯器按變數 發布:2024-10-07 15:07:03 瀏覽:775
怎麼忘記電腦wifi密碼怎麼辦 發布:2024-10-07 15:02:18 瀏覽:426