由五笔编码联想到的字母排序问题z共26个字母,以1~4个组合,按字母顺序排序,如下所示:aaaaaaaaaaaaabaaac……aaazaabaabaaabc……aazzababaabaa……azzzbbabaabaaa……zzzz求其中任一组合的序号,比如,xyzd是
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/06 04:24:48
由五笔编码联想到的字母排序问题z共26个字母,以1~4个组合,按字母顺序排序,如下所示:aaaaaaaaaaaaabaaac……aaazaabaabaaabc……aazzababaabaa……azzzbbabaabaaa……zzzz求其中任一组合的序号,比如,xyzd是
由五笔编码联想到的字母排序问题
z共26个字母,以1~4个组合,按字母顺序排序,如下所示:
a
aa
aaa
aaaa
aaab
aaac
……
aaaz
aab
aaba
aabc
……
aazz
ab
aba
abaa
……
azzz
b
ba
baa
baaa
……
zzzz
求其中任一组合的序号,比如,xyzd是第几个?
最好用式子表达出来,也可以用程序代码.
由五笔编码联想到的字母排序问题z共26个字母,以1~4个组合,按字母顺序排序,如下所示:aaaaaaaaaaaaabaaac……aaazaabaabaaabc……aazzababaabaa……azzzbbabaabaaa……zzzz求其中任一组合的序号,比如,xyzd是
总的来说就是一个进制转化,外加一些细节处理.我们先看个类似的例子:
0
00
000
0000
0001
0002
……
0009
001——进1位的时候会多1个数出来
0010
……
0019
……
0099
01
010——进2位的时候会多2个数出来
0100
0999
1
10
100——进3位的时候会多3个数出来
1000——其实这里可以从0999转过来的,这是和单纯进制的相似处
1001
……
现在有点感觉了吗?
现在来算xyzd,把它看成26进制的数来计算,a表示0,z表示25,26进1,xyzd记作(23)(24)(25)(3),以及额外产生的数,这些数正好包括:23,00~(23)(24),000~(23)(24)(25)计算:
(23x26^3+24x26^2+25x26+3+1)+(23+1)+(23x26+24+1)+(23x26^2+24x26+25+1)
欢迎来讨论
好难
这是极点五笔码表的格式,至于哪个代码排第几个,这是不固定的,码表大的,排序靠后;码表小的,排序靠前。就是算你找出来了,也没什么意义的。