電影訊息
風聲--The Message [2009]

风声/TheMessage

7.4 / 2,738人    118分鐘

導演: 高群書
編劇: 陳國富
演員: 周迅 李冰冰 張涵予 黃曉明 王志文
電影評論更多影評

霜之哀傷

2009-10-23 01:50:36

電影《風聲》中莫爾斯電碼的數學討論


( 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米左右了。

以上討論完全和影片內容無關,純粹是數學探討。可以得出的結論是,漂亮的周迅花很長的時間做女紅,非但不是情節上的渲染,而且是數學上的必須。
評論