日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

關于不定方程解的個數的問題

作者:lAWTYl 更新時間: 2022-07-22 編程語言

不定方程的解的個數

Lv0

? 首先我們看這樣一個問題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^n x_i = b i=1n?xi?=b 的非負整數解的個數。

? 這個問題就非常簡單啊,我們稍微把他轉化一下,這個問題就等價于有 n n n 個小朋友分 b b b 個糖果,每個小朋友至少分到 0 0 0 個糖果(好慘啊),求分完糖果的方案數。

? 然后我們再轉化一下問題,現在有 b b b 個糖果排成一排,在其中放 n ? 1 n - 1 n?1 個木板(可以有多個木板在同一個格子里),這樣就能把這些糖果分成 n n n 部分,求方木板的方案數。

? 這樣就很顯然了嘛,答案就是總共有 n + b ? 1 n + b - 1 n+b?1 個格子可選,在其中選出 n ? 1 n - 1 n?1 個格子的方案數,也就是 C n + b ? 1 n ? 1 C_{n + b - 1}^{n - 1} Cn+b?1n?1?

Lv1

? 還有這樣一個問題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^nx_i = b i=1n?xi?=b x i ≥ l i x_i \geq l_i xi?li? 的非負整數解數。顯然我們非常不希望出現后面的約束條件,于是我們考慮這樣:

∑ i = 1 n x i = b ? ∑ i = 1 n l i \sum_{i = 1}^nx_i = b - \sum_{i = 1}^nl_i i=1n?xi?=b?i=1n?li?

? 這樣一來我們就把問題轉化成了第一個問題一樣的形式了(就相當于我們減掉了 x i < l i x_i < l_i xi?<li? 的貢獻),答案就是:

a n s = ( n + b ? ∑ i = 1 n l i ? 1 n ? 1 ) ans = \begin{pmatrix} n + b - \sum\limits_{i = 1}^n l_i - 1 \\ n - 1 \end{pmatrix} ans=? ??n+b?i=1n?li??1n?1?? ??

Lv2

? 最后一個問題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^nx_i = b i=1n?xi?=b x i ≤ r i x_i \leq r_i xi?ri? 的非負整數解的個數。這個問題就不像上一個那么好轉換了。所以我么考慮容斥掉 x i ≥ r i + 1 x_i \geq r_i + 1 xi?ri?+1 的貢獻。

? 我們令集合 S S S 表示 ∑ i = 1 n ( x i ≥ r i + 1 ) \sum\limits_{i = 1}^n(x_i \geq r_i + 1) i=1n?(xi?ri?+1) 的二進制集合。這樣就相當于求 S = { 0 , 0 , ? ? , 0 } S = \{ 0, 0, \cdots, 0 \} S={0,0,?,0} 的時候的答案。我們令 f ( S ) f(S) f(S) 表示該二進制集合為 S S S 時的答案。則有:

f ( S = { 0 , 0 , ? ? , 0 } ) = t o t ? ∑ S ? U ( ? 1 ) ∣ S ∣ + 1 f ( S ) f(S = \{0, 0, \cdots, 0\}) = tot - \sum_{S \subset U}(-1)^{|S| + 1}f(S) f(S={0,0,?,0})=tot?S?U?(?1)S+1f(S)

? 其中 t o t tot tot 表示總數,也就是第一個問題的答案。 U = { 0 , 0 , ? ? , 0 } U = \{ 0, 0, \cdots, 0 \} U={0,0,?,0} n n n 0 0 0)。上面這個式子就是容斥原理嘛。

? 然后其中(等價于第二個問題):

f ( S ) = ( n + b ? 1 ? ∑ i ∈ S ( r i + 1 ) n ? 1 ) f(S) = \begin{pmatrix} n + b - 1 - \sum\limits_{i \in S} (r_i + 1) \\ n - 1 \end{pmatrix} f(S)=(n+b?1?iS?(ri?+1)n?1?)

? 于是:

a n s = ( n + b ? 1 n ? 1 ) ? ∑ S ? U ( ? 1 ) ∣ S ∣ + 1 f ( S ) = ( n + b ? 1 n ? 1 ) + ∑ S ? U ( ? 1 ) ∣ S ∣ ( n + b ? 1 ? ∑ i ∈ S ( r i + 1 ) n ? 1 ) = ∑ S ? U ( ? 1 ) ∣ S ∣ f ( S ) \begin{aligned} ans & = \begin{pmatrix} n + b - 1 \\ n - 1 \end{pmatrix} - \sum_{S \subset U}(-1)^{|S| + 1} f(S) \\ & = \begin{pmatrix} n + b - 1 \\ n - 1 \end{pmatrix} + \sum_{S \subset U} (-1)^{|S|} \begin{pmatrix} n + b - 1 - \sum\limits_{i \in S}(r_i + 1) \\ n - 1 \end{pmatrix} \\ & = \sum_{S \subseteq U} (-1)^{|S|}f(S) \end{aligned} ans?=(n+b?1n?1?)?S?U?(?1)S+1f(S)=(n+b?1n?1?)+S?U?(?1)S(n+b?1?iS?(ri?+1)n?1?)=S?U?(?1)Sf(S)?

原文鏈接:https://blog.csdn.net/ID246783/article/details/125918474

欄目分類
最近更新