冷启动:12 条曲线、12 个点,问的是「恰好」
P 与 Q 是两个用描述法写出来的有限集合:a 有 4 个取值、b 有 3 个,所以 P 里一共 4×3=12 个函数;Q 同样是 4×3=12 个点,摆成一张 4 列 3 行的点阵。要数的是:这 12 条曲线里,有几条恰好穿过点阵中的两个点。
这是一道参数族里数合格函数的个数:参数不在区间里连续地跑,而是写死在一张短表上,所以答案一定是个具体的自然数,候选总数一眼可数。三句话先把局面理清。
第一句:12 条曲线是同一条曲线搬出来的。
f(x)=log2(x+a)+b
就是把最标准的那条对数函数图象 y=log2x 向左搬 a、再向上搬 b(左加右减)。于是 a 只管左右、b 只管上下:这条曲线的竖直渐近线在 x=−a,定义域是 x>−a,与 x 轴的交点在 x=1−a。照着没平移的 y=log2x 去描点,整条曲线就整体错位——这是本题最省事也最致命的一种错法(易错点「对数图象漏了平移」)。
第二句:「图象过点」是一条能算的等式,不必看图。 由对数的定义,曲线过点 (x0,y0) 就是
log2(x0+a)+b=y0⟺log2(x0+a)=y0−b⟺x0+a=2y0−b.
最后一步顺带把定义域 x0+a>0 一并兑现了——2 的任何次幂都是正的,所以写成指数式之后不必再单独验一次定义域。
而 y0 与 b 都只从 {−1,0,1} 里取,指数 y0−b 只能是 −2,−1,0,1,2,右边只能是
41,21,1,2,4
五个数之一。整道题被离散化了:只要看 x0+a 是不是这五个数里的一个。
第三句:「恰好」两个字是一道门。 数出来「至少过两个点」的曲线有 7 条,其中一条过了 3 个点;「恰好两个」把它挡在门外,只剩 6 条。本题选项里没有 7,所以多数一条你会当场发现不对——但这纯属运气好,换一张选项表就照着掉进去了(易错点「恰好几个当成至少几个」)。
先把 x0+a 这张表算出来,后面三条路都要用它。x0 取遍 −21, 0, 21, 1:
| a | x0+a 的四个值 | 其中是 2 的整数次幂的 | 对应指数 k |
|---|
| −31 | −65, −31, 61, 32 | 一个也没有 | 无 |
| 0 | −21, 0, 21, 1 | 21, 1 | −1, 0 |
| 21 | 0, 21, 1, 23 | 21, 1 | −1, 0 |
| 1 | 21, 1, 23, 2 | 21, 1, 2 | −1, 0, 1 |
第一行不必逐个试:x0 的分母只可能是 1 或 2,减去 31 之后分母必带因子 3;而 2k 写成既约分数时分母只能是 2 的幂。a=−31 这一整行当场出局,它那三条曲线一个点都过不了。
把第四列那个指数集合记作 Ka:
K−1/3=∅,K0=K1/2={−1,0},K1={−1,0,1}.

