当前位置: 华文问答 > 数码

是不是年轻人都喜欢用26键而非9键?

2023-11-15数码

是的,就我观察身边的样本来看,00后就基本没有用九键输入法的了,具体原因许多答主都讲的很清楚了:因为没见过按键机,而九键输入法是为了兼容按键机做出的妥协。

但是现在的手机几乎还是保留了九键输入法,为什么除了因为历史遗留原因而选择九键的用户以外,九键再没有新用户入坑了呢?

答:因为26键比九键快。

那有的九键用户要质疑了,你撒谎,明明我九键比26键用的溜得多,凭什么说26键快?为了避免主观臆断,所以首先应该定一个明确的指标:

怎么输入算快?

那么我们首先聘请一位公平的打字员,这个打字员经受过严格的训练,能够以严格的每分钟120次敲击频率打字,接着我们让这位打字员分别用九键和26键打一段话「喜欢就点赞」。

因为联想输入只作用于拼音生成汉字的过程("xihuanjiudianzan"转换成「喜欢就点赞」),和拼音补全("xhjdz"转换成「喜欢就点赞")两个过程对九键和26键是公平的,那么我们就忽略上述两个过程,只比较输入一段话的全拼谁的速度比较快。

首先,26键输入"xihuanjiudianzan",显然需要按16下;而九键因为每个按键包含多个字母,因此,按键后后需要再进行一次选择才可以输入一个字母,需要按32下。那么当26键输入字母个数为 S_{26} = N 的时候,九键应该按 S_9= 2N 吗?理论如此,但并不符合事实,那么说明这个模型并不准确。

事实上,学过编码的同学应该知道,大多数编码将符号集 S_1 映射到 S_2 时,只要两个符号集中数目不相等,那么必然有一些编码组合是不可用的。用人话来说,就是拼音翻译成中文的时候,许多拼音组合是无效的,那么当输入"xihuan"的时候就不用哦按12次,而是按"92(x)4(i)42(h)82(u)2(a)62(n)",因为"x"后面只能是"i"而不可以是"g"或"h",因此九键输入的时候并不是总得按第二次,事实上,当输入韵母("aeio")的时候只按一次就可以。每个汉字都有韵母,那么粗略平均一下,一串全拼应该有三分之一是"aeio",那么九键输入次数可以被缩短到 S_9=\frac{2}{3}N *2 + \frac{1}{3}N = \frac{5}{3}N 。

Iphone的九键键盘

那么这就可以下结论说明26键更快了吗?我们似乎忘记了,九键诞生正是因为键盘太小,26键很不方便所以发明了九键输入。那么26键为什么不方便呢?因为如果同样的面积有26个键,那每个键的大小就只有9键的三分之一,大家容易按错。

容易按错!

好了,找到问题了,那么为了定量的研究一下到底多容易按错,我们假定上文提到的那位打字员正确按键的概率为 P_{正确} ,为了方便,我们让这一随机变量服从均匀分布,用人话讲就是正确输入的概率和按键的面积成正比,因此 \frac{P_{26正确}}{P_{9正确}}=\frac{A_{26}}{A_9} = 0.346 。当然,这分布并不准确,因为打字员是有注意力的,并不是在所有键上随机地打字,也就是说他关注哪个键,那么他会主动在这个键周围按下,因为更合适使用高斯分布估计 P_{正确} 。具体怎么算就不劳烦大家了,我做个体力活帮大家算好了, \frac{P_{26正确}}{P_{9正确}}=\frac{A_{26}}{A_9} = 0.812 。

那么经过修正,26键的输入速度 v_{26} = 0.812 * \frac{5}{3}v_9 = 1.35v_9 ,也就是九键的1.35倍。这是由26键和九键的编码效率,以及按键大小带来的输入错误率,导致的结果,和打字员输入速度熟练程度,输入法智能程度无关,这就是 客观意义上的怎么算快的评价标准

那么以前用九键和现在用26键的差别体现在上述模型的哪里呢?答,就体现在出错的概率分布这里,因为我是按照6.1寸键盘大小计算的概率,如果按照按键只有三寸甚至更小的按键来计算, \frac{P_{26正确}}{P_{9正确}} 可能相差的更为悬殊,那么9键就可能反超26键。

更重要的是,即使9键和26键输入速度相同,人们主观上还是会选择用起来更轻松的工具。比如我让你扛一袋100kg的水泥上10楼,然后空手跑九个来回,还是扛10kg的水泥跑10个来回,可能大部分人都会选择后者,因为后者更轻松。同理,九键较大的按键按起来确实会比26键的小按键按起来轻松一点。只不过随着手机尺寸日益增加,发送消息的愈发频繁,这轻松的一点感觉终究比不上打字速度的提升,因此九键只能慢慢退出历史的舞台。但是,不可否认的是,在那个小手机小按键的时代,九键输入法为按键手机的推广做出了不可否认的贡献,让手机厂商成功的活到了触摸屏的发明,这才有了如今触手可及的互联网时代。

非常感谢评论区朋友们的补充,因此,为了考虑重复码随着拼音输入长度增加而减小的这一特性,我们在引入一个函数 E(N)\in[1,2],lim_{N\rightarrow \infty}E(N)=1 , E(N)=1 表示完全不受重复码影响, E(N)=2 表示按两下才能确定一个字母输入。考虑到上文根据韵母缩减是大家都比较认可的,因此修正为 E(N)\in[1,\frac{5}{3}],lim_{N\rightarrow \infty}E(N)=1 。那么26键和九键的速度比修正为: \frac{v_{26}}{v_9} = \frac{P_{26正确}}{P_{9正确}}*E(N) 。

但我觉得这个模型并不准确,因为「重复码随着拼音输入长度增加而减小」这句话不够准确,事实上我认为重复码率的减小是以一个中文词组或一个句子为周期起作用的,因此 E(N) 修正为周期函数 E(N) = E(N+N_{词组拼音的长度}),N_{词组拼音的长度}\in[10,30] 。当然,上述过程中进行了非常多的近似,例如 E(N) 的取值是很难逼近1的,取决于拼音有效码和无效码具体的分布,中文中各个音节使用频率也不是均匀分布,这些都需要采取大量数据统计或是实验才能得到比较可信的值。

这篇留在这里希望还没有进入大学或非理工专业的知友能够了解一下理工解决问题的思路,就是先做减法,提出一个最简单最直观的模型,然后做加法,一条一条的加上约束条件,如此迭代周而复始,最终逼近真实的模型。同样也希望同样在理工领域的知友能够指摘探讨,这是我生活中很有趣的一部分。

感谢 @delicate 在评论区对计算模型提出的完善,甚至帮忙补了一个定量实验。他提到九键输入法打错一个词就要重新打一句话,那么在出错部分再引入错误开销。26健的错误开销应该是输错的那个字符以及多按一下退格键;九键的错误开销应该是包含输错键的那一整句话以及按下退格(抱歉我没怎么用过九键,可能不是一整句话都要重新打,请大家理解这个思想为主),一整句话的长度就以上文词组拼音长度估计打平均 \bar N_{词组拼音的长度}=20 为准,那么我们得到错误开销系数 E_{26exp} = -1-1=-2, E_{9exp} = -20-1=-21 ,因为错误开销是在输错时才会起效的,因此错误开销对输入速度的影响是

v_{26} = v_{打字}*P_{26正确}+v_{打字}*(1-P_{26正确})*E_{26exp},\\ v_{9} = v_{打字}*P_{9正确}+v_{打字}(1-P_{9正确})*E_{9exp} 则26键和九键的速度比修正为

\frac{v_{26}}{v_9} = \frac{v_{打字}*P_{26正确}+v_{打字}*(1-P_{26正确})*E_{26exp}}{v_{打字}*P_{9正确}+v_{打字}*(1-P_{9正确})*E_{9exp}}*E(N) \\ = \frac{P_{26正确}+(1-P_{26正确})*E_{26exp}}{P_{9正确}+(1-P_{9正确})*E_{9exp}}*E(N)

好!现在看起来这个数学模型是不是有一点像样了?我们考虑了按键大小引入的误码,考虑了误码在不同输入法下引入的开销,考虑了码长增加对九键重复率的降低,考虑了非法码字组合对九键重复率的降低,终于得到了一个看得过去的模型,尽管中间进行了各种各样的估算、近似,但是不可否认这个模型已经有一定的应用价值了。

我想一百年前麦克斯韦、狄拉克、薛定谔等伟大的物理学家也不是拍拍脑袋就一次性想出来那些著名的方程,想必也是夜深人静时经过自己一次次反思修改,同事学生一次次质疑反驳,实验数据一次次证明证伪,才得到了最后优美简洁(好吧有的方程算不上简洁)的结果。我们在这里的研究和他们比起来看上去只是个玩具而已,但是我相信我们造玩具的方法和这些伟人们的方法是类似的,我认为这就是科学。