不定方程解的数量
抛出问题:
求不定方程 x 1 + x 2 + x 3 + . . . . . . x k = n 的解的数量,且 x i ≥ 1 ,( 1 ≤ i ≤ k ) 求不定方程 x_1+x_2+x_3+......x_k=n的解的数量,且x_i\ge1,(1\le i\le k) 求不定方程x1+x2+x3+......xk=n的解的数量,且xi≥1,(1≤i≤k)
1、隔板法
将 n n n看成 n n n个球, k k k个解表示最终拆成了 k k k份
那么问题等价于:用 k − 1 k-1 k−1个板将 n n n个球隔开, n n n个球有 n − 1 n-1 n−1个缝隙,这 n − 1 n-1 n−1缝隙可以插入 k − 1 k-1 k−1个隔板,问:有多少种放法?
显然,有 C n − 1 k − 1 C_{n-1}^{k-1} Cn−1k−1种放法
此时,基本问题解决了
2、将 x i ≥ 1 x_i\ge 1 xi≥1改成 x i ≥ a i x_i\ge a_i xi≥ai
原问题变为:
{
x
1
+
x
2
+
x
3
+
.
.
.
.
.
.
x
k
=
n
x
1
≥
a
1
x
2
≥
a
2
.
.
.
.
x
n
≥
a
n
\begin{cases} x_1+x_2+x_3+......x_k=n \\ x_1\ge a_1 \\ x_2\ge a_2 \\ .... \\ x_n\ge a_n \end{cases}
⎩
⎨
⎧x1+x2+x3+......xk=nx1≥a1x2≥a2....xn≥an
我们只需要将问题转化为原来的子问题:
令 y i = x i − ( a i − 1 ) y_i=x_i-(a_i-1) yi=xi−(ai−1)
此时: y i ≥ 1 y_i\ge 1 yi≥1
那么此时:
{
y
1
+
y
2
+
y
3
+
.
.
.
.
.
y
k
=
x
1
+
x
2
+
.
.
+
x
k
−
(
a
1
+
a
2
+
.
.
+
a
k
)
+
k
y
i
≥
1
\begin{cases} y_1+y_2+y_3+.....y_k=x_1+x_2+..+x_k-(a_1+a_2+..+a_k)+k\\ y_i\ge 1 \end{cases}
{y1+y2+y3+.....yk=x1+x2+..+xk−(a1+a2+..+ak)+kyi≥1
化简一下:
{
y
1
+
y
2
+
y
3
+
.
.
.
.
.
y
k
=
n
−
∑
i
=
1
k
a
i
+
k
y
i
≥
1
\begin{cases} y_1+y_2+y_3+.....y_k=n-\sum_{i=1}^{k}a_i+k\\ y_i\ge 1 \end{cases}
{y1+y2+y3+.....yk=n−∑i=1kai+kyi≥1
所以此时这种情况的解的数量为:
C
n
−
∑
i
=
1
k
a
i
+
k
k
−
1
C_{n-\sum_{i=1}^{k}a_i+k}^{k-1}
Cn−∑i=1kai+kk−1
3、再变形! x 1 + x 2 + x 3 + . . . . . . x k ≤ n x_1+x_2+x_3+......x_k\le n x1+x2+x3+......xk≤n的解的数量(其余条件不变,即 x i ≥ 1 ,( 1 ≤ i ≤ k ) x_i\ge1,(1\le i\le k) xi≥1,(1≤i≤k))
引入一个变量 z z z
使: x 1 + x 2 + x 3 + . . . . . . x k + z = n x_1+x_2+x_3+......x_k+z= n x1+x2+x3+......xk+z=n,其中 z ≥ 0 z\ge 0 z≥0
3.1、 z = 0 z=0 z=0时
问题没有发生变化,此时的解法为: C n − 1 k − 1 C_{n-1}^{k-1} Cn−1k−1
3.2、 z ≥ 1 z\ge 1 z≥1时
此时的 z z z相当于 x k + 1 x_{k+1} xk+1,相当于在原问题上加一个解,
此时的解法为:
C
n
−
1
k
C_{n-1}^{k}
Cn−1k
所以最终的解的数量为:
C
n
−
1
k
−
1
+
C
n
−
1
k
C_{n-1}^{k-1}+C_{n-1}^{k}
Cn−1k−1+Cn−1k