數據結構與算法 —— 基礎一(排列組合)

排列組合問題

排列和組合問題,實際上是兩種問題,區分它們的原則是是否須要考慮順序的不一樣。排列問題,考慮順序;組合問題,不考慮順序。spa

1.排列可重複

那麼,何爲「可重複」呢?暫且不考慮排列組合,先解釋可重複。舉個例子,冰淇淋有3種口味能夠選擇,我能夠選擇3種相同口味,也能夠選擇不一樣口味,每次選擇便可相同也可不相同。再舉個例子拋硬幣3次,很顯然,可能會出現3次都是正面,硬幣出現正反面是可重複的。典型的問題如,開鎖問題,彩票問題,都是排列可重複問題。code

排列可重複問題公式以下,每次nn種選擇,選擇rr次的排列共有:n^r
這很好理解,一次有n種選擇,第二次有n∗n種選擇,……,第r次有n^r種選擇。xml

2.排列不可重複

不可重複也很好理解了。例如,打桌球問題,一共15個球,打進全部球有多少種打法。這種狀況下,不可能一個球重複打進,第一次擊球有15種可能,第二次只有14種,……,最後一次就只有一個球了,只有一種可能。blog

這個打桌球問題,能夠這樣理解。首先,共有15個球,所有打完,共有多少種排列?顯然,15∗14∗...∗2∗1=15! 。而後考慮,不所有打完呢?打3次有多少種排列,顯然15∗14∗13,爲了公式的整齊能夠寫成
class

排列不可重複問題更通常的公式以下,n個球,打r次的排列共有: im

3.組合不可重複

組合可重複問題放在最後,先看組合不可重複。先看例子,共有紅黃藍綠黑5種顏色的球,隨機取3次有幾種顏色組合。{紅、綠、黃}和{黃、綠、紅}雖然順序不一樣,可是相同的組合,即只算一種狀況。同時,不可能出現{紅、紅、黃},即這是一個不可重複問題。d3

首先,顯然紅黃綠是1種組合,咱們來看紅黃綠有多少種排列。
db

4.組合可重複

相關文章
相關標籤/搜索