前两天刷知乎,发现有人说现在键盘上字母的分布是故意降低打字效率,因为早期的打字机因为打字员打字太快容易故障,故而出此下策。really?我怎么记得在数学课本上记得是键盘中字母的分布是在做了统计计算后将用的多的字母放在容易按到的位置来提高打字效率。那么真相到底是什么???有事问百度,百度上大多数人支持降低打字效率,但也有人同意提高打字效率。还是无解,抱着遇到问题解决问题的态度,自己动手丰衣足食。
首先使用Python做了一下字母统计,这里我只找到两篇英语文章——《独立宣言》和《飘》。统计结果如下:

dica = {'a': 142117, 'b': 25453, 'c': 37235, 'd': 85861, 'e': 228145, 'f': 34749, 'g': 38234, 'h': 119793,
'i': 101894, 'j': 1492, 'k': 18277, 'l': 79599, 'm': 39587, 'n': 123880, 'o': 130111, 'p': 23950,
'q': 1269, 'r': 104938, 's': 107334, 't': 157001, 'u': 50389, 'v': 15211, 'w': 43582, 'x': 1698, 'y': 37612, 'z': 1044}
dicb = {'a': 472, 'b': 89, 'c': 179, 'd': 252, 'e': 860, 'f': 169, 'g': 125, 'h': 331,'i': 448, 'j': 14, 'k': 13, 'l': 228, 'm': 146, 'n': 482, 'o': 511, 'p': 136, 'q': 6, 'r': 427, 's': 473, 't': 634, 'u': 204, 'v': 72, 'w': 90, 'x': 9, 'y': 78, 'z': 4}

然后计算每个字母占总数的比例:

bili = {'a': 8.12, 'b': 1.45, 'c': 2.13, 'd': 4.9, 'e': 13.03, 'f': 1.99, 'g': 2.18, 'h': 6.84,'i': 5.83, 'j': 0.09, 'k': 1.04, 'l': 4.54, 'm': 2.26, 'n': 7.08, 'o': 7.43, 'p': 1.37,'q': 0.07, 'r': 6.0, 's': 6.14, 't': 8.97, 'u': 2.88, 'v': 0.87, 'w': 2.49, 'x': 0.1, 'y': 2.15, 'z': 0.06}

将字典数据输入到Excel中发现:

将比例按照降序排列:

好的,让我们看看字母的比例与键盘分布之间的关系是什么呢?
我找到一张手指控制键盘的区域分布图

在打字过程中,我们经常使用的手指或者说相对灵活的手指是中指和食指按照图中分布可以得到左手中指:E,D,C,左手食指:R,T,F,G,V,B,右手中指:I,K,右手食指:Y,U,H,J,N,M。
其他左手无名指:W,S,X,左手小拇指:Q,A,Z,右手无名指:O,L,右手小拇指:P。
我们计算每个手指所占比例可得:

我们常用的四个手指的比例为:20.06+21.46+6.87+21.3=69.63%
那么他们管辖的字母占比是多少呢?17/26=0.654
这是什么情况?两者数值大小近似说明键盘中字母的分布对字母被点击概率并没有很大影响,换句话说字母这样分布并没有提高打字效率也没有降低打字效率。what???倒腾半天得出这个结论!!!
让我们接着往下分析,上图:

以F、J两个基本键位为中心半径为1做圆每组共7个字母,发现两者的均占了四分之一左右的点击率(每个字母被点击的概率)。这说明点击率是呈均匀分布的呀!以A为中心包含5个字母所占的比例为16.88%,在右面P,L这三个字母虽然占比不高但是还包括标点符号。其实仔细观察发现E这个占比最高的字母,若是均匀分布它在哪儿都显得十分突兀,最终它还是被安排在容易够到的位置。
所以综合以上分析,键盘中字母的分布是为了在打字过程中利用双手手指均匀得点击才这样设计的。其实仔细分析也可以想到,字母被点击的概率分布是比较均匀的,这样在我们打字的时候可以充分使用每一个手指,减少手指疲劳的发生。说到底字母这样分布还是提高了打字效率,毕竟你使用多个手指并用可以持续输出。
到这就结束了吗?没有,以上只是基于英文字母所做的统计,那么汉语拼音输入时应该怎样设计呢?我们能不能设计一款符合拼音输入的键盘输入呢?
利用Python中强大的函数库,我们可以将汉语转换为汉语拼音,进而我们可以像统计英文字母那样统计一下拼音中字母的占比。
这里我使用了两篇中文小说《我们仨》和《球状闪电》,统计结果如下:

将比例做一下排序:

那我们如何去设计一款拼音输入的键盘呢?可以看这两个表格左边是英语字母比例,右边是拼音字母占比:

根据上图可发现英文和拼音的字母比例分布挺像的那可不可以参考英文键盘按照对应比例排序替换一下。 就是说用i代替e的位置,用n代替t的位置以此类推。就可得到如下图:

