[what if]第75期:恼人的键盘

提问:

在一些老式的手机上输入一个英语字母时我需要按很多次同样的数字键,比如要打出“Y”我需要按3次数字9。一些单词有连续好几个字母都在同一个数字键上,因而每打完一个字母你都要等一小会儿才能输入下一个字母,这让打字变成一件恼人的事情。所以我想问的是有哪个英语单词有连续最多的字母在同一个数字键上?

—— Stewart Bishop

回答:

我们可以用下面这段让人头疼的Shell指令来回答你这个问题,这段代码能在给定的单词列表中找出所有有连续字母在同一个数字键上的单词:
cat wordlist.txt | perl -pe ‘s/^(.*)$/L$&U$&/g’ | ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ‘2223334445556667777888999’ | grep -P “(.)11111”
根据这段代码跑出来的结果,nonmonogamous是最让人头疼的单词,因为它有连续七个字母(nonmono)在数字键6上。[1]

九宫格键盘

很少有单词所有的字母都在一个按键上;常见的单词中最长的也就几个字母。[2]不过如果只用这些单词的话,我们可以写出像“电视上的高清MMO游戏(a high def MMO on TV)”这样的每个单词所有字母都在一个按键上的短语。

wpid-13867000039-2014-01-6-11-14.gif

当然了这种短语还有许多,虽然其中一些需要一些想象力:

wpid-13867020985-2014-01-6-11-14.gif

这种恼人的输入困难并不局限于九宫格键盘上。对于任何输入系统,你总能找到很难输入的短语。

QWERTY键盘

单词极客们都知道在QWERTY键盘上只有左手可以打出的最长的单词是“stewardesses”。

事实上,只用左手打出完整的句子也是可以做到的。比如这句话:我们在一个秘密星际争霸聚会预定了座位(We reserved seats at a secret Starcraft fest)。很神奇,是不是?

如果你施加不同的限制条件,在一些看上去更加脏乱差的shell指令和Python代码[3]的帮助下你还能找出更多的例子:

只用左手

wpid-13867004139-2014-01-6-11-14.gif

wpid-13867005959-2014-01-6-11-14.gif

只用右手

wpid-13867497415-2014-01-6-11-14.gif

wpid-13867498210-2014-01-6-11-14.gif

只用中间一行键盘

wpid-13867011642-2014-01-6-11-14.gif

wpid-13867013402-2014-01-6-11-14.gif

wpid-13867500262-2014-01-6-11-14.gif

只用最上面一行键盘

wpid-13867016700-2014-01-6-11-14.gif

wpid-13867018093-2014-01-6-11-14.gif

最后,如果有人问你为什么在社交媒体上不更活跃点,你可以很酷地告诉他们你“人见人爱花见花开(too pretty to tweet,只用了最上面一行键盘)”

wpid-13867018818-2014-01-6-11-14.gif

  • 注1:当然了如果你选取一些生僻词的话可能会有比这更长的满足条件的单词,只不过我用的单词表里没有而已。
  • 注2:比如“tutu”这个单词
  • 注3:我是用程序在文本日志里找出满足一定条件的文字片段,然后用“马尔可夫链”方法把它们随机连起来。我的代码在这里可以看到。

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories