串击方案并击化改造方法

本文主要从编码空间角度分析1击2码的键盘并击相对于串击的优势,以及改造方法。

串击一击打1码,并击一击打2码。然而,并击的击键速度比串击慢,一般认为键盘并击的击键速度约为串击的1/2(单手并击只比双手并击慢一点,可以先忽略两者之间的差别),有些人超过1/2,有些人不足1/2,不妨就按照1/2计算)。

四码定长方案经过并击化后如果不改变码表,那么结果就是码长降低1/2,但是击键速度也降低1/2,速度并没有提升。但是,并击一击的编码空间实际是要大于串击2码的,因为并击中存在单手并击和空格并击,对于单手26码元的并击,一击实际的组合数并非26*26=676,而是(26*26+26+26)*2=1456,等价于sqrt(1456)=38码元,利用多出的编码空间,可以大大提升方案的效率。

 

我们先看串击的编码空间,在不出简码重码的情况下,以下是串击26码元方案的各码长编码空间。可以看到起关键作用的2码长和3码长为26和676个,对于并击来说,3码在效率计算上是不存在的,因为单手并击和双手并击的速度相近,可以认为单手并击也是2码,所以并击1击等效于2码,2击等效于4码。假设字词的一般码长为4,由此计算1个3码字词的效果相当于1/2个2码字词,因此串击方案的简码可以等效为26+676/2=364个2码。

码长



合计
2a_26

26
3aa_676

676
4aaa_17576aaaa456976474552

接下来看并击的编码空间,首先我们区分一下并击的不同键位组合,令

左手+右手=A,676个

左手+右手+空格=B,676个

左手=C,26个

右手=D,26个

左手+空格=E,26个

右手+空格=F,26个

空格=_。

当把串击方案转换为并击方案时,最一般的转换方式为

a_=C,1击/2码

aa_=A_,2击/4码

aaa_=AC,2击/4码

aaaa=AA,2击/4码

结果是只有26个2码,其余的均为4码,非但没赚还亏了。因此在转化中,要充分利用BDEF这些键位组合,以上述方案为基础拓展,可以得到一个可行的方案。

[CDEF],单手一击字,相当于一击简码*4,26*4=104个

B=A_,双手一击字,相当于二级简码,676个

A[CDEF],三级简码*4,676*26*4=70304个

AA,全码单字&第一类词组,26^4=456976个

AB,第二类词组,26^4=456976个

从中我们可以看出,只要我们用某种信息区分单手左右和有无空格,就可以让奇数码的码元数量变成原来的4倍,1简变成了4倍,总的一击字(2码)达到了104+676=780个,远超串击的364个,3简也变成了原先的4倍,使4码字的数量大大减少,词组以某种信息区分有无空格后,编码空间扩大到原来的两倍(913952),降低词组的重码率。

 

关于词组还有另外一种非主流顶功的方法。

AB,二字词,需要2击,第二击按空格,456976个

AAB,三字词,需要3击,第三击按空格,26^6=308915776个

AAAB,多字词,需要4击,第四击按空格,第四击为末字,26^8=208827064576个

二字词使用了原来的词组空间,由于二字词和三字词、四字词分离,重码率略微下降,但对于三字词、四字词词库可以要多大有多大,因为三字词的编码空间已经突破3亿,多字词则近乎无限,有人会觉得这样不是增加了三字词/多字词的击数或码长吗,的确是的,这样做降低了整体效率,但是有两个好处,一是分离了二字词、三字词、多字词,且后两者几乎无重(定长方案由于4码顶,用正常手段是无法区分词组字数的),二是唯一化并击的左右信息,和串击不同的是,并击的左手打声母,右手打韵母,如果用简拼的规则打三字词和多字词,那么就会出现右手打声母的情况,需要增加右手对声母的肌肉记忆,当然这点对纯形码来说也不成立。

 

总之按照上述第一种的编码方案,可以将并击化后的等效2码增加到780个,远超串击的364个,大量的一击字同时还降低了高频二字词的重码,因为有很多词可以通过2个一击字打出,节省二字词编码空间,三级简码的空间扩展到了4倍,大大减少需要打4码的可能,词组的空间扩大了两倍,对减少词组重码有明显效果。


1楼