AIRobot

AIRobot quick note


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

一次不定方程非负整数解的组数

发表于 2019-10-04 分类于 math
本文字数: 672 阅读时长 ≈ 1 分钟

问题

先从一个问题引入:假如一个湖里有4种鱼,而我总共钓上来了10条鱼,请问鱼的组合共有多少种可能?(注意这个问题里某种鱼的条数可以为0)

更一般地,我们可以假设有r种鱼,且一共钓到了n条,那可能的结果数就是满足:

$x_1+x_2+⋯+x_r=n$

的非负整数向量$(x_1,x_2,⋯,x_r)$的个数。生活中经常会碰到类似的问题,所以就称呼为“不定方程非负整数解个数”问题。

解法

要计算非负整数向量的个数,我们可以先考虑正整数向量$(x_1,x_2,⋯,x_r)$的个数。我们假设有n个连续的数值1排成一行:

$111⋯11$

注意,总共有n-1个间隔,我们需要将r-1个加号放到这些间隔中。例如,如果n=8,r=3,那么选择

$1+1111+111$

对应解$x_1=1,x_2=4,x_3=3$。

结论1

共有$C^{r−1}_{n−1}$个不同的正整数向量$(x_1,x_2,⋯,x_r)$
满足
$x_1+x_2+⋯+x_r = n , x_i>0,i=1,⋯,r$

为了得到非负整数解(而不是正整数解)的个数,注意,$x_1+x_2+⋯+x_r=n$
的非负整数解个数与$y_1+y_2+⋯+y_r=n+r$的正整数解个数是相同的

令$y_i=x_i+1,i=1,⋯,r$
因此得到结论2

结论2

共有$C^{r−1}_{n+r−1}$个不同的非负整数向量$(x_1,x_2,⋯,x_r)$满足 $x_1+x_2+⋯+x_r=n$

所以回到最开始的问题,总共有$C^3_{10+4−1} = C^3_13 = 286$种可能的情况

note4
linux与windows双系统时间不一致的问题
  • 文章目录
  • 站点概览
AIRobot

AIRobot

AIRobot quick note
130 日志
15 分类
23 标签
GitHub E-Mail
Creative Commons
  1. 1. 问题
  2. 2. 解法
  3. 3. 结论1
  4. 4. 结论2
0%
© 2023 AIRobot | 716k | 10:51