这就是最后的拼音键盘分布,哈哈哈!!
一场小小的头脑风暴引起的,最后做出来了,挺开心,但是以上数据与计算还是有很多不足,首先数据不充分英文字母的个数连篇文章加起来有170万,拼音字母才70多万,这些数据并不具有充分的代表性。其次那个手指控制的区域,每个人在实际使用中还是有很多不同的。

键盘上字母的分布是提高了打字效率还是降低打字效率相关推荐

  1. 键盘上字母键不能用,无法打字,其他键正常,如何处理?

    偶然的情况,我也遇到过一次,当时是这样处理的,仅供参考: 原因可能是输入法全半角切换导致的: 同时按"shift"键 和 "+"键,把输入法变为半角即可.

  2. 计算机键盘字母排列知识,电脑知识:键盘上的26个字母为何这样排列,你知道吗?...

    原标题:电脑知识:键盘上的26个字母为何这样排列,你知道吗? 电脑新手练习打字的时候,会不会有这样疑问,为何键盘上的字母是这样排列的,怎么就不能26个字母按照顺序排列呢? 之前有人给出的解释,这样可能 ...

  3. 在一个非套接字上尝试了一个操作。_鼠标+键盘上一个键,Excel操作效率瞬间提高一个档次,这也太神了...

    周末,来给大家分享几个Excel技巧吧,你可能会觉得:平时上班已经够累了,好不容易到了周末,你还让我看这些东西,是不是有毛病?先别急着喷我,你要相信,只要你花1分钟学会以下这些技巧,往后的工作效率直接 ...

  4. 标准键盘上的所有键,及其相应的键控代码值和 ASCII

    在学习ASCII 码键时查到的,在此转载下. 以下表列出了标准键盘上的所有键,及其相应的键控代码值和 ASCII 键控代码值,这些值用于在ActionScript 中标识这些键: 1.字母 A 到 Z ...

  5. 为何键盘上的字母排序和字母表不同

    当你学习打字的时候,是不是觉得键盘上那些字母的排列顺序很奇怪,为什么不是按照26个英文字母的顺序依次排列呢?打字的时候还要记住每个字母的位置,多不方便啊! 肖尔斯公司生产的打字机 要想知道这样排列字母 ...

  6. c语言学习-从键盘上输入100个字符,统计其中字母、每个数字和其它字符的个数及其百分比

    从键盘上输入100个字符,统计其中字母.每个数字和其它字符的个数及其百分比 程序流程图: 代码: #include<stdio.h> void main() {char ch[100]; ...

  7. 从键盘上输入任意个任意字母,统计元音字母 a、e、i、o、u 共出现多少次。

    从键盘上输入任意个任意字母,统计元音字母 a.e.i.o.u 共出现多少次. package chapter6.homework;import java.util.Scanner;public cla ...

  8. 将从键盘上输入的小写字母转换成大写字母输入

    import java.io.*;public class ByteArrayTest { /* *1. 本程序的目的 :编写一个把输入流中所有应为字母编程大写字母,然后将解惑写入到一个输出流对象的函 ...

  9. C语言编写程序输出循环字母,用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字母输出....

    程序如下: #include int main() { char ch; scanf("%c",&ch); printf("%c",ch-'a'+'A' ...

最新文章

  1. logback节点配置详解
  2. 5.对象和面向对象3——类的定义
  3. IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
  4. oracle util_mail,ORACLE UTL_MAIL 发送Email 无附件 有附件
  5. JSP中的pageEncoding和contentType属性(转)
  6. Linux / 设置和查看环境变量的方法
  7. 面试题及答案_NET
  8. 代画PCB及C语言编程
  9. 【APIO2018】Duathlon 铁人两项 【圆方树】
  10. 接触Jenkins(Hudson)API,第2部分
  11. windows下手动配置ipv6地址
  12. typedef 数组使用详解
  13. Kubernetes精华问答 | K8s架构和组件是怎样的?
  14. 你知道吗?macOS Sierra修复漏洞超过60个
  15. react 动态添加组件属性_React的组件动态参数使用Underscore和Context来传递
  16. 【第三方对接】使用 永中Office 实现在线 Office 整合到 Spring 项目
  17. R plot图片背景设置为透明_CAD2020图形布局输出到打印机、绘图仪,保存和恢复布局的打印设置 - AutoCAD问题库...
  18. 根据观测时间,经纬度,求太阳高度角
  19. TCP三次握手四次挥手
  20. 香港HongKong之旅

热门文章

  1. 剑灵服务器位置2018,剑灵体验服2018年4月版本 泰云魂装备分析
  2. 一种为上而生的网络服务:内容存储网络CSN
  3. pku2449第K短路 最短路+A*
  4. Excel——EDATE函数
  5. mysql数据库死锁原因分析
  6. nfor MyDay帮助企业专注于高效益工作
  7. android刷机后,wifi无法使用的解决办法
  8. 字节上岸成功,整理一波测试开发岗的基础知识,含答案
  9. 英雄联盟手游国服服务器维护,英雄联盟手游国服连接超时解决方法_英雄联盟手游国服连接超时怎么办_玩游戏网...
  10. mac安装单系统win7