網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
不定方程的解的個(gè)數(shù)
Lv0
? 首先我們看這樣一個(gè)問(wèn)題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^n x_i = b i=1∑n?xi?=b 的非負(fù)整數(shù)解的個(gè)數(shù)。
? 這個(gè)問(wèn)題就非常簡(jiǎn)單啊,我們稍微把他轉(zhuǎn)化一下,這個(gè)問(wèn)題就等價(jià)于有
n
n
n 個(gè)小朋友分
b
b
b 個(gè)糖果,每個(gè)小朋友至少分到
0
0
0 個(gè)糖果(好慘啊),求分完糖果的方案數(shù)。
? 然后我們?cè)俎D(zhuǎn)化一下問(wèn)題,現(xiàn)在有 b b b 個(gè)糖果排成一排,在其中放 n ? 1 n - 1 n?1 個(gè)木板(可以有多個(gè)木板在同一個(gè)格子里),這樣就能把這些糖果分成 n n n 部分,求方木板的方案數(shù)。
? 這樣就很顯然了嘛,答案就是總共有 n + b ? 1 n + b - 1 n+b?1 個(gè)格子可選,在其中選出 n ? 1 n - 1 n?1 個(gè)格子的方案數(shù),也就是 C n + b ? 1 n ? 1 C_{n + b - 1}^{n - 1} Cn+b?1n?1?。
Lv1
? 還有這樣一個(gè)問(wèn)題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^nx_i = b i=1∑n?xi?=b 且 x i ≥ l i x_i \geq l_i xi?≥li? 的非負(fù)整數(shù)解數(shù)。顯然我們非常不希望出現(xiàn)后面的約束條件,于是我們考慮這樣:
∑ i = 1 n x i = b ? ∑ i = 1 n l i \sum_{i = 1}^nx_i = b - \sum_{i = 1}^nl_i i=1∑n?xi?=b?i=1∑n?li?
? 這樣一來(lái)我們就把問(wèn)題轉(zhuǎn)化成了第一個(gè)問(wèn)題一樣的形式了(就相當(dāng)于我們減掉了 x i < l i x_i < l_i xi?<li? 的貢獻(xiàn)),答案就是:
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=1∑n?li??1n?1?? ??
Lv2
? 最后一個(gè)問(wèn)題,求 ∑ i = 1 n x i = b \sum\limits_{i = 1}^nx_i = b i=1∑n?xi?=b 且 x i ≤ r i x_i \leq r_i xi?≤ri? 的非負(fù)整數(shù)解的個(gè)數(shù)。這個(gè)問(wèn)題就不像上一個(gè)那么好轉(zhuǎn)換了。所以我么考慮容斥掉 x i ≥ r i + 1 x_i \geq r_i + 1 xi?≥ri?+1 的貢獻(xiàn)。
? 我們令集合 S S S 表示 ∑ i = 1 n ( x i ≥ r i + 1 ) \sum\limits_{i = 1}^n(x_i \geq r_i + 1) i=1∑n?(xi?≥ri?+1) 的二進(jìn)制集合。這樣就相當(dāng)于求 S = { 0 , 0 , ? ? , 0 } S = \{ 0, 0, \cdots, 0 \} S={0,0,?,0} 的時(shí)候的答案。我們令 f ( S ) f(S) f(S) 表示該二進(jìn)制集合為 S S S 時(shí)的答案。則有:
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 表示總數(shù),也就是第一個(gè)問(wèn)題的答案。 U = { 0 , 0 , ? ? , 0 } U = \{ 0, 0, \cdots, 0 \} U={0,0,?,0} ( n n n 個(gè) 0 0 0)。上面這個(gè)式子就是容斥原理嘛。
? 然后其中(等價(jià)于第二個(gè)問(wèn)題):
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?i∈S∑?(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?i∈S∑?(ri?+1)n?1?)=S?U∑?(?1)∣S∣f(S)?
原文鏈接:https://blog.csdn.net/ID246783/article/details/125918474
相關(guān)推薦
- 2023-07-18 獲取Linux和windows的MAC地址
- 2024-02-26 JqGrid獲得所有選中行數(shù)據(jù)ID數(shù)組,獲取所有行的ID數(shù)組
- 2022-06-01 Android自制九宮格解鎖控件_Android
- 2023-10-14 C/C++--跨平臺(tái)--預(yù)定義宏 WIN32、_WIN32、_WIN64
- 2022-11-11 C++泛型模板約束深入講解_C 語(yǔ)言
- 2022-06-28 C#使用RestClient調(diào)用Web?API_C#教程
- 2023-03-17 git?push時(shí)卡住的解決方法(長(zhǎng)時(shí)間不報(bào)錯(cuò)也不自動(dòng)退出)_相關(guān)技巧
- 2022-07-19 Linux應(yīng)該怎么使用命令
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支