研讨完长安12时辰的望楼体系我魔怔了

发布日期:2019-08-12 作者:责任编辑。王凤仪0768

编者按:本文来自微信大众号“涵的硅谷生长笔记”(ID:HanGrowth),作者Han涵,36氪经授权发布。

豆瓣8.6分的《长安12时辰》,害人不浅啊!

是的,我现已消失一个月了,就由于我去追剧了…

闲暇时刻都没了,真的。 (才不是由于我懒)

总算,这剧今天完毕,我也能够康复更新了!

作为剧粉 + 科技宅,我今天,就给你深挖一下,这个剧里的通讯设定—— 望楼。

它在榜首集里就呈现了。

「这是望楼,今天于你有大用」

这是檀棋告知张小敬的榜首件事。

其实便是通讯体系,在长安城里传递音讯。

城内每300步就有一个望楼,音讯转眼,即可传遍整个长安城。

我一看到这儿,就振奋了!

诶?

这不便是一个, 12位比特的通讯体系么!

你看,他有上下两排,总共12格,每个格子能够点亮或平息。

假如点亮是1,平息是0,那下面这个图,12位就能够表明成:

101011 101100

有了二进制码之后,我们就能够 编码译码 了,也便是把「码」和「字」对应起来。

计算机里,最基本的,便是用ASCII码了,下面是一个对照表:能够表明字母,数字和符号。

比方O便是0100 1111,M便是01001101, G便是0100 0111。

那么,李佳琦的口头禅,用二进制表明便是:0100 1111~ 01001101~ 0100 0111~

其实有12位bit现已许多了,上面的ASCII码,其实只需7位。 (看上去是8位,但榜首位都是0)

那么12位,其实能够表明2的12次方,也便是4096个汉字了。

依照咱我国1988年出书的《现代汉语常用字表》,常用汉字总共也就3500个,能够包括99.48%的日常所需,所以12位彻底足够了。

当今计算机的汉字编码,比较常用的,比方有Unicode,下面是一个对照表。

在我细心研讨《十二时辰》之后,我发现,剧中其实有巨细两种望楼!

一种是上面的小望楼,两排12格那种,还有一种是3*3的9宫格大望楼。

诶?为什么有两套体系?

我个人猜想:

这是通讯体系 Infra 2.0版,工程师正在 逐渐搬迁(Migration),还没有彻底完毕,小的还没有 彻底弃用(Deprecated),所以得两套共存。

并且,两套体系还能够对接。

我去,竟然还做了向下兼容(Backward Compatibility)。

你或许会说,9宫格,那岂不是下降成9bit了?反而功能下降?

No No No,它其实四周还有8片花辫,能够别离收起和放出,这样就多了8位。

加起来, 就有9 + 8 = 17比特了

哦对了,究竟白天和晚上的需求不同,它还 分为“日用”和“夜用”两种形式。

长安大众,真是夜里也安心呢~

你或许会问,12bit现已够用了,为啥要17bit呢?

除了能够传递更多内容以外,还有大用: 纠错

你知道,信息传递很简略犯错,假如这12位里,有一个当地坏了,比方灯不亮了,或许接纳方看走眼了,这咋办。

你看,这12个格子太难读了,你得一个一个数,眼睛都要瞎了,随意一抖,就错了。

但是,改成9宫格之后,一眼就能看对并记住,用户体会直线上升,错误率下降。

当然,多出来的5个bit,还有更高档的用法。

这便是:计算机通讯里,两个经典手法:纠错码,和,冗余。

先来看 纠错码

最简略的方法,便是“奇偶校验法”,也便是你多传1位,这位表明前面几位里边,应该有奇数仍是偶数个1。

假如接纳的时分,你发现,最终一位告知你,前面应该有偶数个1,成果前面是奇数个1,那就阐明这数据有问题了,你得让对方再传一遍。

假如,你有许多位能够用来纠错,比方大望楼多出了5位,那就能够用更高档的方法了,比方 循环冗余校验法

这儿有点杂乱,但说白了便是,信息位和纠错位,两组数,进行运算,假如得出的值不对,那就验证失利。

这玩意说深了便是研讨生课程了,收。

除了纠错码,还有 冗余

有冗余,这自身就能纠错。

比方,你规则,传递的一个数,有必要一切数字,都是相同的才有用。

那么,当你收到了比方6668666,那你就知道:哦,那个8肯定打错了,原本想说的应该是6666666。

你知道,我们人的DNA就有非常大的冗余,许多密码子形似没啥信息,去掉了也彻底没影响。

