日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

圆排列、循环排列、斯特林数、stirling

發(fā)布時(shí)間:2024/1/1 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 圆排列、循环排列、斯特林数、stirling 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

catalog

  • 圓排列
    • size為n的圓排列
    • size為m的圓排列
    • 對(duì)稱圓排列
  • 斯特林?jǐn)?shù) - 第一類
    • 例題

圓排列

圓排列 又稱循環(huán)排列,他是一個(gè)“二維形狀”,構(gòu)成空間上的一個(gè) 圓形每個(gè)圓排列,都對(duì)應(yīng)有“多個(gè)”直線排列比如,某個(gè)圓排列的size是4,那么他就有4個(gè)“直線排列”因?yàn)?#xff0c;比如某個(gè)直線排列是abcd' 所謂圓排列,即把a(bǔ)bcd這個(gè)直線排列,“均勻”的放到一個(gè)圓上 ' 那么,這個(gè)圓排列 所對(duì)應(yīng)的直線排列有: abcd、bcda 、cdab 、dabc “即,圓排列看的是: 這n個(gè)元素間的 相對(duì)位置 ”2個(gè)圓排列相同:1, 元素個(gè)數(shù)相同2, 這n個(gè)元素 的 相對(duì)問題,都相同 a de b 和 c e , 這倆是 同個(gè) 圓排列d c b a

size為n的圓排列

從n個(gè)元素中,選出一個(gè)“size為n”的圓排列,問能得到多少種不同的圓排列。比如n=4:第1個(gè)圓排列: abcd、bcda、cdab、dabc ' 這都對(duì)應(yīng)同一個(gè)圓排列 '2個(gè)圓排列: abdc、bdca、cabd、dcab ' 這都對(duì)應(yīng)同一個(gè)圓排列 '3個(gè)圓排列: acbd、b...、c...、d...4個(gè)圓排列: acdb、b...、c...、d...5個(gè)圓排列: adbc、b...、c...、d...6個(gè)圓排列: adcb、b...、c...、d...方式11個(gè)全圓排列(size=n) 對(duì)應(yīng) n個(gè)直線排列而,n個(gè)元素 有n!個(gè)直線排列 故,有 n! / n = (n-1)! 個(gè) 全圓排列方式2:每個(gè)圓排列,他所對(duì)應(yīng)的“直線排列”,都是n個(gè)形如:“a...、b...、c...、d...”所以,只看第一個(gè)a... 則有(n-1)! 個(gè)全圓排列

size為m的圓排列

從n個(gè)元素中,選出一個(gè)“size為m”的圓排列,問能得到多少種不同的圓排列。比如n=4、m=3:第1個(gè)圓排列: abc、b..、c.. ' 這都對(duì)應(yīng)同一個(gè)圓排列 '2個(gè)圓排列: acb、c..、b.. ' 這都對(duì)應(yīng)同一個(gè)圓排列 '3個(gè)圓排列: abd、b..、d..4個(gè)圓排列: adb、........5個(gè)圓排列: acd、........6個(gè)圓排列: adc、........7個(gè)圓排列: bcd、cdb、dbc ' 注意這里非常重要!! 與上面不同 '8個(gè)圓排列: bdc、dcb、cbd ' 這2項(xiàng)是沒有a元素的!! 你很容易把這2給忘掉... 'n個(gè)元素 他有A(n, m)個(gè) “長(zhǎng)度為m的 直線排列”,注意別寫成C(n,m) 這個(gè)A(n,m),就對(duì)應(yīng)為上面的這么多項(xiàng)!!! 即,所以長(zhǎng)度為m 的排列。 然后3個(gè)一組,所以 A(n,m) / m一個(gè)size=m的圓排列,他有: m個(gè) 長(zhǎng)度為m的 直線排列 即這個(gè)問題的 圓排列數(shù)為: A(n, m) / m

對(duì)稱圓排列

在普通的圓排列中, a ae b 和 b e 是不同的圓排列d c c d但是,如果我們規(guī)定: 不考慮“順逆時(shí)針”(換句話說: 允許 鏡像/對(duì)稱 匹配)' 上面兩個(gè)圖形, 是“鏡像”對(duì)稱的。 所以,屬于同個(gè) 對(duì)稱圓排列 '即,鏡像對(duì)稱左L: 有m個(gè) 圓排列鏡像對(duì)稱右R: 有m個(gè) 圓排列 ' 注: L和R 不是同個(gè) 圓排列 '故,在普通的基礎(chǔ)上, 多了2倍, 只需在求圓排列后, 除以2即可 故:n個(gè)元素,有: A(n, m) / m / 2個(gè) (size=m的)對(duì)稱圓排列

斯特林?jǐn)?shù) - 第一類

