【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 )
文章目錄
- 一、多重集組合 ( 所有元素重復度大于組合數 )
- 二、多重集組合 所有元素重復度大于組合數 推導 1 ( 分割線推導 )
- 二、多重集組合 所有元素重復度大于組合數 推導 2 ( 不定方程非負整數解個數推導 )
排列組合參考博客 :
- 【組合數學】基本計數原則 ( 加法原則 | 乘法原則 )
- 【組合數學】集合的排列組合問題示例 ( 排列 | 組合 | 圓排列 | 二項式定理 )
- 【組合數學】排列組合 ( 排列組合內容概要 | 選取問題 | 集合排列 | 集合組合 )
- 【組合數學】排列組合 ( 排列組合示例 )
- 【組合數學】排列組合 ( 多重集排列 | 多重集全排列 | 多重集非全排列 所有元素重復度大于排列數 | 多重集非全排列 某些元素重復度小于排列數 )
一、多重集組合 ( 所有元素重復度大于組合數 )
多重集 :
S={n1?a1,n2?a2,?,nk?ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1??a1?,n2??a2?,?,nk??ak?},???0≤ni?≤+∞
- 元素種類 : 多重集中含有 kkk 種不同的元素 ,
- 元素表示 : 每個元素表示為 a1,a2,?,aka_1 , a_2 , \cdots , a_ka1?,a2?,?,ak? ,
- 元素個數 : 每個元素出現的次數是 n1,n2,?,nkn_1, n_2, \cdots , n_kn1?,n2?,?,nk? ,
- 元素個數取值 : nin_ini? 的取值要求是 大于 000 , 小于正無窮 +∞+ \infty+∞ ;
上述多重集的組合 , 當 所有元素的重復度 nin_ini? 組大于組合數 rrr 時 , r≤nir \leq n_ir≤ni? 時 , 多重集的組合數為
N=C(k+r?1,r)N= C(k + r - 1, r)N=C(k+r?1,r)
二、多重集組合 所有元素重復度大于組合數 推導 1 ( 分割線推導 )
多重集 :
S={n1?a1,n2?a2,?,nk?ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1??a1?,n2??a2?,?,nk??ak?},???0≤ni?≤+∞
取 rrr 種元素的組合 , r≤nir \leq n_ir≤ni? , 推導過程如下 :
在 kkk 種元素中 , 取 rrr 種元素 , 每種元素取 0~r0 \sim r0~r 個不等的元素 ,
使用 k?1k-1k?1 個分割線分割 kkk 種元素的位置 , k?1k - 1k?1 個分割線相當于組成了 kkk 個盒子 , 在每個盒子中放 0~r0 \sim r0~r 個不等的元素 ,
放置的總元素的個數是 rrr 個 , 分割線個數是 k?1k-1k?1 個 , 這里就產生了一個組合問題 , 在 k?1k-1k?1 個分割線 和 rrr 個元素之間 , 選取 rrr 個元素 , 就是 多重集的 r≤nir \leq n_ir≤ni? 情況下的 組合個數 ;
結果是 :
N=C(k+r?1,r)N= C(k + r - 1, r)N=C(k+r?1,r)
二、多重集組合 所有元素重復度大于組合數 推導 2 ( 不定方程非負整數解個數推導 )
多重集 :
S={n1?a1,n2?a2,?,nk?ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1??a1?,n2??a2?,?,nk??ak?},???0≤ni?≤+∞
取 rrr 種元素的組合 , r≤nir \leq n_ir≤ni? , 推導過程如下 :
多重集 SSS 每個元素取值 :
-
第 111 種元素取值個數 : 元素 a1a_1a1? 的取值個數是 x1x_1x1? ,
-
第 222 種元素取值個數 : 元素 a2a_2a2? 的取值個數是 x2x_2x2? ,
?\; \; \, \ \ \ \ \ \ \vdots???????
- 第 kkk 種元素取值個數 :元素 aka_kak? 的取值個數是 xkx_kxk? ;
不定方程 x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r ;
xix_ixi? 可以為 000 , 即某個元素取值個數可以是 000 ;
則多重集 SSS 的 rrr 組合是 : {x1?a1,x2?a2,?,xk?ak}\{ x_1 \cdot a_1 , x_2 \cdot a_2 , \cdots , x_k \cdot a_k \}{x1??a1?,x2??a2?,?,xk??ak?}
xix_ixi? 的取值是非負整數
多重集組合與方程對應 : 只要有一個 rrr 組合 , 就可以寫出一個對象的 方程 x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r 出來 ;
非負整數解與多重集組合對應 : x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r 不定方程的一組非負整數解 , 就對應著 一個 SSS 多重集的 rrr 組合 ;
一一對應關系 : 上述
方程的非負整數解的個數
與
SSS 多重集的 rrr 組合個數 一一對應 ;
求 SSS 多重集的 rrr 組合數 , 就可以轉化成 求 x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r 方程非負整數解個數 ;
將上述解寫成一個序列 , 序列中使用 k?1k-1k?1 個 000 , 分割 kkk 組 111 ;
1?1?x1個1\begin{matrix} \underbrace{ 1 \cdots 1 } \\ x_1個1 \end{matrix}1?1?x1?個1? 000 1?1?x2個1\begin{matrix} \underbrace{ 1 \cdots 1 } \\ x_2個1 \end{matrix}1?1?x2?個1? 000 1?1?x3個1\begin{matrix} \underbrace{ 1 \cdots 1 } \\ x_3個1 \end{matrix}1?1?x3?個1? 000 ?\cdots? 000 1?1?xk個1\begin{matrix} \underbrace{ 1 \cdots 1 } \\ x_k個1 \end{matrix}1?1?xk?個1?
不定方程每個解 都對應著 上述 k?1k-1k?1 個 000 和 rrr 個 111 的一個排列 ;
相當于一個多重集 S′={r?1,(k?1)?0}S' = \{ r \cdot 1 , (k-1) \cdot 0 \}S′={r?1,(k?1)?0} 的全排列 ;
這里就將 多重集的組合問題 , 轉化成了 另外一個多重集的全排列問題 , 多重集全排列是有公式的 ;
多重集全排列的公式是 : ( 回顧知識點 ① )
S={n1?a1,n2?a2,?,nk?ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1??a1?,n2??a2?,?,nk??ak?},???0≤ni?≤+∞
★ 全排列 : r=n1+n2+?+nk=nr = n_1 + n_2 + \cdots + n_k = nr=n1?+n2?+?+nk?=n
N=n!n1!n2!?nk!N = \cfrac{n!}{n_1! n_2! \cdots n_k!}N=n1?!n2?!?nk?!n!?
★ 多重集的全排列數是 元素總數階乘 , 除以 所有重復度的階乘 ;
參考 : 【組合數學】排列組合 ( 多重集排列 | 多重集全排列 | 多重集非全排列 所有元素重復度大于排列數 | 多重集非全排列 某些元素重復度小于排列數 ) 二、多重集全排列
( 回顧知識點完畢 ① )
可以根據上述公式 , 計算 多重集 S′={r?1,(k?1)?0}S' = \{ r \cdot 1 , (k-1) \cdot 0 \}S′={r?1,(k?1)?0} 的全排列 , 結果是 :
N=(r+k?1)!r!(k?1)!N = \cfrac{(r + k - 1) !}{ r! (k-1)! }N=r!(k?1)!(r+k?1)!?
★ 排列數與組合數回顧 : ( 回顧知識點 ② )
- 排列數 : nnn 元集 SSS , 從 SSS 集合中 有序 , 不重復 選取 rrr 個元素 , P(n,r)=n!(n?r)!P(n,r) = \dfrac{n!}{(n-r)!}P(n,r)=(n?r)!n!?
- 組合數 : nnn 元集 SSS , 從 SSS 集合中 無序 , 不重復 選取 rrr 個元素 , C(n,r)=P(n,r)r!n!(n?r)!r!C(n,r) = \dfrac{P(n,r)}{r!} \dfrac{n!}{(n-r)!r!}C(n,r)=r!P(n,r)?(n?r)!r!n!?
參考 : 【組合數學】排列組合 ( 排列組合內容概要 | 選取問題 | 集合排列 | 集合組合 )
( 回顧知識點完畢 ② )
由上述的組合數可以看出 , N=(r+k?1)!r!(k?1)!N = \cfrac{(r + k - 1) !}{ r! (k-1)! }N=r!(k?1)!(r+k?1)!?
的值正好是從 r+k?1r + k - 1r+k?1 個元素中取 rrr 個元素的組合數 ;
N=(r+k?1)!r!(k?1)!=C(r+k?1,r)N = \cfrac{(r + k - 1) !}{ r! (k-1)! } = C(r + k - 1 , r)N=r!(k?1)!(r+k?1)!?=C(r+k?1,r)
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【组合数学】排列组合 ( 多重集排列 |
- 下一篇: 【组合数学】排列组合 ( 多重集组合数示