《九陰真經》有多少字? 《誰說不能從武俠學程式》選摘(2)

2022-09-09 05:10

? 人氣

《《誰說不能從武俠學程式》選摘(資料照)

《《誰說不能從武俠學程式》選摘(資料照)

話說北宋後期,「道君皇帝」宋徽宗十分推崇道教,蒐集全天下的道教經典,派絕頂聰明的文官黃裳做主編,編成一部五千多卷的大書《萬壽道藏》。

[啟動LINE推播] 每日重大新聞通知

奉旨編書的黃裳唯恐出錯,將資料與初稿搬進書齋,一個字、一個字地審讀。誰料想,幾千卷道書讀下來,黃裳居然無師自通,居然從道家哲學中悟出武學道理!然後呢?黃裳與幾十位高手比武實踐,在深山之中苦苦思索四十年,終將道家哲學與武術招數融會貫通,撰寫出一部至高無上的武學祕笈《九陰真經》。

《九陰真經》成書不久,聲名鵲起,江湖中人無一不知, 大家都將其奉為最上乘的武學祕笈。到南宋前期,東邪黃藥師、西毒歐陽鋒、南帝段智興、北丐洪七公、全真教創始人王重陽,當世五大高手華山論劍,爭奪此經。經過七天七夜輪番較量,王重陽技壓群雄,於是此經便歸全真教所有。

王重陽死後,黃藥師使用計謀得到《九陰真經》下卷,還沒來得及練習,就被弟子陳玄風和梅超風偷走。陳玄風唯恐再被別人偷走,便將內容做了備分。他是怎麼備分的呢?拿起針,忍著痛,使用刺青的方式,將每個字刺在自己的胸口上。

以上情節出自《射鵰英雄傳》,看過這部小說的朋友必然都記得。不記得也不要緊,只要知道《九陰真經》是金庸武俠世界裡最厲害的武學著作就行了。

其實在電腦程式設計領域, 也有一部最最厲害的著作,最近幾十年始終被全球程式設計師和電腦科學家奉為經典,就是高德納(Donald E. Knuth)的系列巨著《電腦程式設計藝術》(The Art of Computer Programming)。

高德納是美國電腦科學家,也是非常厲害的頂級程式設計師,他獨自開發出如今在全球學術界公認最強大的排版工具TeX,提出如今程式設計領域最重要的兩大基礎概念「演算法」和「資料結構」,還發明一套可以精確比較演算法優劣的數學方法,簡稱「演算法分析」。他曾獲得電腦界最負盛名的獎項「圖靈獎」,被評為「繼愛因斯坦和費曼之後的第三位科學巨星」。對於他的經典著作《電腦程式設計藝術》,前世界首富、微軟創始人比爾.蓋茲(Bill Gates)這麼評價:「如果你完完整整讀完《電腦程式設計藝術》,請立刻發一份簡歷給我。」意思就是說,凡能看完且看懂高德納此書的程式設計師,都有資格加入微軟。誰說不能從武俠學程式?

高德納計畫寫出七卷本的《電腦程式設計藝術》,現在才出版到第四卷,譯成中文已經多達百萬字。我身邊的程式設計師都買過這套書,有的還買原文版,但暫時還沒有一個人宣稱讀完。為什麼呢?一是內容太深,讀者必須有紮實的數學底子;二是體量太大,走馬觀花看一遍也得花一年。

相比起來,《九陰真經》就只是一本很薄的小書,金庸先生沒有明寫有多少字,但可以根據上下文估算。

《射雕英雄傳》第十七回,老頑童周伯通對郭靖說《九陰真經》下卷被盜後,黃藥師的妻子試圖默寫出來:「那時她懷孕已有八月,苦苦思索幾天幾晚,寫下七、八千字,卻都是前後不能連貫。」

同書第十八回,郭靖與西毒歐陽鋒的侄子歐陽克比賽背書,背的也是《九陰真經》下卷。「黃藥師聽他所背經文,比之冊頁上所書幾乎多了十倍,而且句句順理成章,確似原來經文。」所謂「冊頁上所書」,指的是黃夫人根據記憶默寫出來的那七、八千字。郭靖所背內容「比之冊頁上所書幾乎多了十倍」,說明《真經》下卷字數應該在七、八萬字左右。

《真經》分為上、下兩卷,下卷七、八萬字,則全書應有十幾萬字,遠遠比不上高德納的鴻篇巨作《電腦程式設計藝術》。假如放在普通出版物當中呢?嗯,不算厚實,不過也不算單薄。真正令人驚奇的是,黃藥師的不肖弟子陳玄風竟然將《真經》下卷一個字、一個字地刺到胸口!那可是好幾萬字, 全都刺到胸口,他的胸口得有多大?那一小片地方刺得下嗎?

我拿起一張A4 紙貼在自己胸口上,剛好能遮住脖子以下和肚子以上的前胸皮膚。一張A4 紙能寫多少字呢?古人常說「蠅頭小楷」,就是像蒼蠅腦袋那麼小的字,筆劃極細,間距極密,字型大小相當於Word 的六級字,行距約為10 點左右。我打開Word 軟體,將紙張設為A4,將字型大小設為六級, 行距設為10 點,將上下左右的頁邊距都設為零,然後拚命往頁面裡塞內容,只能塞下五千字。就算陳玄風天賦異稟,胸口大得驚人,假設有兩張A4 紙那麼大,才能放一萬字而已。所以,陳玄風將七、八萬字的下卷刺在胸口上這種行為,不僅瘋狂,而且不可能。

我們再退一步,假定陳玄風不拘泥於胸口,把刺字範圍擴大到全身,有沒有可能刺下七、八萬字呢?可以用程式算一算。

首先,根據皮膚表面積經驗公式,編寫皮膚表面積計算程式。華人男性皮膚表面積經驗公式是這樣:S 男(平方公尺) = 0.0057 × 身高(公分)+ 0.0121 × 體重(公斤)+ 0.0882。現在可以用Python 語言編寫代碼如下:

def skin_area(height,weight): 

skin_area = 0.0057*height + 0.0121*weight + 0.0882 

skin_area=round(skin_area,6) 

return(skin_area) 

height = int(input(‘ 請輸入陳玄風的身高(公分):’)) 

weight = int(input(‘ 請輸入陳玄風的體重(公斤):’))

print(‘ 陳玄風的皮膚表面積是’,skin_area(height,weight), ‘ 平方公尺’) 

skin_area_cm = skin_area(height,weight)*10000 

print(‘ 相當於’,skin_area_cm, ‘ 平方公分’) 

就像金庸筆下各路高手最初都看不懂《九陰真經》下卷那段古裡古怪的文字一樣,沒學過程式設計的朋友暫時看不懂以上代碼。這很正常,完全不用擔心,因為後面還會從怎麼安裝Python 開始講起,一直講到Python 的直譯器、編譯器、語法規則、程式結構、常用類庫、基本演算法、物件導向程式設計的實現方法等知識。等看完本書前三章,親自動手寫過一些簡單程式後,回頭再來看代碼,真的比觀看兒童動畫還要簡單。

將上述代碼放在Python 程式設計環境下運行,電腦將提示我們輸入陳玄風的身高和體重。假定身高一百八十公分,體重九十公斤,則運行結果如下:

請輸入陳玄風的身高(公分):180 

請輸入陳玄風的體重(公斤):90 

陳玄風的皮膚表面積是 2.2032 平方公尺

相當於 22032 平方公分

A4 紙的標準規格是21cm×29.7cm,將陳玄風全身皮膚展開,相當於多少張A4 紙呢?可以在前述代碼下面追加幾行, 使代碼變成這樣子:

def skin_area(height,weight): 

skin_area = 0.0057*height + 0.0121*weight + 0.0882 

skin_area=round(skin_area,6) 

return(skin_area) 

height = int(input(‘ 請輸入陳玄風的身高(公分):’)) 

weight = int(input(‘ 請輸入陳玄風的體重(公斤):’)) 

print(‘ 陳玄風的皮膚表面積是’,skin_area(height,weight), ‘ 平方公尺’) 

skin_area_cm = skin_area(height,weight)*10000 

print(‘ 相當於’,skin_area_cm, ‘ 平方公分’) 

A4_area = 21 * 29.7 

paper_quantity = skin_area_cm / A4_area 

print(‘ 相當於’,paper_quantity,‘ 張A4 紙’) 

運行程式,顯示結果:

請輸入陳玄風的身高(公分):180 

請輸入陳玄風的體重(公斤):90 

陳玄風的皮膚表面積是 2.2032 平方公尺

相當於 22032 平方公分

相當於 35.32467532467533 張A4 紙

取整數,陳玄風的皮膚表面積相當於三十五張A4 紙。前面說過,全寫蠅頭小楷,單張A4 紙能寫五千字,那麼三十五張A4 紙就能寫下十七萬五千字。陳玄風如果願意在全身皮膚上刺字,刺七、八萬字的《九陰真經》下卷完全沒問題。如果他有機會偷到上卷,再連上卷都刺上去,空間也是夠用的。但這樣一來,他不能赤腳,不能光膀子,每次出門都必須裹得嚴嚴實實,還要戴上口罩,否則別人將會從他裸露出的部位窺探到《九陰真經》的奧祕。

誰說不能從武俠學程式?-立體書封.jpg
誰說不能從武俠學程式?-立體書封.jpg

*作者李開周為青年學者本文選自作者著作《誰說不能從武俠學程式》(時報出版)

 

關鍵字:
風傳媒歡迎各界分享發聲,來稿請寄至 opinion@storm.mg

本週最多人贊助文章