$$ 05 $$
牛郎再次修书一封,告知织女。
虽然整个算法在书信中是明文,王母也可能看到,但是,王母不知道他们的初次见面日期,只能看,干着急。
不久,牛郎收到了织女的回信,信中高度评价牛郎的算法,同时也提出来一个新的问题:
“目前已知的仙术中,并没有‘统计文字笔画数’这样鸡肋的仙术……每次都手动数,太麻烦了……”
牛郎感叹,“也是,这种毫无攻击力、基本没有利用价值的仙术,谁会去创造呢?看来,是我展现实力的时候了……”
转念一想,“不对呀,我这神仙就学了一个‘HelloWorld’,然后就妄想创造仙术了,也太狂妄了吧……”
·
牛郎将自己的想法告诉织女,织女安慰了一番,然后在信中补充说道:
“仔细去体会HelloWorld,其实,仙术的本质,是能量的有无变换。”
“说简单点,有能量可以记作1,没有能量可以记作0,如此按一定规律交替,就是仙术。”
“当然,为了便于记忆,描述仙术时,一般8个一组。”
“虽然没有字数仙术,但我之前学过一个翻页法术,或许有参考价值,口诀是:00101100……”
·
牛郎此时对仙术还是一知半解,既然织女又教了一个,那就想办法用这个仙术解决问题吧。
牛郎翻出一本记录了已知所有文字的手册,就叫它字典吧。
“就到100页吧!”牛郎将100作为参数,代入到口诀中默念起来,手中控制着能量,按口诀中的0和1,规律地波动着。
当最后一位能量归位后,牛郎看到手中的字典亮了起来……
·
----
$$ 06 $$
牛郎很高兴,然而,这字典亮了一下,接着有熄灭了。
“字典并没翻开呀,难道是能量不够?”牛郎再次执行口诀,这次控制1的能量比之前大了一倍。
这时,字典再次亮起来,仔细看这亮光之中,竟然显示出了字典的内容。
牛郎赶紧翻开字典,果然与第100页完全一致。
牛郎窃喜:“这比翻页高级多了呀,这是内容提取的仙术!不愧是织女传授的仙术,之后看书方便了,再也不用翻开了,哈哈。”
“但问题也来了,我怎么知道,一个字在哪一页上?要是按拼音来查的话,也就只省去了翻页的功夫,找到一个字还是太慢了。”
·
“看来,要考虑专门设计一个便于检索的‘笔画字典’了。”
牛郎赶紧来到桌子前,进行设计。
其实思路很简单,看到一个字,只要知道它的页码,就可以用仙术将这一页的内容提取出来了。
但是每页一个字和它的笔画,想法很好,问题出在页码上:如何看到一个字就知道它的页码?
·
这难不倒牛郎的,瞬间牛郎就想到了“拼音页码映射”思路。
一个字至少有一个读音,而读音除去声调外,最长是6位,每一位只能是单个的声母或韵母,共26种可能。
没有0,按声母bpmf从1开始排序,20个单声母刚好排到20,六个韵母从21开始排序。
如此,可以确定一个字的绝对页码数:比如,“牛”字,二声,niu,即对应页码 n i u 2。
转换为对应的数字,即 7 24 25 2 。
只是,这个四位数,每一位都超过10了呀?牛郎给出了解释:“满26进1而已。”
·
----
$$ 07 $$
就这样,牛郎确定了笔画字典的模式:字典页码采用26进制,每个字根据声母、韵母、声调确定唯一页码。
当然,一页上同音字可能有好几个,这个暂时没法用仙术了,人工看下应该也很快了。
确定了字典的理论后,字典的编撰工作又成了难题:总不能一个一个手动抄吧?
·
无奈之下,牛郎只得继续求助织女。
织女很快给出了回复:“沙玉戒指还有印象吧?戒指内部是个空间,可以储存物品。”
“这世界上还有另一种储物戒,可以储存仙术,称为‘桃源仙戒’。你已经知道了,仙术的本质是0和1,一般可以写在纸上存储。”
“但是每次读取很不方便,所以,桃源仙戒可以绕过纸张记录,直接存储整段的0和1,按段整体读取,速度非常快。”
“你应该已经想到沙玉戒指中的传送仙术了吧?这‘沙玉’戒指,其实也是一个‘桃源仙戒’,你可以用它存储仙术信息。”
·
“对了,这沙玉也不是很高级的存储器,它对仙术的存储是有限的,大约是1吨信息吧。”
“简单说,大概有1亿块分区,每块分区可以存储长度大约为八千的仙术信息。”
“接下来是书页抽象仙术,配合它,你可以在沙玉中存储世界上所有的书籍……”
·
废话好像有点多,但是牛郎也算是听明白了,可以直接用仙术生成字典页,然后存储在沙玉中。
接着配合页面提取仙术,就能实现笔画的瞬间查找了。
牛郎赶紧开工,将字典按自己之前的设计,重新提取内容,存入‘沙玉’戒指中……
·
----
$$ 08 $$
牛郎将一块分区划分为5块,表示5种声调。这样,每个分区,可以存储一种读音的文字了。
由于最长的读音有6个拼音长度,为了便于寻找页面,一共有26的6次方种组合。
因此,牛郎存储完所有的信息,一共用了3亿多个分区。
·
看着这坚硬的、圆盘状的戒指,牛郎不禁心生感叹:
“这东西,不如给它起个别名,就叫做‘硬盘’吧。不过,这1吨(T)的硬盘,容量不大呀,还是要省着点用啊。”
·
不管怎么样,事情反正是办到了。牛郎施展页面提取仙术,果然可以瞬间找到任何一个字的笔画。
牛郎非常开心,赶紧把这个好消息告诉织女,并详细说明了策略,便于织女也如法炮制。
织女回信称赞了牛郎的聪慧,同时也指出了不足:“初学仙术,就有如此设计,极为不易。”
“但是,其实存储是非常宝贵的资源,你仔细想想,有没有办法用1万块分区解决问题呢?”
“仙术,也是需要不断优化的。一本字典用3亿分区,整个戒指也就存不到4本字典。但如果只用1万分区,就能存10万本字典了。”
·
牛郎一想,还真有道理,自己存储仙术的方式,其中有很多空着的页,白白占用资源。
一块分区只划分为5部分,每一部分也就几个字,空着的太多了。
如何在保证自己查找方便的情况下,压缩仙术的存储空间呢?
现在确实没什么好的思路,看来,以后,有必要找个时间,优化下了自己的字典存储策略了。

