【离散数学中的数据结构与算法】五 排列与组合一
在leetcode刷題過(guò)程中,遇到過(guò)很多關(guān)于排列組合的問(wèn)題。弄清楚排列組合的相關(guān)原理,是非常有用處的。
文章目錄
- 1 問(wèn)題
- 2 排列-有序選取
- 2.1 重復(fù)選取-可重排列
- 2.2 不重復(fù)選取-排列
- 2.21 全排列
- 3 例題
- 4 總結(jié)
1 問(wèn)題
設(shè)集合S包含n個(gè)元素,從S中選取r個(gè)元素有多少種選取方法?
根據(jù)取出的元素是否允許重復(fù),以及取出元素的過(guò)程是否有序,可以將上述問(wèn)題分為下面的四個(gè)子類型:
排列都是有序的,組合都是無(wú)序的。這在后面的學(xué)習(xí)中會(huì)深刻體會(huì)。
2 排列-有序選取
2.1 重復(fù)選取-可重排列
- 從 n 個(gè)不同的對(duì)象中, 取 r 個(gè)可重復(fù)的對(duì)象,按次序排列,稱為n取r的可重排列。
- 此也即當(dāng) |A|=n 時(shí), A* 中長(zhǎng)為 r 的串的個(gè)數(shù)。
定理1:n取r的可重排列數(shù)目為nr
2.2 不重復(fù)選取-排列
-
從 n 個(gè)不同的對(duì)象中, 取 r 個(gè)不重復(fù)的對(duì)象, 按次序排列, 稱為 n 取 r 的排列(permutation of n objects taken r at atime) 。 n 取 r 排列的全體構(gòu)成的集合用 P(n, r) 表示, 排列的個(gè)數(shù)用 P(n, r) 表示(由于個(gè)數(shù)的表示是斜體不容易區(qū)分,后面我們說(shuō)P(n, r) 即代表排列的個(gè)數(shù)。)
-
當(dāng) r = n 時(shí)稱為全排列或置換(permutation)
-
此也即當(dāng) |A|=n 時(shí), A* 中長(zhǎng)為 r 且各項(xiàng)彼此不同的串的個(gè)數(shù)。
舉例子:
定理2:
n < r 時(shí), P(n, r) = 0; n >= r 時(shí), P(n, r) = n*(n - 1) * … *(n - r + 1)。2.21 全排列
全排列經(jīng)常被理解為是包含某個(gè)有限集合中的所有元素一次且僅一次的序列。
-
設(shè) A 是集合,如果|A|=n, 則 A 的全排列的個(gè)數(shù)為:
n * (n-1) * … * 1
這個(gè)值也經(jīng)常被寫作 n! ,稱作n 的階乘(factorial) 。
可以給出 P(n, r) 的一個(gè)更緊湊的表達(dá)式:
3 例題
一個(gè)社團(tuán)共有 10 名成員,從中選出一名主席、一名副主席、一名書記,則共有 P(10, 3)=720 種方法。(因?yàn)椴还馐且x出三名學(xué)生,還要在這三明學(xué)生中確定三個(gè)身份。相當(dāng)于C(10,3)* P(3,3)=p(10,3),這樣更易于理解。C(10,3)是組合的求解公式,后面會(huì)學(xué)習(xí))
如果有4個(gè)男孩和4個(gè)女孩坐成一排,每個(gè)人的旁邊都可以隨便坐,那么共有多少種坐的方式?
P(8,8)=8!
如果有4個(gè)男孩和4個(gè)女孩坐成一排,每個(gè)人旁邊都只能坐著異性,那么共有多少種坐的方式?
2 * 4! * 4!如下圖所示:
4 總結(jié)
- 堅(jiān)持學(xué)數(shù)學(xué)
總結(jié)
以上是生活随笔為你收集整理的【离散数学中的数据结构与算法】五 排列与组合一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android让文件按顺序列表,Java
- 下一篇: Qt安装要注意的事项(Qt安装教程)