1. 資科人看世界之11
-18/3/2011
似是夢囈,其實是認真討論
說中國文字是當今最先進的文字系統,其實並非夢囈,而是確有理據及例證,只是工作私務已教人吃不消,不想再花太多時間做達到嚴肅學術標準程度的考據
功夫,故不如輕鬆一點,就隨意隨心就所知及所識說出一些想法,同意又有興趣的,不防再深入探討一下中文在資訊科技發展中的角色,不同意的就當是夢話好了。
阿拉伯數字也是方塊字 中國文字不利科技是無稽之譚
有外國評論員認為中國的科研出現井噴現象,或可稱為量子跳躍,不過要確認還是太早了一點,由工業革命到上世紀,中國科技的研究發展停頓了近五百年,底子薄弱,現在的發展並未全面,很多項目仍然空白,需要時間來彌補。
屬於中華文化系統的東南亞地區,科技落後西方,很多人嘗試找出原因,而且眾說紛云,什麼儒家學說,皇朝體制,甚至文字系統,通通成了罪魁禍首。關於文字落
後的說法,我曾經信了一段長時間,特別是進行方程式運算時,實在想不通如何用中國文字來列式表達,恨不得將中文全盤拉丁化。後期發現所謂阿拉伯數字的表達
方式,根本源自印度,功勞不應算在西方文明上,而正正和一般人想法相反,阿拉伯數字其實是方塊字,
只要和羅馬數字比較,便明白為何說阿拉伯數字是方塊字的一種,羅馬記數法,是用多個字母互相組合而成,運算複雜,所以羅馬的商人或稅官,計算時都非常遲
鈍。反觀中國,卻有一套類似阿拉伯數字的記數法,或稱花碼(註1),同樣以單字代表數值和以位置代表十進制的位值,這套記數法,在市場的商販價錢牌上便隨
處可見,花碼一至九的寫法如下:
字符 碼址 字符 碼址
0 〇 U+3007
1 〡 U+3021 一 U+4E00
2 〢 U+3022 二 U+4E8C
3 〣 U+3023 三 U+4E09
4 〤 U+3024 四
5 〥 U+3025 五
6 〦 U+3026 六
7 〧 U+3027 七
8 〨 U+3028 八
9 〩 U+3029 九
而且在工業革命前的幾千年,原來中國的科技一直領先西方,換言之是五百年前西方的科技出現井噴現象後才超前東方,如果中國文字真的那麼不濟,那工業革命前的情況便難以解釋,可見中國文字不適合科學技術的發展是無稽之談。
古代偉大文明都有類似中國的方塊表意文字
接下來更多的事物足以令我們重新思考所謂標音文字比中文方塊字先進的理論,首先是遠古文明原來都有類似中文般的方塊表意文字,但由於只有華夏文化能流傳至
今,其他早已失傳,所以不為人知,這些原創而偉大的文明都因為不明因素而湮滅,由於金字塔的開掘才發現古埃及的契形文字,其他如巴比倫的文字體系便難以考
證,只能由一些鄰近較落後民族繼承學習了部份的文字而形成的衍生文字系統推測,例如希臘的標音文字系統,一般相信是源自巴比倫文明,但只餘下標音的部份,
西方文明起源一般只能追朔到希臘,更古老的巴比倫及埃及文明,都沒有第一手的資料留傳下來,原有文字及民族早已消失,但留下的的建設,令今日的科學家也感
到迷惘,說不定希臘的科學成就也是向巴比倫或埃及學回來的。
回頭看亞洲便更明顯,日本、韓國、越南等中國週邊國家,遠古時都比中國落後,需要向中國學習,故採用了不少漢字,但由於中國文字系統太複雜及龐大,他們只
能採用部份漢字,其餘便用標音算了,到清朝時中國國力沒落,韓國及越南索性取消漢字,全改用標音,反而文字漢化最深的日本,雖然亦試圖廢除漢字,始終無法
成功,平假名、片假名及漢字並存到現在;如果歷史改寫,中國被瓜分滅亡,中文亦會湮滅,那並不等如中國文明落後,只不過說明富有而不強大,先進文明便會被
落後文明征服,例如希臘被羅馬征服,羅馬又被更落後的野蠻民族消滅一樣,中國也曾經有幾次幾乎被落後文化征服的歷史。
標音文字是簡化的二次文字(Character Code Set of Secondary Language)
所以說標音文字是一種簡化版的文字系統,看來比說成是文字系統的進化版來得更準確,原因是文化落後的地區在學習較先進文明地區文化時,為了容易一點,將原
有內容簡化,就像小孩子初學文字,忘記了寫法或串法,寫一個同音的字代替,這種打了一個折扣的文字系統算是進步了還是退步了,真是見人見智。
用中國文字做方程運算看似麻煩,其實方塊字包容能力極大,可以將西方文字系統內塑在裡面,與阿拉伯數字更完全兼容,不相信的大可以將方程式內的X Y
Z
的變數換成任何中文字、將阿拉伯數字換成商販標價用的那些數字,基本上沒有分別,但換上羅馬數字和幾個字母組成的英文字作變數,那便難以運算。如果有朝一
日,中國人的科技再次領先世界,我們用方塊字做變數符號,不受那幾十個的字母限制,例如用天干地支六十四卦等做多元聯立方程式的變數符號,擴充能力已比英
文字母加希臘字母更大,因為常用漢字已有四千多個(簡體)至七千多個 (繁體),大五碼字元集有一萬四千多個,全部是整齊16 bit
可獨立運用的字元,拉丁語系的字長短不一,作為運算單位反而有技術困難,至於做詞,無論方塊字或標音字,大家都會出現相同的問題,彼此都沒有特別的優勢,
分別不大。過去用8 bit內碼時,台灣的資科人曾編寫過中文的電腦語言及解繹器,其實都不是真正的中文電腦語言,只是將中文轉換為8
bit內碼的英文字元,現時大部份電腦已完成向萬國碼 UTF 或
ISO10646的過渡,如果用中文創做電腦語言,甚至可將一切指令及運算元長度固定,處理上更有優勢。
運算法與敘述分途 古代算經難懂不關文字問題
曾經編寫過電腦程式的,會發覺教導電腦解聯立方程式並不似我們一般的人手運算方式,竟然似中國古代算經九章算術所用方法,依著來做只覺是知其然不知其所以然,真不知古人如何想出來。
今有上禾三秉,中禾二秉,下禾一秉,實三十九斗;上禾二秉,中禾三秉,下禾一秉,實三十四斗;上禾一秉,中禾二秉,下禾三秉,實二十六斗。問上、中、下禾實一秉各幾何? 荅曰: 上禾一秉,九斗、四分斗之一, 中禾一秉,四斗、四分斗之一, 下禾一秉,二斗、四分斗之三。 方程術曰:置上禾三秉,中禾二秉,下禾一秉,實三十九斗,於右方。中、左禾列如右方。以右行上禾遍乘中行而以直除。又乘其次,亦以直除。然以中行 中禾不盡者遍乘左行而以直除。左方下禾不盡者,上為法,下為實。實即下禾之實。求中禾,以法乘中行下實,而除下禾之實。余如中禾秉數而一,即中禾之實。求 上禾亦以法乘右行下實,而除下禾、中禾之實。余如上禾秉數而一,即上禾之實。實皆如法,各得一鬥。
《九章算術》卷第八「方程」
|
其「方程術」用阿拉伯數字表示即為:
![simultaneous equations in matrix simultaneous equations in matrix](blogger/pole0/chinese-char/d2721a917f5e8e369fde0418c1287448.png)
《九章算術》採用直除法即以一行首項係數乘另一行再對減消元來解方程。
若設可打出黍的斗數分別為1捆上等黍x斗、1捆中等黍y斗、1捆下等黍z斗,可列方程組如下:
![simultaneous equation simultaneous equation](blogger/pole0/chinese-char/ac4aa19c072d38cf7b6498675bc6e646.png)
解得
由此可知,此時的「方程」指的是包含多個未知量的聯立一次方程組,即現在的綫性方程組(註2)。
同樣地,讓一個不懂編程的人看一段用程式語言寫的解聯立方程的程式碼,感覺極為相似 (參看下例):
Sample Programme in C/C++ for Solving Linear Simulataneous Equations in N Variables
C Code Snippet (Toggle Plain Text)#include<stdio.h> #include<conio.h> #include<math.h> #include<process.h> ////////////////////////////////////////////////////////////// ///////////// Programmer : Harsh Chandra ///////////// //////////////////////////////////////////////////////////// void main() { clrscr(); float ar[10][10],s=0,x[10]; int i,j,n,k=12; char m; printf("ENTER THE NUMBER OF INDEPENDENT VARIABLES :"); scanf("%d",&n); printf("\nENTER THE ELEMENTS OF AUGMENTED MATRIX ROWWISE :"); printf("\nFor Example :- First Eq :3x+2y+5z=4 "); printf("\n\t\tInput 3 2 5 4 and so on..."); for(i=0;i<n;i++) { for(j=0;j<n+1;j++) { printf("\nEnter the (%d,%d)th element:",i,j); scanf("%f",&ar[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i!=j) { s+=abs(ar[i][j]); } } if(abs(ar[i][i])<s) k=0; s=0; } if(k!=12) { printf("\n\nTHE SYSTEM OF EQUATIONS YOU HAVE ENTERED CANNOT BE SOLVED BY GUASS SEIDEL METHOD AS IT IS NOT DIAGONALLY DOMINANT"); getch(); exit; } if(k==12) { for(i=0;i<n;i++) x[i]=0; do { for(i=0;i<n;i++) { x[i]=ar[i][n]; for(j=0;j<n;j++) { if(i!=j) x[i]-=(ar[i][j]*x[j]); } x[i]=x[i]/ar[i][i]; } for(i=0;i<n;i++) printf("\nx[%d] = %f",i,x[i]); printf("\nIs it accurate or u want to proceed(enter Y if u wanna proceed) : "); m=getche(); }while(m=='y'|| m== 'Y'); } getch(); } |
只是現行西方數學所用方法確實容易理解,學員也先入為主,無心亦無須詳細研究古人或程式編寫員的方法及原理,說不定古代中國數學家另有簡易直接的算 法,即俗稱的秘訣,只會是口授而不會寫下來,或可能用算盤來輔助運算,用文字說明時則像編寫程式般來表達,就如同典籍上記載的那樣,沒有老師指點,讀了也 是一頭霧水,說中國人自私,不願公開技術和知識,請先想想自己對知識產權的取態,如果認為洋人的知識產權論有理,就不該質疑古人只向謹慎挑選的門徒傳授秘訣的做法,這不過是古人保護知識產權的一種方法。
註 1. 花碼: 蘇州碼子又稱花碼、番仔碼、草碼、菁仔碼,是一種傳統在中國民間流行的數字,產生於中國的蘇州。現在在港澳地區的街市、舊式茶餐廳及中藥房偶而仍然可見。香港部份公共小型巴士仍以此標示車資價錢。 蘇州碼子脫胎於中國文化歷史上的算籌,也是唯一還在被使用的算籌系統。花碼由南宋時期從算籌分化。同算籌一樣,花碼是一種進十進位制計數系統。與算籌不同 的是算籌通常用在數學和工程上,花碼通常用在商業領域裡,主要用途是速記。蘇州碼子從明代被蘇、杭一帶人們採用,在民間流行了數百年後,最終被阿拉伯數字 取代其地位。 花碼使用特別符號來代表數字。這些符號已經被加入Unicode,字符碼址從U+3021到U+3029。蘇州碼子的一至三都是由豎的筆畫來表示,橫排時 很可能會造成混淆。此時應該用漢字數字「一二三」來做區別。比如,二十一(21)可以寫成「〢一」,不應該用「〢〡」因為手寫可能看成「〣」(3)。會混 淆時,通常第一位數字還是用花碼寫。花碼一至九的寫法如下:
數字 蘇州碼子 應用的漢字
字符 碼址 字符 碼址 0 〇 U+3007 1 〡 U+3021 一 U+4E00 2 〢 U+3022 二 U+4E8C 3 〣 U+3023 三 U+4E09 4 〤 U+3024 四 5 〥 U+3025 五 6 〦 U+3026 六 7 〧 U+3027 七 8 〨 U+3028 八 9 〩 U+3029 九 Source: 2. 《九章算術》: 《九章算術》現存最早的中國古代數學著作之一,是《算經十書》中最重要的一種。其作者已不可考。一般認為它是經歷代各家的增補修訂,而逐漸成為現今定本的。 根據研究,西漢的張蒼、耿壽昌曾經做過增補和整理,其時大體已成定本。最後成書最遲在東漢前期,但是其基本內容在東漢後期已經基本定型。九章算術將書中的所有數學問題分為九大類,就是「九章」。 1984年,在湖北出土了《算數書》書簡。據考證,它比《九章算術》要早一個半世紀以上,書中有些內容和《九章算術》非常相似,一些內容的文句也基本相同。有人推測兩書具有某些繼承關係,但也有不同的看法認為《九章算術》沒有直接受到《算數書》影響。 三國時期魏元帝景元四年(263年),劉徽為《九章》作注,加上自己心得體會,使其便於了解,可以流傳下來。唐代李淳風又重新做注(656年),作為《算數十經》之一,版刻印刷,作為通用教材。 Source: <http://zh.wikipedia.org/zh-tw/%E4%B9%9D%E7%AB%A0%E7%AE%97%E8%A1%93>
<http://zh.wikipedia.org/zh-tw/%E6%96%B9%E7%A8%8B> 3. Source: <http://www.daniweb.com/software-development/c/code/216354> |
-25/3/2011
中文輸入不便是鍵盤設計問題
但令我反過來覺得中國文字較西方標音文字更先進的,是谷歌的圖形密碼鎖和二元條碼的出現,谷歌密碼鎖利用九點的相對位置構成的坐標系統及手指動作構成的矢
量序列來做密碼,簡直就是在九宮格上寫中文字,谷歌的靈感是否來自中文的手寫輸入法就不得而知,但原理則相似。在電腦發展初期,由於鍵盤及輸入法都是依據
英文文字系統來設計,同屬希臘及拉丁語系的西方文字,字母數目差別不多,只要將鍵盤稍作修改便可運用,但中文是二維圖形文字,便格格不入,令很多人都認定
中文是一種無法電腦化的文字系統,中文落後的言論差不多成為資訊科技界的主流看法,主張中文拉丁化的人士又找到新的理據。朱邦復先生是第一位提出一個可行
的輸入法來兼容西方鍵盤和八位元電腦的人,而且並沒有從私利出發,開放版權,令他發明的倉頡輸入法成為今日必定內置在華人文化地區出售電腦的輸入法,他的
無私貢獻,創造了不少的產業價值,也啟發了後來的人繼續創造更多的輸入法,老實說,倉頡輸入法並不是一種很好的輸入法,亦不符合中國文字的造字原則,本人
到現在也不懂倉頡輸入法,但對朱老前輩的精神由衷敬佩,如果朱老先生信奉什麼知識產權創富的那一套,將他的輸入法申請專利和商品化,相信會為他帶來一些財
富,電腦的中文應用和普及化則會慢了一些,但很快便會被其他更理想的輸入法淘汰,不似現在能在電腦發展史中佔有一個重要的地位及享有崇高名譽。
其現時常用的英式鍵盤,只是將適用在機械式打字機的的鍵盤作極少修改便移植過來,按鍵和字粒是一對一對應,浪費空間又需要十指全用,完全發揮不到電腦具有
人工智能及屏幕進行互動的優勢,後期的手寯輸入法,又嫌過慢,只能做輔助輸入或在手提裝置上使用,直到一些筆劃輪入的方法發明後,簡潔型的單手操控鍵盤才
具有實用價值。現在的鍵盤輸入法中,個人最喜愛的是以筆劃及順序來決定文字的方法,例如五筆輸入法,九方輸入法,T9(XT9)輸入法,都是人性化得來又
符合中文造字規律的輸入法,配合智慧詞語提示,比手寫還要快,很多時只需三至五鍵便出現所輸入的文字,就是英文也非常暢順,因為內置字典,只要鍵入一組數
字(即筆劃或字母群),每個數字代表一種中文筆劃或同時代表幾個字母,五個字元後,經電腦自動剔除無意義的組合,很多時已見到需要的中英文字,最重要是鍵
盤反而可以簡化而不會影響輸入速度,最適合在手機上使用,所以不便輸入已不再是中文在資訊科技的缺點,甚至可完全取消傳統及浪費空間的101鍵盤,將另一
手解放出來,更似用筆書寫的動作,一時間也許未能習慣適應,但作為一個附加的小型USB鍵盤連同有關輸入法出售,說不定有一定的市場,是一個商機,如果價
錢合理,我便是必然的顧客,有朝一日,大可取締英式鍵盤。
二維空間貯存資訊遠超一維空間
圖形鎖及二元條碼的出現並非因為追求什麼生活品味或態度,而是因為二維條碼圖像能夠記錄更大量的資訊達2,335
字元,傳統條碼原理和西方標音文字的構成原理一樣,都是一維的結構,用線性排序來記錄資訊,所以承載的內容有限,條碼受長度所限,已不敷應用,英文唯有不
斷加長,或用幾個字構成一個詞彙,其實如果空格也看作字符的話,這樣的合成詞彙,仍是一維結構文字的延伸,隨便舉一個中文字或詞,都會發覺譯成西方文字
時,以電腦的字元計算都會較多,例如「資訊」,中文是2x16bit 或4x 8bit即四個八位元字符,但英文information 就有11 x
8bit
即十一個八位元字符,當然有些時候有例外,但大部份情況都顯示一維度的標音文字表達同一內容時會佔用較多記憶體,原因是什麼,現在有了二元條碼的出現,便
有具體的例子來說明背後的技術理論依據了。
不是炎黃子孫盲目地賣花讚花香原,因為中文是二維度的文字,跟二維條碼比一維條碼能記錄更多資訊一樣,一個16bit 方塊字含義比兩個8 bit
英文字元豐富得多,故此中文文字系統的擴充能力比西方文字強得多,仍然有做新字的空間,看網民近年新創的文字便可知道,就是不再做字,只許造詞,創造能力
仍然比標音文字的能力高。如果有資科高手能設計一套以六書這樣的原則來創造新中文字及辨識其中意義的系統,那中文字更不必受內碼容量的局限,差不多有無限
的擴充能力,2010年通用字符集(Universal Character Set,UCS)或ISO制定的ISO 10646(或稱ISO/IEC
10646)字符內碼系統內,包括中日韓越等漢字,共佔用
74616個,繁簡體中文共20,902字,已是佔用內碼最多的文字;中文的唯一缺點,說到底其實是入門門檻太高,但一旦學懂,對圖形空間的處理能力應該
比一般只學懂標音文字的人較強(這是個人印象,不符合嚴謹學術考據的標準),經過數以千年的磨練淘汰,整個民族在這方面的能力得到強化,可能解釋到華裔人
士在智能測驗中通常取得較佳成績
-30/3/2011
中文並非科研跘腳石
從來有關中國文字存廢的辯論,贊成保存一方都是從文學和藝術角度出發,拿歷代祖宗的詩詞歌賦和書法來獻世,但反對一方,則從實用角度用教不利育普及和科技
研究來反駁,由於科技直接影響國家富強及軍備現代化,頗令不少人信服,看到清末民初的慘痛歷史,不少人都向西方取經,學科技的更是直接依西方的一套從頭學
起,與中國傳統科技完全割裂,不是一些外國人對古代中國科技做了有系統的研究,又陸續發現從馬可索羅至哥倫布探險期間,西方人千方百計懷著嚮往東方文化的
心情,冒死從海路到中國,不少科技文獻都有源自中國和印度的蛛絲馬跡,例如達芬奇的機械裝置草圖,如果對宋元明三代的軍事裝備書籍如《武備志》1有涉獵的話,其實並不新鮮;從《武備志》及《天工開物》2 所記載的技術,可知明朝承襲宋元時代的科技,在當時世界仍然先進,明朝軍備更是令滿清一直無法入關的重要因素;《天工開物》作者宋應星3
是書生,並非工部出身,用今日術語說只是行外人,所以資料都不算深入,相信當時有更加清晰詳細的書籍流傳,清朝可能因為老祖宗死於明朝火炮,又見明朝先進
軍備最終仍不敵他們八旗子弟的長弓彎刀,以為自己是受天命管治中國,將科技輕視為奇技淫巧,亦不讓民間擁有製造大殺傷力武器的技術,就像西方國家不容許某
些國家製造大殺傷力武器的心態一樣,所以類似天工闚物的書籍,都被毀滅,現時天工開物的版本,竟是由日本傳回,迫讀書人用一生精力來鑽研文字文學,令後人
以為中文與現代科技八字相沖,差點要廢了方塊字。
學了那麼久的
西科科技,用的都是英文,回頭一想,跟方塊字那有什麼衝突,問題只是外文技術名詞的中譯本竟有三四個版本,那才是溝通表達的主要障礙,用外文不過是方便,
跟思考無關,上面從資訊科技角度看方塊字的優點,在華人文化圈中不知算不算是新觀點,只是光拿詩詞歌賦出來證明中國文字的價值,不能說服那些希望請賽先生
(Mr.
Science)來中國救亡的仁人志士,我姡且做個新嘗試,希望有其他高人有相同看法,誰是第一個提出不要緊,更深入探討才是重要,讓年青一輩不再錯怪老
祖宗,以為中國文字是科研跘腳石。
註: 1. 《武備志》: 《武備志》,又稱《武備全書》,明代茅元儀輯,240卷。《武備志》於天啟元年(1621年)編成,集歷代有關軍事書籍2000餘種。全書分五部分:《兵 訣評》十八卷,輯《孫子》、《吳子》等九家兵書;《戰略考》三十一卷,輯歷代用兵得失,起自春秋,迄於元代;《陣練制》四十一卷,輯歷代陣圖、教練將士、 訓習刀槍拳棒技藝等法;《軍資乘》五十五卷,輯立營、行軍、旌旗、軍械、戰船、火器、屯田、水利、河槽、海運、醫藥、馬匹等事;《佔度載》九十六卷,輯陰 陽占卜、奇門六壬及方輿、海防、江防、航海等事。書中記載有3連發的「神機箭」,100連發的「百虎齊奔」,還錄有《鄭和航海圖》 http://zh.wikipedia.org/zh-hk/%E6%AD%A6%E5%82%99%E5%BF%97 http://www.thegreatwall.com.cn/zhuanti/tscc/greatwallonmap/mapphoto/wbz/ http://www.chnxp.com.cn/soft/dl000058.html 2. 《天工開物》: 初刊於1637年(明崇禎十年)。是中國古代一部綜合性的科學技術著作,有人也稱它是一部百科全書式的著作,作者是明朝科學家宋應星。 http://zh.wikipedia.org/zh-hk/%E5%A4%A9%E5%B7%A5%E5%BC%80%E7%89%A9 http://essence.um-gallery.net/sci-tech_tiangung.html http://zh.wikisource.org/zh-hant/%E5%A4%A9%E5%B7%A5%E9%96%8B%E7%89%A9 3. 宋應星: 宋應星原是一介考生,六試不第,後感於「士子埋首四書五經,飽食終日卻不知糧米如何而來;身着絲衣,卻不解蠶絲如何飼育織造」,遂不再應試,曾旅遊大江南 北,行跡遍及江西、湖北、安徽、江蘇、山東、新疆等地,實地考察,注重實學,從東北捕貂到南海採珠、和闐採玉。宋應星在任分宜縣教諭期間,將他平時所調查 研究的農業和手工業方面的技術整理成書,在崇禎十年,由其朋友涂紹煃資助出版。 http://zh.wikipedia.org/zh-hk/%E5%A4%A9%E5%B7%A5%E5%BC%80%E7%89%A9 |
- 完 -