组合数学
传说早在 \texttt{114514} 年前,
一位名为忆哀的神灵来到地球,
发现了人类——另一种有智慧的物种。
她觉得这很有趣,为了加速人类文明的发展,
她向人间传下了一类计数问题——十二重计数,
这也正是组合数学的开端。
而只有搞明白这类问题,才能在组合数学上继续深入。
基本原理
求证不等式的方法有几种,最简单的是:
设函数,证明函数恒大于或小于零。
直接对函数求导,尝试证明函数最小值大于零,或最大值小于零。
注意到多项式只要求够多次数多导数,一定会变为零,因此如果不好解决,继续求导,对高阶导数尝试分析其是否恒正或恒负。
注意:
解一元一次不等式 ax>b,需要按照 a>0,a=0,a<0 分类讨论。
解一元一次不等式 ax>b,其中 x\in[m,n],先按照 a>0,a=0,a<0 分类讨论,然后按照 \dfrac{b}{a} 是否落在区间 [m,n] 内。
边界条件:
二次项系数不含参数且自变量没有限制时,临界条件是 \Delta = 0。
二次项系数含有参数且自变量没有限制时,临界条件是二次项系数为零与 \Delta = 0 联立。
二次项系数含参数且自变量有限制时,临界条件是二次项系数为零,\Delta = 0 与区间端点处的函数值为零同时联立。
对于更复杂的情况,一般步骤如下:
能否直接求导解决。
能否通过常见变形(本文简单变形部分)后求导。
能否通过隐零点判断。
能否使用放缩技巧。
变形法:
除以单项式变形(x^n)。
整体代换、同构化变形、拆分函数、局部求值。
对数化:对数化是利用对数性质,将函数式中的对数与常数合并,再使用相关不等式进行放缩。例如:
\ln x+a=\ln(xe^a)。
指数化:指数化是利用指数性质,将式子或者参数转移到指数位置上,以方便放缩。例如:
xe^x=e^{x+\ln x}(x>0),a^x=e^{\ln a^x}=e^{x\ln a}。
简单不等式
\boxed{e^x\ge x+1,\quad x\in\R}\tag a
证明:设 f(x)=e^x-x-1,那么:
f'(x)=e^x-1
因此,当 x>0 时,f'(x)>0;当 x<0 时 f'(x)<0,因此:
f(x)\ge f(0)=0
即 e^x\ge x+1,带入 x\gets\ln x 有:
\boxed{x\ge\ln x+1,\quad x>0}\tag b
容斥原理
容斥原理是一种在集合上应用的常用计数方法,其基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来(容),然后再把计数时重复计算的数目排斥出去(斥),使得计算的结果既无遗漏又无重复。容斥原理的核心计数规则可以叙述为:奇加偶减。
我们通过一个具体例子来理解。
例 1:将甲、乙、丙、丁四位老师分配到 A、B、C、D 四个班,要求甲不在 A 班,丁不在 B 班,求总分配方案数。
解:无限制的方案数为 4! = 24。我们依次减去甲在 A 班的方案数 3!,再减去丁在 B 班的方案数 3!。注意到甲在 A 班且丁在 B 班的方案被减了两次,因此需要加回一次 2!,最终得:
4!-2\times 3!+2!=24-2\times 6+2=14
一般地,对于 n 个集合的并集,容斥原理给出如下公式:
\def\abs#1{\left\lvert{#1}\right\rvert} \abs{\bigcup_{i=1}^{n}A_i}=\sum_{S\subseteq[1,n]\wedge\mathbb Z}(-1)^{\abs S-1}\abs{\bigcap_{i\in S}A_i}
对于三个集合的情形,公式简化为:
|A\cup B\cup C|=|A|+|B|+|C|-|A\cap B|-|A\cap C|-|B\cap C|+|A\cap B\cap C|
将容斥原理与数论结合,可以解决一类关于整除性的计数问题。容易知道,1 \sim n 中 k 的倍数有:
\left\lfloor{n\over k}\right\rfloor
例 2:在 1 \sim 1000 中,有多少个数既不是 3 的倍数,也不是 5 的倍数?
解:设集合 A 为 1 \sim 1000 中 3 的倍数,B 为 5 的倍数,则:
\def\floor#1{\left\lfloor{#1}\right\rfloor} |A|=\floor{1000\over3}=333\\[0.5em] |B|=\floor{1000\over5}=200\\[0.5em] |A\cap B|=\floor{1000\over15}=66\\[0.5em] |A\cup B|=|A|+|B|-|A\cap B|=467
我们再取补集,答案为 1000 - 467 = 533。
鸽巢原理
鸽巢原理又称抽屉原理,是另一个经典的基本计数原理。将 n+1 个物体划分为 n 组,那么至少有一组包含两个及以上的物体。一般化形式:将 n 个物体划分为 k 组,那么至少有一组有大于等于 \left \lceil \dfrac{n}{k} \right \rceil 个物品。
最差原则是鸽巢原理在解题中的常用策略:考虑所有可能情况中,最不利于某事件发生的情况。如果最差的情况都能被满足,那么其余所有情况自然也能被满足。
将 n+1 个物体,划分为 n 组,那么有至少一组有两个(或以上)的物体。这个定理看起来比较显然,证明方法考虑反证法:假如每个分组有至多 1 个物体,那么最多有 1\times n 个物体,而实际上有 n+1 个物体,矛盾。
将 n 个物体,划分为 k 组,那么至少存在一个分组,含有大于或等于 \left \lceil \dfrac{n}{k} \right \rceil 个物品。
推广的形式也可以使用反证法证明:若每个分组含有小于 \left \lceil \dfrac{n}{k} \right \rceil 个物体,则其总和 S\leq (\left \lceil \dfrac{n}{k} \right \rceil -1 ) \times k=k\left\lceil \dfrac{n}{k} \right\rceil-k < k(\dfrac{n}{k}+1)-k=n 矛盾。
此外,划分还可以弱化为覆盖结论不变。给定集合 S, 一个 S 的非空子集构成的簇 \{A_1,A_2\ldots A_k\}
- 若满足 \bigcup_{i=1}^k A_i 则称为 S 的一个覆盖(cover)
- 若一个覆盖还满足 i\neq j\to A_i\cap A_j=\varnothing 则称为 S 的一个划分。
鸽巢原理可以有如下叙述:对于 S 的一个覆盖 \{A_1,A_2\ldots A_k\} 有至少一个集合 A_i 满足 \left\vert A_i \right\vert \geq \left\lceil \dfrac{\left\vert S \right\vert}{k} \right\rceil。
组合和排列
组合数和排列数
排列数
我们先来定义排列数。排列数(Permutation)A(n,m) 表示:从 n 个物品中,选出 m 个进行排列的方案数。
排列数也有其他的记法,例如 A\begin{smallmatrix}n\\m\end{smallmatrix},但这种写法较为繁琐。在早期的文献中,排列数也记为 P(n,m),其中 P 表示 Permutation(排列)。
我们来推导排列数的计算公式。按照排列的定义,我们依次分析第 i 个位置有多少种选择:
f'(x)+p(x)f(x)>q(x)
我们先简单说一下简单的微分方程怎么解,我们将式子最终化为:
u(x)\d x=v(y)\d y
然后两边求积分,化简即可。
我们考虑一个比较简单的形式,p(x)=0,即
f'(x)=q(x)
记 Q'(x)=q(x),则:
- 若符号为 =,则 f(x)=Q(x)+C。
由此,当 m=n 时:
A(n,n)=n!=n(n-1)(n-2)\dots 1
特殊的,我们定义:
0!=1
而一般规定 A(n,m) 中 n\ge m,若 n < m,则规定 A(n,m)=0。
为什么定义 0!=1?
这个定义在组合意义下是显然的:从 0 个物品中选取 0 个进行排列,只有一种方案(即什么都不选)。另外,这个定义也使得阶乘公式 n! = n \times (n-1)! 在 n=1 时仍然成立。
组合数
组合数(Combination)C(n,m) 表示:从 n 个物品中,选出 m 个的方案数(不考虑顺序)。
组合数也有其他的记法,例如 C\begin{smallmatrix}n\\m\end{smallmatrix},其中 C 表示 Combination(组合)。在学术文献中,通常使用二项式系数的记法:
{n\choose m}
我们可以从排列数和组合数的关系来推导组合数的公式。
我们在排列中,从 n 个物品中选择 m 个进行排列,这个过程本质上可以分解为两个步骤:
- 从 n 个物品中选择 m 个,即 C(n,m);
- 将这 m 个进行排列,即 A(m,m)=m!。
根据乘法原理:
A(n,m)=C(n,m)\times A(m,m)
因此:
\boxed{C(n,m)={A(n,m)\over A(m,m)}={n!\over(n-m)!m!}}
性质:m! 整除任何连续的 m 个整数的乘积。
证明:通过构造组合数即可证明。对于任意连续的 m 个整数 n, n-1, \dots, n-m+1,它们的乘积等于 A(n,m),而 C(n,m) = \frac{A(n,m)}{m!} 是一个整数,因此 m! 必然整除 A(n,m)。
组合数具有许多优良的性质,这些性质在计数问题中有着广泛的应用。下面我们逐一介绍这些性质。
基本性质
从组合数的定义可以直接得到以下性质:
\boxed{\tag1{n\choose m}={n\choose n-m}}
这个性质的组合意义是:从 n 个元素中选出 m 个,等价于选出 n-m 个不选。
同样由定义可以推导出:
\boxed{{n\choose m}={n\over m}{n-1\choose m-1}\tag{1 II}}
这个公式在递推计算中非常有用。
另一个重要的恒等式是:
\boxed{{n\choose m}{m\choose k}={n\choose k}{n-k\choose m-k}}\tag{1 III}
这个等式的组合意义是:从 n 个中选 m 个,再从 m 个中选 k 个,等价于先从 n 个中直接选 k 个,然后再从剩下的 n-k 个中补选 m-k 个。
在结束组合数的基本性质之前,我们还需要注意到一个重要的结论:若
{n\choose a}={n\choose b}
则有两种情况:
首先,若
a=b
结论是显然的。否则,应用性质 (1),得
a+b=n
这也自然成立。
递推关系
组合数满足一个经典的递推公式:
\boxed{\tag2{n\choose m}={n-1\choose m}+{n-1\choose m-1}}
这个递推式的组合意义是:考虑 n 个元素中的某个特定元素,将所有方案分为两类——选这个元素和不选这个元素,分别对应右边的两项。这个递推式在计算组合数和裂项求和中非常有用。
这个递推式也称作帕斯卡法则,其有一个经典的推论,朱世杰恒等式是组合数的一阶求和公式。元朝数学家朱世杰在《四元玉鉴》中,利用垛积术、招差术给出:
\sum _{i=a}^{n}{\binom {i}{a}}={\binom {n+1}{a+1}}
或以 m-1 代 n 再与上式作差,写成:
\sum _{i=m}^{n}{\binom {i}{a}}={\binom {n+1}{a+1}}-{\binom {m}{a+1}}
可以反复使用帕斯卡法则合并左式首两项。朱世杰恒等式可应用于等幂求和问题。例如:
\sum _{i=1}^{n}i=\sum _{i=1}^{n}{\binom {i}{1}}={\binom {n+1}{2}}
\sum _{i=1}^{n}i(i+1)=2\sum _{i=1}^{n}{\binom {i+1}{2}}=2{\binom {n+2}{3}}
类似地,排列数也有对应的递推式:
\boxed{A_n^m=A_{n-1}^m+mA_{n-1}^{m-1}\tag{2 II}}
这同样是通过分讨第 n 个元素是否参与排列得到的。
求和性质
组合数的求和性质在二项式定理和概率论中有重要应用。
\boxed{\sum_{i=0}^n{n\choose i}=2^n\tag3}
这个性质的组合意义是:从 n 个元素中选取 0 个、1 个、\dots、n 个的所有方案数之和,等于所有子集的个数 2^n。
下面是一个利用裂项技巧的求和恒等式:
f'(x)+p(x)f(x)=0
我们有一个固定的解题方法,但是我们先推导一番,设 P'(x)=p(x)。
\dfrac{\d y}{\d x}+p(x)y=0
按照微分方程的思路,
\ln y=-P(x)+C
对内部应用性质 (1):
{2m+1\choose m}=\sum_{i=0}^m{2m-i\choose m}=\sum_{0\le i\le m}{2m-i\choose m}
通过变量替换(注意到 2m-i 的取值遍历了所有可能),令 j = 2m-i,则:
{2m+1\choose m}=\sum_{i=m}^{2m}{i\choose m}
证毕。
同样的,两边乘上 m! 就得到了排列的版本。
常见解题技巧
在本节中,我们会穿插介绍若干解题策略。目的是让你理解:模型并非全部直接套用,而是需要根据具体情境灵活选择。有时枚举反而更快,不要盲目追求精巧的解法。
解题策略
特殊优先策略:约束最多、最特殊的元素优先处理。
这里的「优先」不一定是最先处理,也可以是最后处理(例如插空法)。
例 1:基本限制
题目 六个人排队,甲不在排头。
解法一 甲有 5 种位置选择,剩下五个人全排列后插入即可:
5\times A(5,5)=600
解法二(插空法) 五个人排好后,甲插入除开头以外的任一空位:
A(5,5)\times C(5,1)=600
例 2:双重限制
题目 六个人排队,甲不在队头,丁不在队尾。
我们先用插空法放甲:
A(4,4)\times C(4,1)\times C(5,1)=480
但还需要考虑一种特殊情况:甲选了队头位置,丁恰好插在甲前面(即丁在队头)。
A(4,4)=24
因此总答案为:
480+24=504
例 3:三重限制
题目 六个人排队,甲不在队头,丁不在队尾,且甲和丁不相邻。
这个例子恰好体现了我们分步处理的优势。
我们仍然用插空法先放甲,但此时需要进一步分类讨论。
情况一:甲选了队尾位置。
A(4,4)\times C(4,1)=96
情况二:甲没有选队尾位置。
A(4,4)\times C(3,1)\times C(3,1)=216
因此总方案数为:
96+216=312
等效替代策略:当我们需要计算带特殊条件的方案数时,可以构造一个双射(bijection),将原问题的每一种方案映射为新问题的一种方案,使答案更容易计算。常用的等效替代方法包括捆绑法、插空法和隔板法。隔板法较为复杂,我们后面单独讲解。
捆绑法:七个人站队拍照,甲和乙要求相邻,丙和丁要求相邻,求方案数。
我们将甲和乙「捆绑」为一个整体,丙和丁也「捆绑」为一个整体,这样原来的七个人就变成了 5 个单元。
先排列这 5 个单元:
A_5^5=5\times4\times3\times2\times1=120
再将每个「捆绑体」内部进行排列,总答案为:
A_5^5\times A_2^2\times A_2^2=480
插空法:七个人拍照,甲和乙要求不相邻,求方案数。
我们先不管甲和乙,排列其余五人:
A_5^5=5\times4\times3\times2\times1=120
然后将甲和乙插入这 5 个人形成的 6 个空位中(两人不能在同一个空位),总答案为:
A_5^5\times A_2^2=240
练习:五个人的顺序已确定,现插入两人,共有几种方案?
- 若两人相邻:捆绑后插空,C_6^1=6 种。
- 若两人不相邻:如上所述,240 种。
由于两种情况无交集,直接相加,总答案为 246 种。
先整体后局部策略:先确定一个集合的位置,再确定集合内部的排列;或者反过来。如果先确定集合内部的排列,再确定集合整体位置,也可以视为插空法的一般形式。
例题:五个男生和五个女生拍照,要求同性别相邻的方案数。
首先,我们排列男生和女生的整体次序:
A(2,2)
然后男生内部和女生内部分别全排列,各有 A(5,5) 种方案。
因此总答案为:
A(2,2)\times A(5,5)\times A(5,5)
正难则反策略:当正面分类讨论比较复杂时,我们可以通过「总方案数减去不满足条件的方案数」来求解。
例题:班里 50 人选 5 人出游,要求正副班长和团支部书记中至少一人在内,求方案数。
正面做法需要枚举哪些人在内,分类较多。我们不妨考虑反面——即没有任何限制的方案数减去三人都不在的方案数。
无限制的方案数:
{50\choose 5}
三人都不在的方案数(从剩下 47 人中选 5 人):
{47\choose 5}
因此答案为:
{50\choose 5}-{47\choose 5}
倍缩法和可重策略:
例题:七个人排队,甲、乙、丙三人顺序固定,求方案数。
也可以理解为:甲、乙、丙三人的排列顺序不重要。
我们可以用七个人全排列的方案数,除去甲、乙、丙三人排列的方案数。
直观来看,每 A(3,3) 种排列中,甲、乙、丙的相对位置相同但内部顺序不同,它们属于同一组。除去甲、乙、丙的内部排列数,就是答案:
{A(7,7)\over A(3,3)}=A(7,4)=7\times6\times5\times4=840
可重集的相关内容将在后续章节详细讨论。
多排问题直排策略:
例题:六个人照相排队,分两排,每排三人,共有几种排队方式?
解法一:先选三人排列在前排,剩下三人排列在后排:
\begin{aligned} C(6,3)\times A(3,3)\times A(3,3)&={6\times5\times4\over3\times2\times1}\times6\times6\\ &=6\times5\times4\times3\times2\times1\\ &=720 \end{aligned}
解法二:注意到这等价于六个人排列后,后三人自动归入后一排:
A(6,6)=6\times5\times4\times3\times2\times1=720
总结:对于分组且每组有区别的情况,可以直接合并考虑,不需要分步。
模型和穷举策略:在组合计数中,我们常常需要灵活运用以下两种策略:
- 模型化:将问题归纳为已有模型的组合(如隔板法、球盒模型等)。
- 穷举:结合分类讨论,通过枚举特殊情况进行求解。
下面我们通过具体的模型来展开讲解。
排数问题
例题 用数字 0 \sim 9 可以排成多少个满足以下条件的三位数?
(一)不同的三位数
解法一 三位数范围为 100 \sim 999,共 999-100+1=900 个。
解法二 第一位(百位)不能为 0,有 9 种选择;后两位各有 10 种选择:
9\times10\times10=900
(二)没有重复数字的三位数
百位不能为 0,有 9 种选择;十位从剩余 9 个数字中选 1 个;个位从剩余 8 个数字中选 1 个:
9\times9\times8=648
(三)没有重复数字的三位奇数 / 偶数
奇数情况:个位从 1,3,5,7,9 中选 1 个,有 5 种选择;百位不能为 0 且不能与个位重复,有 8 种选择;十位有 8 种选择:
5\times8\times8=320
偶数情况:个位从 0,2,4,6,8 中选 1 个。
- 若个位为 0:百位有 9 种选择,十位有 8 种选择,共 9\times8=72 种。
- 若个位不为 0:个位有 4 种选择,百位有 8 种选择,十位有 8 种选择,共 4\times8\times8=256 种。
合计 72+256=328 种。
(四)加强:没有重复数字且大于 300 的三位偶数
利用正难则反的策略,用偶数总数减去不超过 300 的偶数:
- 百位为 1 的偶数:个位从 0,2,4,6,8 中选 1 个(5 种),十位有 8 种选择,共 5\times8=40 种。
- 百位为 2 的偶数:个位从 0,4,6,8 中选 1 个(4 种),十位有 8 种选择,共 4\times8=32 种。
因此答案为:
328-40-32=256
因数个数
例 2:求 2160 的不同正因数的个数。
解:我们先将 2160 分解质因数:
\begin{aligned} 2160&=2\times5\times 216\\ &=2^4\times5\times 27\\ &=2^4\times3^3\times5 \end{aligned}
注意到每一个因数都可以写成 2^{b_1} \times 3^{b_2} \times 5^{b_3} 的形式,其中 0 \le b_1 \le 4,0 \le b_2 \le 3,0 \le b_3 \le 1。
因此,因数个数为:
(4+1)(3+1)(1+1)=40
推广到一般情况:设正整数 N 的质因数分解为:
N=p_1^{c_1}p_2^{c_2}\dots p_k^{c_k}
其中 \forall p_i\in\mathbb P, p_i\neq p_j\ (i\neq j)。
那么,N 的任意因数 M 都可以写成:
M=p_1^{b_1}p_2^{b_2}\dots p_k^{b_k}
其中 \forall b_i\le c_i。
因此,N 的因数个数为:
\mathit{cnt}=(c_1+1)(c_2+1)\dots(c_k+1)
子集个数
例 3:对于集合:
A=\{1,2,3,\dots,10\}
求其子集的个数。
解:对于集合中的每一个元素,它要么出现在子集中,要么不出现,共有 2 种选择。由于有 10 个元素,根据乘法原理,子集个数为:
2^{10}
推广:对于大小为 N 的集合,我们有:
- 子集个数:2^N;
- 真子集个数:2^N-1;
- 非空子集个数:2^N-1;
- 非空真子集个数:2^N-2。
Lucas 定理
在处理组合数取模的问题时,Lucas 定理(Lucas’ Theorem)是一个极为有力的工具。
对于素数 p,有:
{n\choose m}\equiv{n\bmod p\choose m\bmod p}\cdot{\lfloor n/p\rfloor\choose\lfloor m/p\rfloor}\pmod p
我们也可以用 p 进制表示来得到一个更直观的等价形式。设 n 和 m 在 p 进制下的表示为:
\begin{cases} n&=a_0+a_1p+\dots+a_kp^k\\ m&=b_0+b_1p+\dots+b_kp^k \end{cases}
那么有:
{n\choose m}=\prod_{i=0}^k{a_i\choose b_i}
这一定理在推导模意义下组合数的性质时非常有用,你可以将其视为将大问题拆解为每一位上独立的小问题。
隔板法
隔板法(又称插板法,Stars and bars)是用于求一类给相同元素分组的方案数的一种技巧,也可以用于求一类线性不定方程的解的组数。隔板法用于求将相同元素分组的方案数,也可以用于求线性不定方程的正整数解或非负整数解的组数。
正整数和的数目
求方程:
x_1+x_2+\dots+x_k=n
的正整数解的组数。
等价情景:把 n 个小球分成 k 组(组之间有序),每组至少一个,求方案数。
我们在 n 个元素之间形成的 n-1 个空隙中插入 k-1 块隔板,将元素分为 k 组。因此答案为:
\boxed{{n-1\choose k-1}}
非负整数和的数目
情况二:非负整数解
求方程:
x_1+x_2+\dots+x_k=n
的非负整数解的组数。
等价情景:把 n 个小球分成 k 组(组之间有序),每组可以为空,求方案数。
令 y_i=x_i+1,则原方程变为:
y_1+y_2+\dots+y_k=n+k
此时每个 y_i 都是正整数,转化为情况一,答案为:
\boxed{{n+k-1\choose k-1}}
直观理解 我们先「借给」每组一个元素,将非负整数问题转化为正整数问题,最后再将借出的元素收回。
不同下界整数和的数目
问题三:如果再扩展一步,要求对于第 i 组,至少要分到 a_i,\sum a_i \le n 个元素呢?
本质是求 x_1+x_2+\cdots+x_k=n 的解的数目,其中 x_i \ge a_i。
类比无限制的情况,我们借 \sum a_i 个元素过来,保证第 i 组至少能分到 a_i 个。也就是令
x_i^{\prime}=x_i-a_i
得到新方程:
\begin{aligned} (x_1^{\prime}+a_1)+(x_2^{\prime}+a_2)+\cdots+(x_k^{\prime}+a_k)&=n\\ x_1^{\prime}+x_2^{\prime}+\cdots+x_k^{\prime}&=n-a_1-a_2-\cdots-a_k\\ x_1^{\prime}+x_2^{\prime}+\cdots+x_k^{\prime}&=n-\sum a_i \end{aligned}
其中
x_i^{\prime}\ge 0
然后问题三就转化成了问题二,直接用插板法公式得到答案为
\binom{n - \sum a_i + k - 1}{n - \sum a_i}
不相邻的排列
1 \sim n 这 n 个自然数中选 k 个,这 k 个数中任何两个数都不相邻的组合有 \dbinom {n-k+1}{k} 种。
不等式约束
求不等式:
x_1+x_2+\dots+x_k\le n
的非负整数解的组数。
引入松弛变量 x_{k+1}\ge0,原不等式等价于方程:
x_1+x_2+\dots+x_k+x_{k+1}=n
这是一个含 k+1 个变量的非负整数方程,答案为:
{n+k\choose k}
与容斥定理结合
隔板法配合容斥原理:隔板法与容斥原理的结合是经典套路。将 24 个小球分给 3 个盒子,要求每个盒子至少一个且三个盒子中的球数互不相同,求方案数。
设三个盒子分别得到 a,b,c 个球,则:
a+b+c=24
其中 a,b,c\ge1。我们先不考虑互不相同的限制,再用容斥原理排除有相同值的情况。答案为:
[]-[a=b]-[a=c]-[b=c]+2\times[a=b=c]
其中 [] 表示不限制互异时的方案数。
先计算不限制互异的方案数:
[]={23\choose 2}=253
接下来计算 [x_i=x_j]。当 a=b 时,令 a=b=t,则:
2t+c=24
由于 t 和 c 均为正整数,因此:
t\in\{1,2,\dots,11\}
共 11 种情况。由对称性:
[a=b]=[b=c]=[a=c]=11
而 [a=b=c]:若三个值都相等,则 3a=24,即 a=8,恰好有 1 组解。
因此最终答案为:
253-33+2=222
其中 f'(x_0) 和 f(x_0) 均含有参数 a。
有两种方式处理上面不等式组:
若①中的参数 a 和 x_0 容易分离:
- 首先在①中用零点 x_0 表示参数 a。
- 然后代入②来确定零点 x_0 的取值范围。
- 最后利用获得的零点 x_0 的范围和①确定参数 a 的取值范围。
- 既适合已知恒成立求参数范围的问题,也适用于不等式的证明。
若①不容易分离参数 a 和 x_0,或分离后结构复杂:
- 首先猜测方程组 \begin{cases} f'(x_0) = 0 \\ f(x_0) = 0 \end{cases} 的解 x_0。
- 然后由 f(x_0) \ge 0 和端点效应解出 a 的取值范围(该范围为最终的答案)。
- 最后证明在该范围下 f(x) \ge 0 恒成立。
- 注意这个只适合已知恒成立求参数范围的问题,不适于不等式的证明。
通常来说,我们设 x_0 为函数的零点,列出 f(x_0)=0 和要求的条件,组成方程组解方程即可。
如果函数的导数非常复杂,则考虑变换主元法:
首先由端点效应初步获得参数的取值范围,验证这个范围是否为最终范围;若不是,则判断函数的极值并获取参数的取值范围;
根据主元函数的形式,判断主元函数的单调性,然后求主元函数的最值(此最值应当是一个函数),最后判断该最值函数是否满足题中的不等式。