後記(1 / 2)

曾在一本書上看到這樣的構思:一個離開地球的外星間諜可以用一根有一條劃痕的金屬棒帶走所有情報。因為這些情報都能數字化,而聰明的間諜隻需恰當選取刻痕位置,使兩段棒長的比值恰好等於情報的數字序列就行了,如:0.2749284729458937897395069940……

確實是個非常機智的構思,正是它讓我寫了這篇小說。

小說寫完了,現在以技術的角度看看,這個構想能否實現。

實際上這取決於物質的可分性,以下的分析基於“原子是機械可分的最小單位”這個假設。其實,即使把物質的可分性再往下推延有限幾個層次,對分析的結果並沒有質的影響,除非物質無限可分,那樣分析起來稍微麻煩一些,本文不擬涉及。還有一點要注意:本文隻涉及“有確定性”的經典物理世界,沒有考慮量子多態疊加的信息存儲辦法。寫科幻小說就像是解數理方程,總得要設出一定的邊界條件,以下的答案就是在這些邊界條件之內才有效的。

先從陸逸飛的“兩段笛管法”著手。我們可以先假定那根較長笛管的重量是一個很大的數,是10的整數次方,這樣,兩段笛管的重量比值就隻取決於較短那段的重量。讀者可以看到,這實際就把陸逸飛“兩段比值法”化為小泉先生的“石頭法”了。

根據中學化學所學過的克原子量,可以知道64克玉笛含有1023個矽原子。如果用所有這些原子的狀態來表達信息(比如用一個原子的“有”和“無”來表示0和1),則這些原子可以表達十萬億億比特的信息,足足夠攜帶我們的那份情報了。但文中兩個間諜沒有用這種方法,他們設計的方法是用“原子總數”的序列來暗藏情報,這個1023的原子總數,若用十進位數字表示,其位數是23位;若用二進位數字表示,其位數是23除以0.3010(2的對數),也就是76位左右……僅僅是76位!而30億比特的信息需要30億位的數字序列,76位,連零頭的零頭的零頭都不夠哩!

此路不通,再另辟蹊徑。有人說,我幹嘛要把重的那段選成10的整倍數呢,可以把兩段的原子個數都選成非常非常大的素數,使兩段的比值是一個循環節為30億位的循環小數就可以了(循環節必須不能少於這麼多位數,否則它就不能表示特定的數列)。好,我們看看這個方法是否行得通。

先複習一點小學數學知識,純循環小數可化為這樣的分數,其分子是一個循環節內的數字;分母是若幹個9,9的個數與循環節位數相同(混循環小數化分數的辦法略)。比如:

無限純循環小數0.428571428571……循環節是6位,則化為分數是428571/999999,化簡後為3/7。

非常簡單,對不對?唯一的麻煩是:循環節為30億位的循環小數化成分數後,分子和分母都是30億位的大數。當然分子分母可能被化簡(先不管它到底能化簡到什麼程度),即約去兩者的公約數,這實際是一個數的素性檢驗問題,沒什麼複雜的,用試除法就行了,小學生都會算,何況還有運算速度為每秒數萬億次的電腦呢,隻是時間稍微長了一些,而且這個時間隨著被除數的位數的增加而急劇增加。到底需多長時間?對於一個10位的數字,電腦可以在1秒鍾內就得出結果,如果是100位數字呢?那就需要……請你聽好,我以下說的時間值得之於職業數學家的推算,絕對沒有錯誤: