高中學過的知識,太久沒用過了現在記錄一下
初識組合
排列組合的三種技巧方法
1)**法
2)插空法
3)隔板法
典型例題
加法原理
加法原理就是分類計數原理
專業術語定義:
加法原理:做一件事的時候,有幾種不同的方法,而每一類方法中,又有幾種可能的方法,那麼考慮完成這件事的所有可能的做法,就要用加法原理來解決。
我們用字母來解釋一下,假設完成一類任務有n種方法,在第一類方法中有m1種不同的方法,在第二類中有m2種不同的方法,,第n類中有mn種不同方法,那麼完成這個任務有n=m1+m2+m3+…+mn種不同方法
乘法原理
假設完成一件事有n個步驟,做第一步有m1種不同的方法,做第二步有m2種不同方法,…,做第n步的時候有mn種不同的方法,那麼完成這件事共有n=m1m2m3*…*mn種不同的方法。
從n個不同元素中,任取m(m<=n,m與n均為自然數,下同)個元素按照一定順序排成一列,叫做從n個不同元素中取出m個元素的乙個排列;從n個不同元素中取出m(m<=n)個元素的所有排列的個數,叫做從n個不同元素中取m個元素的排列數,用符號a(m,n)表示
a(m,n)=n!/(n-m)!
其中全排列問題:a(n,n)=n!
n個人中選m(m<=n)個出來,不排序,不在乎順序的就是c(m,n),他和排列有關係為:c(m,n)*a(m,m)=c(m,n)*m!=a(m,n)
解釋一下就是n個人中選了m個出來,給這m個人有序排列,那麼就是從n個元素中取m個元素進行排列
1.c(n,m)=m!/n!x(m-n)!
2.c(n,m)=c(n,m-1)+c(n-1,m-1)
3.c(n+1,m)=c(n,m)x(m-n)/n+1
4.c(0,m)+c(1,m)+…+c(m,m)=2^m
**法適用於在一起或者相鄰的部分,使用時需要考慮到內部順序
插空法適用於不在一起或者不相鄰的部分,考慮到把少的插到多的中間,考慮到調換順序
適用於至少有乙個或者多個元素相同的,要注意到空隙數和板數
1)普通組合問題:
例題1: 某單位人事部共有18名職員,現在從中任意挑選兩名作為本單位職工代表參加市建黨90周年演講比賽,則共有()種不同的挑選方法?
解:從18個人中挑選兩個人,根據題意可知是沒有順序的,所以是組合問題,結果即c(2,18)=18!/2!16!=1817/2=153
2)分步問題
例題2:要求廚師從12種主料中挑選出兩種,從13種配料中挑選出3種來烹飪,烹飪的方法共有7種,那麼可以做出多少種不同菜餚?
c(2,12)c(3,13)7=(1211/2)(131211/321)7=66286*7=132132
例題3:某單位預定了10個房間,一共十個專家,1層5間,2層5間,專家中4人要求住2層,3人要求住一層,其他任意,求有多少種可能?
解:c(4,5)*a(4,4)*c(3,5)*a(3,3)*a(3,3)=43200種
也可以如此計算:
a(4,5)*a(3,5)*a(3,3)=43200
3)分類問題
例題4:某班同學要訂a,b,c,d4種學習報,每人至少訂1種,那麼每個同學有多少種不同的方式?
解:可以選擇訂1,2,3,4種報紙:
1種:c(1,4)=4
2種:c(2,4)=6
3種:c(3,4)=4
4種:c(4,4)=1
結果:4+6+4+1=15
4)逆向思維法
例題5:甲乙兩人從5種健身專案中各選兩項,則甲乙所選的運動專案中至少有一項不同的選法共有多少種?
c(2,5)*c(2,5)-c(2,5)=90
1)**法
例題1:四對情侶排成一隊買票,已知每對情侶必須排在一起,問共有多少種不同的排隊順序?
解:四對情侶可以把每對兩個人**在一起,用**法計算:
a(4,4)xa(2,2)^4=384
2)插空法
例題2:某自來水公司計畫在下週7天內選擇兩天停止供水,若要求停水的兩天不相連,則自來水公司有()種停水方案?
解:用插空法來解決問題
七天內有兩天停止供水,並且不相鄰,即去掉這兩天,把這兩天插入其他五天的空隙中,因為是停水,所以包括頭和尾部,一共六個空。
c(2,6)=15
注:不需要考慮這其他不停水五天,和停水兩天的順序
3隔板法
例題3:將7個大小相同的橘子分給四個小朋友,要求每個小朋友至少得到乙個橘子,一共有幾種分配方法?
解:用隔板法來解決問題,七個橘子分給四個小朋友,每個小朋友至少分的乙個,意思是用三塊板子來把七個部分分成四份,由於每個小朋友至少分的乙個,所以插板的空隙一共有6個,板子有三個
c(3,6)=20
例題4:一共三個部分,單位一共訂了30份學習材料給這三個部分,並且要求每個部門至少發放9個材料,問一共有多少種不同的發放方法?
解:可以假設先給每個部分發放8個材料,之後再發放乙份,相當於把剩餘的6個分給每個部門。
c(2,5)=10
n個元素呈環形排列,那麼排列的種類有a(n-1,n-1)
例題:有五對夫婦參加一場婚宴,他們被安排在一張10個座位的圓桌就餐,請問這五對夫婦恰好都被安排在一起相鄰就坐的情況數?
解:明顯的環形排列問題+**
五對夫婦安排在一起,可以把這十個人**為五組,按照環形排列公式:
a(4,4)
再乘以每對夫婦內部就坐可能性:
a(4,4)xa(2,2)^5=768
n個元素和n個位置,要求每個元素的位置和元素本身的序號不同,所以n個元素的對應排列情況分別為:d1=0,d2=1,d3=2,d4=9…dn=(n-1)(dn-2+dn-1)種
例題:某單位從下屬五個科室各抽調了一名工作人員,交流到其他科室,如果每個科室只能接受乙個人的話,那麼有多少種不同的人員安排方法?
解:明顯的錯位排列問題,五個科室d5=44
排列組合相關演算法
排列生成演算法 問題 給出數字a1,a2,an,生成所有排列。如果用遞迴,這個演算法執行時的遞迴深度會很大的,而且遞迴如何乙個乙個地返回排列結果呢。下面的演算法的核心思想都是如何根據當前給定的排列p 第乙個排列自然是p a1a2.an了 然後生成唯一的下乙個排列。如此迴圈n 次,自然獲得所有的排列。...
排列組合問題
若有一串字母abc,進行全排列,有六種方法,3的階層,321,為什麼是這樣呢,我們根據 看思路 這之間會涉及遞迴,回溯 將abc看成陣列,a 0 a,a 1 b,a 2 c 下文中用a0代替a,a1代替b,a2代替c 排列的過程就是交換位置的過程 1 先對a進行交換 即k 0時 a0和a0自己交換 ...
排列組合問題
基本的排列組合問題,就是高中數學的內容,怎麼用程式語言輸出所有排列呢?我們手寫的過程,它應該是乙個遞迴的過程,而不適合用for wihle迴圈。如果資料結構學的紮實,可以發現這是乙個樹結構,遍歷所有的葉子節點就能夠得到全排列。說到遞迴,應該向大家隆重介紹一下數學歸納法的思想,應為都有乙個問題規模n。...