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

\(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) := \lfloor x / 10^{|x| - n} \rfloor\),例如 \(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  阅读(59)  评论(0编辑  收藏  举报