通过行号识别系列中的字符

Identify characters in a series by a line number

这是我第一次来这里。我搜索并找不到任何相关内容。正在尝试解决问题:

其中 a=1, b=2, c=3 ... z=26

如果您要创建一个系列,其中遍历字母的所有可能结果并按数字顺序使用 1 个字符长度,则可能的结果总数为 26 (26^1)。您很容易认为 "e" 会在该系列的第 5 行。 "y" 将是第 25 行。

如果将参数设置为2个字符长度,则组合总数为676(26^2),"aa"为第1行,"az"为第26行,"ba"就是第27行,"zz"就是第676行。这个很容易计算出来,不管字长是多少,总能找到系列中的第几行。

我的问题是你是如何反过来做的?使用相同的参数,1 显然是 "aa",31 将是 "be"。你如何计算出 676 将是 "zz" 的公式? 676,根据设置的参数,只能是"zz",不能是其他字符集。所以这个应该有计算的方法,不管数多长,只要知道series的参数就可以了

如果字符长度为 10,例如第 546,879,866 行是什么字符?

这可行吗?提前致谢

将546,879,866翻译成26进制数就够了。例如 bash:

echo 'obase=26 ; 546879866' | bc
 01 20 00 19 03 23 00

如果您喜欢 10 个字符,则应从头开始填写数字:

 00 00 00 01 20 00 19 03 23 00

请注意,计数从 0 开始,这意味着 a=00,b=01,... z=25。