【ACM数论】不定方程解的数量

不定方程解的数量

抛出问题:

求不定方程 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的解的数量,且xi1,(1ik

1、隔板法

​ 将 n n n看成 n n n个球, k k k个解表示最终拆成了 k k k

​ 那么问题等价于:用 k − 1 k-1 k1个板将 n n n个球隔开, n n n个球有 n − 1 n-1 n1个缝隙,这 n − 1 n-1 n1缝隙可以插入 k − 1 k-1 k1个隔板,问:有多少种放法?

​ 显然,有 C n − 1 k − 1 C_{n-1}^{k-1} Cn1k1种放法

​ 此时,基本问题解决了

2、将 x i ≥ 1 x_i\ge 1 xi1改成 x i ≥ a i x_i\ge a_i xiai

​ 原问题变为:


{ 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=nx1a1x2a2....xnan
我们只需要将问题转化为原来的子问题:

​ 令 y i = x i − ( a i − 1 ) y_i=x_i-(a_i-1) yi=xi(ai1)

​ 此时: y i ≥ 1 y_i\ge 1 yi1

那么此时:
{ 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)+kyi1
化简一下:
{ 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=ni=1kai+kyi1
所以此时这种情况的解的数量为:
C n − ∑ i = 1 k a i + k k − 1 C_{n-\sum_{i=1}^{k}a_i+k}^{k-1} Cni=1kai+kk1

3、再变形! x 1 + x 2 + x 3 + . . . . . . x k ≤ n x_1+x_2+x_3+......x_k\le n x1+x2+x3+......xkn的解的数量(其余条件不变,即 x i ≥ 1 ,( 1 ≤ i ≤ k ) x_i\ge1,(1\le i\le k) xi1,(1ik

引入一个变量 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 z0

3.1、 z = 0 z=0 z=0

问题没有发生变化,此时的解法为: C n − 1 k − 1 C_{n-1}^{k-1} Cn1k1

3.2、 z ≥ 1 z\ge 1 z1

此时的 z z z相当于 x k + 1 x_{k+1} xk+1,相当于在原问题上加一个解,

此时的解法为:
C n − 1 k C_{n-1}^{k} Cn1k
所以最终的解的数量为:
C n − 1 k − 1 + C n − 1 k C_{n-1}^{k-1}+C_{n-1}^{k} Cn1k1+Cn1k

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值