姑且称之“二项式进制”
将各位数字之和为 \(9\) 的全体正整数按从小到大的顺序排成一个数列,即 \(9, 18, 27, \cdots\)。
Q1:给一个数字,算其排名。
相当于把 \(9\) 个 \(1\) 放进数位里。
设 \(p_{i}\) 为 \(9\) 个 \(1\) 的位置(最低位为 \(0\))升序排列的数列。
如 \(9\) 的 \(\{ p_{i} \}=\{ 0,0,0,0,0,0,0,0,0 \}\);\(2025\) 的 \(\{ p_{i} \}=\{ 0,0,0,0,0,1,1,3,3 \}\)。
则答案为
\[1 + \sum_{i=1}^{9}\sum_{j=0}^{p_{i}-1} \binom{i-1+j}{j} = 1 + \sum_{i=1}^{9} \binom{i+p_{i}-1}{i}
\]
Q2:给排名为 \(k\),算是哪个数字。假设这个数字最高位 \(\leq m\)。
由于是按排名来的,从大到小枚举 \(i\),每个 \(p_{i}\) 依次贪心取到最大值。
因为
若本该取 \(m\),却取成 \(m-1\),
\[1 + \sum_{i=1}^{9}\sum_{j=0}^{m-1-1} \binom{i-1+j}{j} = \binom{m+8}{9}
\]
而 $$1 + \sum_{j=0}^{m-1} \binom{9-1+j}{j}=\binom{m+8}{9}+1$$。
故是对的。
不知道有没有更优秀的做法。

浙公网安备 33010602011771号