將n個(gè)元素,劃分成 m個(gè) “非空”圓排列 的方案數(shù)' 注意,不是選出m個(gè)數(shù),而是劃分成m個(gè)集合。 即:每種方案,都有n個(gè)元素 '' 這m個(gè)圓排列之間,不存在排列順序問題 ' 1 <= m <= n 當(dāng)m = 1: 即把n個(gè)數(shù)都放入一個(gè)圓排列里,對(duì)應(yīng)上面的 size=n的全圓排列問題ans = (n - 1)! 當(dāng)m = n: 因?yàn)槭欠强?#xff0c;即這n個(gè)圓排列 每個(gè)里面都有1個(gè)元素。 圓排列之間不考慮順序問題ans = 1n=3, m=21) (23)(2) (13)(3) (12) n=4, m=21) (234) (1) (243) (2) (134) (2) (143) (3) (124) (3) (143) (4) (123) (4) (132) (12) (34) (13) (24) (14) (23' 因?yàn)?#xff0c;很很重要的一點(diǎn): 這n個(gè)元素 都要參與 每一種的方案里!!! 并不是選出m個(gè)元素 ' ' 劃分成m個(gè)集合,n個(gè)元素都要參與,所以: 可以考慮dp 'cur = dp[4][2] 第二維度的2表示:此時(shí)有2個(gè)圓排列:(圓排列1)(圓排列2)我們此時(shí)新添加1個(gè)元素“第5號(hào)元素”: 即從dp[4][2] 往 dp[5][] 轉(zhuǎn)移元素5,在dp[4][2]的基礎(chǔ)上,新建立一個(gè)集合:即dp[5][3]: (圓排列1)(圓排列2)(圓排列3)且,圓排列3 只有1個(gè)元素,即這個(gè)元素5.dp[n][m] -> dp[n + 1][m + 1] 元素5,在dp[4][2]的基礎(chǔ)上,放到現(xiàn)有集合里面:即dp[5][2]: (圓排列1)(圓排列2)比如元素5 放到圓排列1里面: '此時(shí)圓排列1,形態(tài) 個(gè)數(shù) 元素,都是確定的! 即是某1個(gè)方案 '比如圓排列1是: 1 新元素放入: 1x32 13x2 132x 2 3原先的圓排列(a) -> 新加1個(gè)元素 -> (ax)原先的圓排列(ab) -> 新加1個(gè)元素 -> (axb) (abx)原先的圓排列(abc) -> 新加1個(gè)元素 -> (axbc) (abxc) (abcx)原先的圓排列(abcd) -> 新加1個(gè)元素 -> (axbcd) (abxcd) (abcxd) (abcdx)' 即,對(duì)應(yīng)某一個(gè) 唯一確定的 size=n的 圓排列, 新加1個(gè)元素,會(huì)有 n種 新的圓排列 '因?yàn)檫@個(gè)新元素,可以放到任意兩元素的中間故,這個(gè)元素5 放到 dp[4][2]里:dp[4][2] = cont ' 表示,有cont種 方案數(shù) '對(duì)于,dp[4][2]里的 “某一個(gè)方案”來說: 這個(gè)元素5: 放入圓排列1/2里,會(huì)產(chǎn)生 (圓排列1的size) + (圓排列2的size)種 方案dp[n][m] * n -> dp[n + 1][m]' 這里的 *n, 其實(shí)是: 這m個(gè)圓的size 之和 = n '[i - 1][j - 1][i - 1][j] 更新-> dp[i][j] ' 和排列數(shù)公式的dp更新,完全一樣。 ' ' 注意for循環(huán)的順序, 即,當(dāng)?shù)搅薲p[i][j]時(shí) 他的答案必須是正確的!!!'dp[1][1] = 1; FOR(i, 1, n, 1){FOR(j, 1, i, 1){dp[i + 1][j] += (dp[i][j] * i); dp[i + 1][j + 1] += (dp[i][j]);} }

例題

