电影《风声》中莫尔斯电码的数学讨论
( Rivendell 原创 )
对《风声》电影本身不做任何评论,仅仅是对可爱的周迅利用旗袍留下的内容做一点数学分析:
旗袍莫尔斯电码文字内容如下:
我不怕死
我怕的是我爱的人不知我因何而死
我身在炼狱留下这份记录,
是希望家人和玉姐原谅我此刻的决定,
但我坚信,
你们终会明白我的心情。
我亲爱的人,
我对你们如此无情,
只因民族已到存亡之际,
我辈只能奋不顾身,挽救于万一。
我的肉体即将陨灭,灵魂却将与你们同在。
敌人不会了解,老鬼、老枪不是个人,
而是一种精神、一种信仰。
不计标点符号的话是137字(如果不对那是微软 Word 的责任),那么莫尔斯电码发送这些信息需要多少内容呢?
这里牵涉到了汉字的编码问题。莫尔斯电码本身是非固定长度编码,但是用来发送拉丁字符集的,也就是发送英文字母的。而汉字的编码系另行设定。我们对此作两种考虑:一是传统的自解放前就开始使用的四角号码编码;二是采用现在电脑上常用的汉字一级字库的方案,只考虑3755个常用汉字。
莫尔斯电码的基本元素是点和划,也就是二进制的编码,那么我们需要考虑的就很简单了,就是二进制的比特率。
A) 四角号码的话,每个汉字采用的是4个阿拉伯数字,对应的数据量为 10 的四次方,即一万,换算为 2 的 13.2877 次方,换言之平均每个汉字需要二进制的 13.2877 比特。
B) 如果采用一级字库呢,那么数据量就是 3755,每个汉字需要的应当是 11.8746 比特。
对应到莫尔斯电码这一类的二进制编码来看,也就是每个汉字需要这么多个“点”或者“划”符号。依照这样运算,旗袍上缝这些文字内容,需要缝多少针呢?答案就是 13.2877 x 137 = 1820 针(四角号码版本),或者 11.8746 x 137 = 1626 针(一级字库版本)。
鉴于需要缝的针数很多,周迅在片中需要投入的时间必然也是很多的。但是我们下面进一步要问的是另一个问题:就是旗袍上缝这么多针大概缝迹的长度应该是多少呢?
这里牵涉到的不止是数学了,缝针的方式到底是什么呢?常见的是平针缝和卷针缝,如果缝旗袍的话,倘若是小的破口,似乎也可以卷针,但是卷针很难传递莫尔斯电码的长短线。再说卷针对于旗袍也显得过于粗糙,这些都明显的指向是平针。对于平针,比较均匀的平针缝,针迹长度应该是 4 毫米至 5 毫米,为了传递秘密情报,当然应该是选较短的针迹,我们设想长划线的针迹长度是 4 毫米好了。
我们再假设这些二进制点划线当中的点和划数目基本一样,同时根据莫尔斯电码的规范,“点”的长度应当为“划”的长度的三分之一,那么平均每针的针迹长度不妨认为是 0.5 x (4 + 4/3),即 2.6667 毫米(这里“点”的针迹长度仅有1.333 毫米)。
这时候我们就可以计算出来,137 汉字如果采用莫尔斯电码缝针的话,总计的针迹长度:
A) 1820 x 2.6667 = 4853.3 毫米(四角号码版本)
或者
B) 1626 x 2.6667 = 4336.05 毫米(一级字库版本)
换言之,长至 4米8,短至 4米3。
需要指出的是,由于同样专业的李冰冰未看出电码内容,因而有理由认为这个代码是经过加密的。如果是采用电影电视里常见的书本加密,那么需要增加的冗余数据可能达到 2 倍到 3 倍之多,那么总共缝线的长度将也是 2到3倍。
另外,除了增加数据量的加密之外,我们也需要考虑到数据压缩的可能。如果有一个比较好的 Huffman 树,但是又不影响对数据的传输和加密的话,那么数据也可能被压缩到 50% 甚至 25% 的长度。那样的话,针迹长度就可以有效的降低到 2米或者1米左右了。
以上讨论完全和影片内容无关,纯粹是数学探讨。可以得出的结论是,漂亮的周迅花很长的时间做女红,非但不是情节上的渲染,而且是数学上的必须。
对《风声》电影本身不做任何评论,仅仅是对可爱的周迅利用旗袍留下的内容做一点数学分析:
旗袍莫尔斯电码文字内容如下:
我不怕死
我怕的是我爱的人不知我因何而死
我身在炼狱留下这份记录,
是希望家人和玉姐原谅我此刻的决定,
但我坚信,
你们终会明白我的心情。
我亲爱的人,
我对你们如此无情,
只因民族已到存亡之际,
我辈只能奋不顾身,挽救于万一。
我的肉体即将陨灭,灵魂却将与你们同在。
敌人不会了解,老鬼、老枪不是个人,
而是一种精神、一种信仰。
不计标点符号的话是137字(如果不对那是微软 Word 的责任),那么莫尔斯电码发送这些信息需要多少内容呢?
这里牵涉到了汉字的编码问题。莫尔斯电码本身是非固定长度编码,但是用来发送拉丁字符集的,也就是发送英文字母的。而汉字的编码系另行设定。我们对此作两种考虑:一是传统的自解放前就开始使用的四角号码编码;二是采用现在电脑上常用的汉字一级字库的方案,只考虑3755个常用汉字。
莫尔斯电码的基本元素是点和划,也就是二进制的编码,那么我们需要考虑的就很简单了,就是二进制的比特率。
A) 四角号码的话,每个汉字采用的是4个阿拉伯数字,对应的数据量为 10 的四次方,即一万,换算为 2 的 13.2877 次方,换言之平均每个汉字需要二进制的 13.2877 比特。
B) 如果采用一级字库呢,那么数据量就是 3755,每个汉字需要的应当是 11.8746 比特。
对应到莫尔斯电码这一类的二进制编码来看,也就是每个汉字需要这么多个“点”或者“划”符号。依照这样运算,旗袍上缝这些文字内容,需要缝多少针呢?答案就是 13.2877 x 137 = 1820 针(四角号码版本),或者 11.8746 x 137 = 1626 针(一级字库版本)。
鉴于需要缝的针数很多,周迅在片中需要投入的时间必然也是很多的。但是我们下面进一步要问的是另一个问题:就是旗袍上缝这么多针大概缝迹的长度应该是多少呢?
这里牵涉到的不止是数学了,缝针的方式到底是什么呢?常见的是平针缝和卷针缝,如果缝旗袍的话,倘若是小的破口,似乎也可以卷针,但是卷针很难传递莫尔斯电码的长短线。再说卷针对于旗袍也显得过于粗糙,这些都明显的指向是平针。对于平针,比较均匀的平针缝,针迹长度应该是 4 毫米至 5 毫米,为了传递秘密情报,当然应该是选较短的针迹,我们设想长划线的针迹长度是 4 毫米好了。
我们再假设这些二进制点划线当中的点和划数目基本一样,同时根据莫尔斯电码的规范,“点”的长度应当为“划”的长度的三分之一,那么平均每针的针迹长度不妨认为是 0.5 x (4 + 4/3),即 2.6667 毫米(这里“点”的针迹长度仅有1.333 毫米)。
这时候我们就可以计算出来,137 汉字如果采用莫尔斯电码缝针的话,总计的针迹长度:
A) 1820 x 2.6667 = 4853.3 毫米(四角号码版本)
或者
B) 1626 x 2.6667 = 4336.05 毫米(一级字库版本)
换言之,长至 4米8,短至 4米3。
需要指出的是,由于同样专业的李冰冰未看出电码内容,因而有理由认为这个代码是经过加密的。如果是采用电影电视里常见的书本加密,那么需要增加的冗余数据可能达到 2 倍到 3 倍之多,那么总共缝线的长度将也是 2到3倍。
另外,除了增加数据量的加密之外,我们也需要考虑到数据压缩的可能。如果有一个比较好的 Huffman 树,但是又不影响对数据的传输和加密的话,那么数据也可能被压缩到 50% 甚至 25% 的长度。那样的话,针迹长度就可以有效的降低到 2米或者1米左右了。
以上讨论完全和影片内容无关,纯粹是数学探讨。可以得出的结论是,漂亮的周迅花很长的时间做女红,非但不是情节上的渲染,而且是数学上的必须。
这篇影评有剧透