一类与数位相关的计数问题

$f \colon \mathbb{Z}_{>0} \to \{0, 1\}$ 是关于正整数的十进制表示的函数 。

给你一个正整数 $N$,求 $\sum_{i=1}^{N} f(i)$。

记号

$x$ 是正整数。

用 $|x|$ 表示 $x$ 的十进制表示的位数,例如 $|100| = 3$。
用 $x_i$ 表示 $x$ 的十进制表示里从左往右第 $i$ 个数字,$i$ 从 $1$ 开始;例如 $100_1 = 1$,$100_2 = 0$。
用 $p(x, n)$ 表示 $x$ 的前 $n$ 个数字组成的数,即 $p(x, n) := \floor{x / 10^{|x| - n}}$,例如 $p(1234, 2) = 12$。
用 $S(x, n)$ 表示 $\sum_{i = x \cdot 10^n} ^{(x + 1) \cdot 10^{n} - 1 }
f(i)$,例如 $S(12, 2) = \sum_{i = 1200}^{1299} f(i)$。
用 $T(n)$ 表示 $\sum_{i = 10^{n - 1}}^{10^{n} -1} f(i)$,例如 $T(2) = \sum_{i = 10}^{99} f(i)$。

采用上述符号,我们有
\begin{equation*}
\begin{split}
\sum_{i=1}^{N} f(i) = f(N) + \sum_{i = 1}^{|N| - 1} T(i) + \sum_{i = 1}^{N_1 - 1} S(i, |N| - 1) \\ + \sum_{i = 1}^{|N| - 1} \sum_{j = 0}^{N_{i + 1}} S(10 \cdot p(N, i) + j, |N| - i - 1)
\end{split}
\end{equation*}

posted @ 2021-04-22 17:28  Pat  阅读(53)  评论(0编辑  收藏  举报