https://leetcode-cn.com/problems/number-of-ways-to-rearrange-sticks-with-k-sticks-visible/給定n和m 有n個(gè)數(shù)字:1,2,3...,n 將他們排成一排(n!種) 數(shù)字代表高度 問,從左側(cè)往右側(cè)去看,恰好可以看到m個(gè)數(shù)字 的方案數(shù)n=3, m=2 (1 3 2) &nbsp; (2 3 1) &nbsp; (2 1 3)比如,我們令 看到的這m個(gè)數(shù)字為: (h1, ..都比h1小) (h2, ..都比h2小) (h3 ..都比h3小) ... 自然有:h1 < h2 < h3, ..., < hm方法1:思考“第1類 斯特林?jǐn)?shù)”: (圓排列1) (圓排列2) ...比如圓排列1,他對(duì)應(yīng)的直線排列是: 123, 231, 321比如圓排列2,他對(duì)應(yīng)的直線排列是: 465, 654, 546' 我們選擇, (321) (654) 這種直線排列 '因?yàn)?#xff0c;一種圓排列,對(duì)應(yīng)有很多個(gè) 直線排列,我們選擇: 以"最大元素"為開頭的 直線排列根據(jù): (h1, ..都比h1小) (h2, ..都比h2小) (h3 ..都比h3小) ...得到: 圓排列1 圓排列2 圓排列3' 任何一種直線排列,唯一對(duì)應(yīng) 1種圓排列!。 1種圓排列,對(duì)應(yīng)很多種 直線排列 '不同的直線排列,可能對(duì)應(yīng)同1個(gè)圓排列!!! 比如: (123)231) (312) 對(duì)應(yīng)的是: 1種 圓排列但是: 開頭元素相同的直線排列,一定對(duì)應(yīng)不同的 圓排列!!!比如: (312) (321) 他對(duì)應(yīng)的是: 2種 圓排列本題中,h1 < h2 < h3 < .. 的限定, 對(duì)應(yīng)于: 第1類斯特林?jǐn)?shù)中的:不同圓排列 順序無關(guān)所以, (312) (321) 在本題中,是不同方案; 在圓排列中,也是不同的圓排列因此,該題 就是 第1類斯特林?jǐn)?shù)方法2:前提是,你必須知道:令看到的這m個(gè)數(shù)字為: h1 < h2 < h3, ..., hm(h1, ..都比h1小) (h2, ..都比h2小) (h3 ..都比h3小) ...' 以上的這m個(gè)集合, size >= 1 '(4, 2, 1, 3) (5) (8, 6, 7) 這是一種方案(4, 3!) (5) (8, 2!)3! * 2!個(gè),都是合法的即,每個(gè)集合,開頭元素最大,其他元素的可以進(jìn)行 全排列涉及到“方案數(shù)”,一定要想到dp!!!令dp[n][m]為: 將n個(gè)元素(1,2,3...,n) 分成 m個(gè)集合 的方案數(shù)(對(duì)應(yīng)題目的要求)此時(shí),這個(gè)dp[n][m]里的每個(gè)方案,都滿足:(h1, ..都比h1小..) (h2, ..都比h2小..) (h3 ..都比h3小..) ...當(dāng)新增(n+1)這個(gè)元素1, 這個(gè)元素,單獨(dú)成1個(gè)集合(他只能放到最后,因?yàn)?span id="ozvdkddzhkzd" class="token punctuation">(n+1)是最大的元素)dp[n+1][m+1] = dp[n][m]2, 這個(gè)元素,放到這m個(gè)集合中dp[8][3]: (4, 2, 1, 3) (5) (8, 6, 7)因?yàn)檫@個(gè)元素是n+1,是最大的元素!!!! 所以,他只能 放到第m個(gè) 最后的集合中去。即: (4, 123) (5) (9, 678)“其實(shí),這是錯(cuò)的!!!!”9,確實(shí)是只能在最后1個(gè)集合里。 但是,9不一定是放到 “原先的最后集合”因?yàn)?#xff0c;9放到哪個(gè)集合里, 這個(gè)集合 立刻就變成了 最后的集合!!!9放到5集合里,他會(huì)自動(dòng)變成: (4, 123(8, 67) (9, 5)' 即, 這個(gè)新元素9,是可以放到 這m個(gè)集合里,任意的集合里面的!!!'以,(4, 123)來看, 比如我們將9 放到這個(gè)集合里。假如是: dp[nex] = dp[cur]意味著,你只得到了: (9, 4, 3!) = 3!= 6種方案但其實(shí),(9, 4!) 都是合法的。 9的后面,不一定是4,是誰都可以。即,cur的dp中,某個(gè)集合是: (最大H, c個(gè)<H的全排列) 方案是c!(這是在cur的dp里)現(xiàn)加入一個(gè)新元素New,(New > H)如果你直接dp[cur] -> dp[nex]會(huì)得到: (New, H, c個(gè)<H的全排列)而, 此時(shí),H不一定是 第2個(gè)元素,這c個(gè)<H的元素,都可以是第2個(gè)元素因此是: dp[cur] * (集合size) -> dp[nex]dp[cur] * (集合1的size) -> dp[nex]dp[cur] * (集合2的size) -> dp[nex]dp[cur] * (集合3的size) -> dp[nex]綜合便是: dp[n][m] * n -> dp[n + 1][m]這確實(shí)很復(fù)雜,最好想到圓排列。1, 新元素n+1,不是只能放到 原先dp的最后一個(gè)集合里!!!放到任意一個(gè)集合里,都可以。 這很難2, 新元素n+1,放到某個(gè)(size)的集合里原先集合里是:(size-1)!的全排列。 而現(xiàn)在集合可以是:(size)!的全排列所以,需要 *= size這個(gè)dp定義,很重要。 比如dp[6][2](3, 1, 2) (6, 5, 4)(5, 4, 3) (6, 1, 2)(1) (6, 5, 4, 3, 2)' 即,每個(gè)集合的開頭元素 不固定,集合大小也不固定!! '肯定是不固定的,這就是dp的本質(zhì)。 他就是指的一個(gè)“泛化”的形式。一個(gè)簡(jiǎn)單的dp[6][2], 包含了很多的具體方案 你可以從,集合大小來看 '因?yàn)?#xff0c;這個(gè)dp的信息,只有:6個(gè)元素,2個(gè)集合 '集合的個(gè)數(shù)是固定的。(1) (5)(2) (4)(3) (3)(4) (2)(5) (1) 這個(gè)dp[6][2],一定由以上的5種分配 組成。

總結(jié)

以上是生活随笔為你收集整理的圆排列、循环排列、斯特林数、stirling的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。