这些“冗余”密码子的效果,一向有许多猜想,一种解说便是:这是避免,基因在自我仿制时失误,变成大错。

好了,以上都是我的 脑洞。

在看了官方发布的材料今后,证明我彻底是想多了

依据官微@斗极北工作室,小望楼这12个框,其实只能代表3位,十进制数…每四个一组,别离代表百位,十位,个位,0~9别离有不同的图画。 比方,下面这个就代表序号900。当然了,阿拉伯数字这种标记法要到近代才被我国人娴熟运用,所以当年运用的都是算筹表明法:

那么900,其实便是:

在编码之后,就能够翻译了,进程也很简略,便是查表。

靖安司官员们,有这么一个袋子,作为密码本。

而上面的900号,代表的便是“狼”,你看就在这儿。依照这个规则,其实能传递许多信息了,比方「张小敬」便是这样的:

怎样样,学会了吗?

来来来,我们做一下 课后小操练

操练题1: 请翻译下图。

操练题2: 请翻译下图。

操练题3: 熟读靖安司密码本, 并背诵全文

(参考答案见文末)

以上,都是“靖安司公务员考试”送分题哦。

对了,别忘了还有:大望楼。

本质上也是编码成十进制的3位数。

9宫格的空间,用来表明个位。

左面的4个花瓣位,用来表明十位。右边的4个花瓣位,用来表明百位。

当然,什么都不呈现,就表明0。

那么,下面这个,就表明的是701。

不过,我很快发现了这个大望楼体系的两个Bug。

Bug-1: 四宫格表明0~9我还能记住,可这九宫格,也太随意了,编码的人疯了。

Bug-2:为什么左面是高位起,右边是低位?

反人道吗?

难道不应该:左面是百位吗?

大望楼那儿,左面的花瓣是十位,右边是百位,这是要弄死我。

你看这个“狼”,很简略读成900啊,喂。

横竖,这么差的用户体会,一般人肯定懵了。

怪不得,只要我宾哥这种人肉计算机,才能够瞬间看懂。

这么说来,望楼能够传递0到999,总共1000个子信息。

能够说,虽然是12位比特的承载量,而现有的望楼体系,只用了四分之一,有75%的冗余量待开发,或许便是为了纠错的成心留下的。

妙啊。

通过我再细心研讨,剧中还有另一种编码方法:八卦法。

由于卦象是三行的嘛,这么一看,我大约知道为啥剧组想用大望楼了。

传输的时分,要传两遍,别离组成上下两组八卦。

整合今后,便是一个,额,现代计算机叫:Index(索引)。译码时,用的则是开元20年,孙愐所修的音韵书本《唐韵》,依照卷、韵、字,三个等级,顺次索引。

但是,这部分好像没有在剧中用上?或许说用的不多?我咋没发现呢。

难道,这仅仅想象的一个计划,由于太杂乱了,后来就没用上,官方放出来装x的

凶猛凶猛凶猛。

对了,上面这套编码标准,可不是闹着玩的,它被切切实实,用在了剧中拍出来的。

依据官微@斗极北工作室,剧中望楼每一个镜头都是对的。

比方:

「张都尉为民捉狼。全城武侯、不夫君随时听张都尉号令」

这句话,是这么传递的。

先是跟电报相同,人工对信息进行紧缩,并分割成最小信息元:

张(263)都尉(197)捉(134)狼(121) 全城(20) 武职(217) 听令(152)

所以,信息就从本来的22个汉字,缩短为7组信息,只需改换七次。

依照每秒传两个,悉数传完只需3.5秒。

不过,假如遇到杂乱信息,就有点蛋疼,比方下面这个。

总共48个信息元…

估量接纳方人脑的内存,是不可的吧。

而不幸的美术教师,也只能小心肠写上“内容精简待商讨”…

我真的要对这部良知剧竖大拇指,太强了。

好了,以上便是望楼体系的悉数了。

最终,给你送上一个鸡汤:

不管遇到任何困难,都要迎难直上,不退。


「彩蛋」

其实,我还有一个脑洞(现已魔怔)。

这套体系的安全性其实不可,究竟密码本这种方法,仍是最简略的加密手法。

一旦密码本被贼人所用,安全性尽失,周全无望。(额,我怎样开端了文言文)。

横竖是传数字嘛,那当年彻底能够用现在盛行的RSA加密了,也便是:

设定一个很大的素数p和q,然后传递这个乘积,解密的时分,再做mod运算by (p-1)(q-1)…

操练题参考答案:

1.进入(701)

2.西市(843)

3.(略)