解法一:原卷路线——按 a 分成四组,b 只管把整条曲线上下挪
原卷的解析只把六组答案抄了出来,没写过程。补上的过程是这样的:先用描述法化列举法把 P 摊开成 4 行 3 列的 12 个 (a,b),再按 a 分成四组——因为 a 一定,曲线的形状就定了,b 只是把它整体上下挪。
基准曲线(b=0)在四条竖线上的高度。 冷启动那张表已经算好:a 给定时,Q 的四条竖线 x0=−21, 0, 21, 1 里,只有落在 Ka 里的那几条给得出整数高度 k;其余要么无定义(x0+a⩽0),要么高度不是整数。
为什么非整数的高度可以一次都不算。 加上 b 之后高度变成 k+b,而 b 与 Q 的纵坐标都是整数;非整数加整数还是非整数,永远落不回点阵。于是
0<log223<1,−1<log232<0,−3<log261<−2
(三个都夹在相邻两个整数之间,因为 1<23<2、21<32<1、81<61<41),这些高度直接扔掉,一个对数值都不用真算。
逐行数。 曲线过 (x0,y0) 当且仅当高度 k+b 落进 {−1,0,1}:
- a=−31:K=∅,三格全是 0 个。
- a=0:K={−1,0}。b=−1 时两个高度是 −2,−1,只有 −1 在点阵里 → 1 个;b=0 时是 −1,0 → 2 个;b=1 时是 0,1 → 2 个。
- a=21:K 与上一行相同,于是逐格相同 → 1, 2, 2。
- a=1:K={−1,0,1}。b=−1 时是 −2,−1,0 → 2 个;b=0 时是 −1,0,1 → 3 个;b=1 时是 0,1,2 → 2 个。
挑出「恰好两个」的格子:
(0,0),(0,1),(21,0),(21,1),(1,−1),(1,1),
共 6 个。答案 B。 这六组与原卷解析点名的六组逐字相同。
顺手核一眼 a=1, b=0 那一格。 它是 y=log2(x+1),过 (−21,−1)、(0,0)、(1,1) 三个点——全表唯一一条过三个点的曲线。它「至少两个」,但不「恰好两个」,不计入。表里正是这一格把「恰好」和「至少」分了开来。
解法二:把「过点」写成一个整数方程——b 变成一扇长度为 3 的滑动窗
怎么想到的。 上一条路逐格算了 12 次。可仔细看会发现:一行里三个格子的数字并不独立。b 的作用只是把 Ka 里的每个 k 都加上同一个 b,再看有几个落进 {−1,0,1}——反过来读,就是把一扇固定宽度的窗在整数轴上滑动去截 Ka。
把窗口写出来。 条件 k+b∈{−1,0,1} 等价于
k∈Wb:={−1−b, −b, 1−b},
于是 (a,b) 那一格的数字就是
N(a,b)=Ka∩Wb.
b 取 −1, 0, 1 时,三扇窗分别是
W−1={0,1,2},W0={−1,0,1},W1={−2,−1,0},
宽度都是 3,位置依次左移一格。
于是按 Ka 的形状分类讨论就够了,逐格算是多余的。 本题只出现三种 Ka:
- Ka=∅:三格都是 0,这一行贡献 0 条。
- Ka={−1,0}:与三扇窗相交依次得 {0}、{−1,0}、{−1,0},即 1, 2, 2 —— 两格是「恰好两个」。
- Ka={−1,0,1}:依次得 {0,1}、{−1,0,1}、{−1,0},即 2, 3, 2 —— 还是两格是「恰好两个」。
收口。 四个 a 里,a=−31 落在第一类、贡献 0;a=0 与 a=21 落在第二类、a=1 落在第三类,各贡献 2:
0+2+2+2=6.
答案 B。
这句「各贡献 2」只对本题的 K 成立,不是通则。 它靠的不只是 Ka 的个数,还有 Ka 的位置。比如若某个 K 是 {1,2},三扇窗里只有 W−1={0,1,2} 装得下它,那一行就只有一格是 2。本题的 K 恰好都贴着 0 附近,才有这个齐整的结果——而 K 贴着 0,又是因为 Q 的横坐标里恰好有 21 与 1 这两个 2 的低次幂。
解法三:反过来:曲线钉死不动,让点阵搬家,按列数再用关联总数对账
怎么想到的。 前两条路都让曲线动、点阵不动。可平移是相对的——把等式
log2(x0+a)=y0−b
原样读一遍,它说的是:点 (x0+a, y0−b) 落在那条永远不动的曲线 y=log2x 上。 于是换个视角:曲线钉死,把整张点阵向右搬 a、向下搬 b,数它有几个点掉在曲线上。
定曲线上能被用到的位置只有五个。 搬完之后纵坐标是 y0−b∈{−2,−1,0,1,2},所以能接住点的只有
(41,−2),(21,−1),(1,0),(2,1),(4,2).
先按列筛。 横向的搬家量只有 a,与 b 无关,所以先对 Q 的四条竖线分别问一句:这一列搬 a 之后,横坐标正好是 2 的整数次幂吗?答案就是冷启动那张表换个方向读:
| 列 x0 | 搬完正好落在 2k 上的 a | 对应的 k |
|---|
| −21 | a=1 | −1 |
| 0 | a=21;a=1 | −1;0 |
| 21 | a=0;a=21 | −1;0 |
| 1 | a=0;a=1 | 0;1 |
一共 7 组「列 + a」的搭配。
每组搭配供出哪些关联。 一组搭配 (x0,a,k) 的意思是:所有以这个 a 为参数的曲线,在这一列上的高度都是 k+b。它落进 Q 当且仅当 k+b∈{−1,0,1},也就是
k=−1 → b=0,1;k=0 → b=−1,0,1;k=1 → b=−1,0.
逐组写出来(箭头右边是曲线拿到的那个点):
- 列 −21,a=1,k=−1:(1,0)→(−21,−1);(1,1)→(−21,0)。
- 列 0,a=21,k=−1:(21,0)→(0,−1);(21,1)→(0,0)。
- 列 0,a=1,k=0:(1,−1)→(0,−1);(1,0)→(0,0);(1,1)→(0,1)。
- 列 21,a=0,k=−1:(0,0)→(21,−1);(0,1)→(21,0)。
- 列 21,a=21,k=0:(21,−1)→(21,−1);(21,0)→(21,0);(21,1)→(21,1)。
- 列 1,a=0,k=0:(0,−1)→(1,−1);(0,0)→(1,0);(0,1)→(1,1)。
- 列 1,a=1,k=1:(1,−1)→(1,0);(1,0)→(1,1)。
关联总数。 七组里 k=−1 的有 3 组(各供 2 条)、k=0 的有 3 组(各供 3 条)、k=1 的有 1 组(供 2 条):
3×2+3×3+1×2=6+9+2=17.
按曲线归堆。 把上面 17 条关联按左边那个 (a,b) 分类:
(1,0) 拿到 3 个;(1,1), (21,0), (21,1), (1,−1), (0,0), (0,1) 各拿到 2 个;
(21,−1), (0,−1) 各拿到 1 个;a=−31 的三条一个都没拿到.
九条有名有姓的曲线加上三条空手的,正好 12 条;拿到的个数加起来 3+2×6+1×2=17,与上面独立数出的关联总数一致。
恰好拿到两个的有 6 条,答案 B。
这条路的性价比。 单论把 6 数出来,它比解法二长。但它给了一个别的路给不了的东西:同一批关联被按两个正交的方向数了两遍——解法一是按曲线(行)求和,这里是按列求和,两边都得 17。选择题最怕「每一步都像对的、合起来错一格」,而这种错在两次求和一碰之下藏不住。把解法一那张表的十二格加起来验一次:
a=−1/30+0+0+a=01+2+2+a=1/21+2+2+a=12+3+2=17.