若 $n=\sum_{i=0}^k {16^i\cdot x_i}$,定义 $f(n)=\sum_{i=0}^k {x_i}$,其中 $x_i\in\{0,1,\cdots,15\}$。对于给定自然数 $n_0$,存在序列 $n_0,n_1,n_2,\cdots,n_m$,其中对于 $1 \le i \le m$ 都有 $n_i=f(n_{i-1})$,且 $n_m=n_{m-1}$,称 $n_m$ 为 $n_0$ 关于 $f$ 的不动点。问在 $100_{16}$ 到 $1A0_{16}$ 中,关于 $f$ 的不动点为 $9$ 的自然数个数为()。
题意理解: n = Σ(16^i × x_i),即 n 的十六进制表示为 ...x₃x₂x₁x₀ f(n) = Σx_i,即 n 的各位数字之和(十六进制)
定义迭代:n₀ → n₁=f(n₀) → n₂=f(n₁) → ... 直到不动点(n_m = n_{m-1})
要求:在 [100₁₆, 1A0₁₆] 范围内,不动点为 9 的自然数有多少个。
注意: 十六进制各位数字之和,最终收敛到的"不动点"就是数位和。对于任何正整数,反复求十六进制数位和,最终会收敛到一个 ≤ 15 的数(因为最大一位十六进制数 F=15)。
题目问的是:在范围内哪些数经过反复求十六进制数位和后收敛到 9。
范围 [100₁₆, 1A0₁₆] 即十进制 [256, 416]
逐一检查或利用规律:不动点为 9 → 这个数本身数位和最终为 9。
经过计算,该范围内有 11 个这样的数。
最大难点: 理解题目在说什么。"不动点"就是反复求数位和最终收敛到的那个一位数。对十六进制,每个数反复求数位和,最终会收敛到 0~15 之间的一个数。
另一个难点:范围 [100₁₆, 1A0₁₆] 是十六进制表示,要正确转换为十进制理解大小。
考察知识点: 数论 — 进制与数位和
题目解密:
题面看起来很复杂,其实核心很简单:
ABC,f(n) = A+B+C十六进制数位和举例:
解题: 范围 [100₁₆, 1A0₁₆]
要求这些数中,通过反复求十六进制数位和最终收敛到 9 的个数。
经过分析计数,答案为 11(选项 B)。
技巧: 遇到"不动点"这类题,先用小数字手动模拟几步理解迭代过程,弄清"不动点"实际就是"数位和的收敛值"。