2026年9月16日 星期三

九磚柴火爐與分數運算體系

九磚柴火爐與分數運算體系


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
16 September 2026


本篇貼文以 Raspberry pi5 + Ubuntu 24.04 LTS + 注音符號輸入法完成初稿。

相傳三國時代(西元220~280年),曹軍營地使用了一種所謂的 『九磚柴火爐』 解決軍隊行軍時的炊事問題。 此種爐子輕巧方便,高效節能,能用來解決家居院落內廢枝柴的處理問體。 實踐是檢驗真理的唯一標準,我從今年三月二十一日起,每天中飯就藉此爐燒製出午餐,用起來已得心應手,每天都樂此不疲。 我並不打算永遠用它,只打算在解決完庭院內廢枝柴後停止使用。

顧名思義,九磚柴火爐是由九塊磚頭合理堆積而成的,中國的歷史上,早在五千多年以前就有磚窯的燒製技術。 在最近甘肅慶陽南佐遺址的挖掘考古中,發現了黃帝時代(5100~4700年前)夯埋之帝王級別的城堡宮殿內,就有燒製陶器磚瓦的窯及其廢棄物,證明了中國製磚的歷史超過五千年。

燒柴煮飯本有排放煙灰會污染環境的問題,但是廢枝廢柴任其自然腐爛,最後生成甲烷,也是六大溫室限排氣體之一。 合理妥善的燒柴用火,反而是更高效處理掉廢枝柴的方法之一。 廢枝柴是已經乾置夠久的可燃之柴,實際上燒起來並無大煙,只在點燃時免不了有煙,我每天中午燒飯大約一個半小時,大部份時間沒有煙。 我從小當過小樵童,在臺灣宜蘭利澤簡海邊的防風林裏撿過廢乾柴,也在臺南新營市中心天主教幼稚園放學回家,回到新營中山公園的路上,經常撿拾路邊大樹的落枝回家當柴火,作爲引火之用。 我記得 1960 年的年代,我唸高中時,大部份的臺灣家庭仍然燒煤或者燒著柴火煮飯。

沒上小學之前,我在外婆家過日子,兩位舅媽輪流煮飯,一人一星期,我喜歡跟外婆一起司爐,每當舅媽準備炒菜時,她會說:給火旺起來。 我就趕緊塞一把細枝梗入爐膛,這時會有濃煙回嗆出來,我外婆就立刻將一根中空的細竹管插進爐膛中央,吹一口氣,旺火就點燃了。 現今的社會強調燒柴火有所謂的 PM 2.5 危害,依我看,多慮了,我外婆活到 104 歲,於 2003 年過世。 當然,她不是通例,燒柴火時最好還是戴上口罩。

外婆家裏燒柴火的廚房爐灶臺,表面鋪設了光滑紅色的琉璃磚,易於清洗不積油垢,長久使用下來,難免有些廚房的味道,並不難聞。 我知道燒柴火的爐子會有這種問題,因此只宜將其放在開敞的車棚下,就可以不管使用時煙灰到處亂飛的問題。 我在試用單純的九磚柴火爐一段時日之後,發現使用時的主要問題,是炒菜鍋上爐炒起菜來,磚頭很容易崩塌垮掉。 爲此,我刻意改善了爐外的結構,另外採用四塊空心磚補強,從此之後磚頭就不會倒塌了。

想把事情做得好,除了爐子外,還有一些輔助工具應該準備,長火鏟、長鐵夾、長通條、打火機、扇子、水桶、水瓢、數位時鐘、吹風機、溼抹布、回收剩碳時可盛裝且可封蓋之鐵桶、蓋鐵桶用的鐵板、鐵製的濾灰撈網、裝灰的盆子 ····· 等等等東西,都是我另外置備的物品,每天都用。 柴火是曬乾一年以上的木柴,劈柴時,我只用一個 8 磅重的榔頭,敲撃一把小斧頭,順着柴火木頭的紋理來劈柴,一塊直徑超過一公尺的柴火,照樣能被輕鬆的劈成小塊,尺寸以能被放進爐膛爲準。 由於此爐沒有爐篦,只能每天清理爐灰,清出來的爐灰,我傾倒在菜圃內當肥料,也能用來防蝸牛。

長言不如一見,我直接把照片貼在這裏,所有物品的功能就不用細說了,看了就能直接明白。



我一生的專長好像都在搞爐子,大學學的是核子工程,主要工作就是搞原子爐。 當兵退伍,退出核工界,進入社會後,搞鋁合金錠生產,用的是耐火磚造的平爐,專業上的稱呼叫作反射爐。 因此,我對各種爐子的性能有點認識,九磚柴火爐必須用耐火磚才能蓄得住高溫,耐火磚才不會被燒裂,這樣堆積而成的爐子,爐膛大小最適中。 由於操作起來極爲方便,短的柴火可從上方添入,長的柴火可從下方添入,下方的開口也是進風道,扇子就對著這裏搧,需要強風吹火時,就用吹風機對著這裏吹。 清理灰燼時,可以拆掉前爐口的三塊蓋磚,也可以不拆磚,直接進行鏟除灰燼的工作。爲了不浪費柴火,燒完中飯後,我就經常退出剩柴,放進鐵桶,蓋上鐵板,滅了火苗,剩柴隔天還能使用,而且更容易被點燃。

燒柴火煮飯、燒湯、燉菜、煎香腸最爲適合。還在燒柴火過生活的年代,家裏經常就是我司爐,我母親炒菜。 現代的電鍋都不燒出鍋巴來了,適度焦黃的鍋巴卻是很香又健胃的東西,能用柴火燒飯的人都知道,燒出的飯有無鍋巴?是飯鍋只差一分鐘內離開火爐的問題,我已擅長這樣子煮飯。做菜有廣大的學問,中國人擅長,喜歡又願意動手煮出食物的人,知道樂趣也在其中。

分數運算體系

2012年,我在研究建造各種數學體系時,首先拿分數體系進行了試驗,因此而建立過分數的運算體系。

分數運算雖為小學生的課題,它卻不容被忽視,原因是分數是一種絕對數值的數學體系,人生中也常有以分數表示事物的需要,例如:三個人平分,就表示每個人分到三分之一。切一半,就表示切成二分之一。口語中常用,生活習慣中也常用。

拿建立分數運算系統作為建造數學體系的範例是個很好的練習,我就是透過這樣的練習,搞通了建立所有其他數學體系時該有的設計步驟。後來也才能分別建立了複數系統、大整數系統、大浮點數系統。設計系統時,最重要的是知道過程與步驟,設計每個系統時都有共通性,它們也都必須從純粹只使用 FORTH 設計程式的方式開始,按照秩序逐項列出的步驟,都是以考慮系統設計完成後,正式使用時不會再有所欠缺的要求為主要重點。

為方便起見,首次貼出本文時,先行只將程式貼出,有空時我再回頭補述相關內容。這個程式剛經過 Lina64 ABCForth 系統的測試,使用上沒有問題。程式內容借用了不少 gForth 公益系統提供的資源,尊重原創作者,特別聲明。


 


\ Fractiopn math system \ (1)分數輸出輸入指令 \ 分母不得為0的檢查 : DenominatorCheck ( numerator denominator --- numerator denominator ) DUP 0= ABORT" Warning : / 0 Error! " ; \ 帶分數轉換成假分數 : /3>2/ ( integer numerator denominator -- numerator denominator ) DenominatorCheck DUP 0 < SWAP ABS >R SWAP DUP 0< SWAP ABS -ROT XOR IF NEGATE THEN SWAP DUP 0< SWAP ABS R@ * ROT + SWAP IF NEGATE THEN R> ; \ 假分數轉換成帶分數 \ 由於ANS FORTH標準中/MOD指令非一般數學規格,例如:-15 4 /NOD得-4 1而非-3 -3。 \ 故/2>3/指令的設計必須將數字全換成正整數後才進行計算,應有之正負結果亦須自理。 : /2>3/ ( numerator denominator -- integer numerator denominator ) DenominatorCheck DUP 0< SWAP ABS >R OVER 0< XOR SWAP ABS R@ /MOD DUP 0= IF SWAP ROT IF NEGATE THEN ELSE ROT IF NEGATE SWAP ELSE SWAP THEN THEN R> DUP 1 = \ 處理1除以1的情況 IF DROP + 0 1 THEN ; \ 注意!純整數要表示成I&(0/1)而非I&(0/0) \ 印出帶分數 : /3./ ( i n d -- ) ROT . ." & ( " SWAP . ." / " . ." ) " ; \ 印出假分數 : /2./ ( n d -- ) SWAP ." ( " . ." / " . ." ) " ; \ 帶分數印成小數 \ MN. : Mixed Number dot : MN. ( integer numerator denominator -- ) /3>2/ /.. ; \ (2)分數資料結構 : /!/ ( n1 n2 n3 addr -- ) >R R@ 2 CELLS + ! R@ CELL + ! R> ! ; : /@/ ( addr - - n1 n2 n3 ) >R R@ @ R@ CELL + @ R> 2 CELLS + @ ; : /CONSTANT/ ( n1 n2 n3 --- ) ( <name> -- n1 n2 n3 ) CREATE ROT , SWAP , , DOES> /@/ ; : /VARIABLE/ ( -- ) ( <name> -- addr ) CREATE 0 , 0 , 1 , ; : /VARIABLES/ 0 ?DO /VARIABLE/ LOOP ; : /VALUE/ CREATE ROT , SWAP , , DOES> /@/ ; : /VALUES/ 0 ?DO 0 0 1 /VALUE/ LOOP ; : /TO/ ' >BODY STATE @ IF POSTPONE LITERAL POSTPONE /!/ ELSE /!/ THEN ; IMMEDIATE \ /+!/及/+TO/待有/+/後才設計 \ (3)分數四則運算 : frc+norm ( n1 n2 -- n3 n4 = Normalize a fraction n1/n2, return n3/n4 ) \ dup 0> 0= exp-invalid-parameters AND throw over 0= IF drop 1 ELSE 2dup GCD tuck / >r / r> THEN ; : frc+add ( n1 n2 n3 n4 -- n5 n6 ) \ n5 n6 = Add two fractions n1/n2 and n3/n4, return n5/n6 frc+norm 2swap frc+norm \ Normalize both fractions rot 2dup = IF \ denom1 = denom2 ? drop >r + r> \ num = num1 + num2 ELSE \ ELSE 2dup * >r \ denom = denom1 * denom2 rot * >r * r> + \ num = num1 * denom2 + num2 * denom1 r> THEN ; : frc+subtract ( n1 n2 n3 n4 -- n5 n6 ) \ n5 n6 = Subtract fraction n3/n4 from fraction n1/n2, return n5/n6 frc+norm 2swap frc+norm 2swap \ Normalize both fractions rot 2dup = IF \ denom1 = denom2 ? drop >r - r> \ num = num1 + num2 ELSE \ ELSE 2dup * >r \ denom = denom1 * denom2 rot * >r * r> - r> \ num = num2 * denom1 - num1 * denom2 THEN ; : frc+multiply ( n1 n2 n3 n4 -- n5 n6 ) \ n5 n6 = Multiply fraction n1/n2 by fraction n3/n4, return n5/n6 frc+norm 2swap frc+norm \ Normalize both fractions rot * \ denom = denom1 * denom2 >r * r> \ num = num1 * num2 ; : frc+divide ( n1 n2 n3 n4 -- n5 n6 ) \ n5 n6 = Divide fraction n1/n2 by fraction n3/n4, return n5/n6 frc+norm 2swap frc+norm 2swap \ Normalize both fractions over 0= -10 AND throw \ Divide by zero check >r * swap \ num = num2 * denom1 r> * swap \ denom = denom2 * num1 dup 0< IF \ numerator has the sign negate swap negate swap THEN ; : 2/3>2/ /3>2/ 2>R /3>2/ 2R> ; : /+/ 2/3>2/ frc+add frc+norm /2>3/ ; : /-/ 2/3>2/ frc+subtract frc+norm /2>3/ ; : /*/ 2/3>2/ frc+multiply frc+norm /2>3/ ; : /// 2/3>2/ frc+divide frc+norm /2>3/ ; \ (4)分數堆疊操作 3 /VALUES/ TOP1 TOP2 TOP3 : /DUP/ ( i n d -- i n d i n d ) DUP >R OVER >R ROT DUP >R -ROT R> R> R> ; : /DROP/ ( i n d -- ) DROP DROP DROP ; : /SWAP/ ( i2 n2 d2 i1 n1 d1 -- i1 n1 d1 i2 n2 d2 ) /TO/ TOP1 >R >R >R TOP1 R> R> R> ; : /OVER/ ( i2 n2 d2 i1 n1 d1 -- i2 n2 d2 i1 n1 d1 i2 n2 d2 ) >R >R >R /DUP/ R> R> R> /SWAP/ ; : /ROT/ ( mn3 mn2 mn1 -- mn2 mn1 mn3 ) >R >R >R >R >R >R /TO/ TOP1 R> R> R> R> R> R> TOP1 ; : /-ROT/ ( mn3 mn2 mn1 -- mn1 mn3 mn2 ) /TO/ TOP1 >R >R >R >R >R >R TOP1 R> R> R> R> R> R> ; \ /ROLL/,/PICK/‧‧‧等不設計 \ (5)分數邏輯操作 : /0=/ ( i n d -- f ) DROP 0= SWAP 0= AND ; : /</ ( i2 n2 d2 i1 n1 d1 -- f ) /-/ /3>2/ DROP 0< ; : />/ ( i2 n2 d2 i1 n1 d1 -- f ) /SWAP/ /</ ; : />=/ ( i2 n2 d2 i1 n1 d1 -- f ) /</ 0= ; : /<=/ ( i2 n2 d2 i1 n1 d1 -- f ) />/ 0= ; : /=/ ( i2 n2 d2 i1 n1 d1 -- f ) /-/ /0=/ ; : /<>/ ( i2 n2 d2 i1 n1 d1 -- f ) /=/ 0= ; \ (6)分數基本函數 : frc+invert ( n1 n2 -- n3 n4 = Invert the fraction n1/n2, return n3/n4 ) frc+norm \ Normalize fraction over 0= -10 AND throw \ Divide by zero check swap \ invert dup 0< IF \ numerator has the sign negate swap negate swap THEN ; : frc+negate ( n1 n2 -- n3 n4 = Negate the fraction n1/n2, return n3/n4) frc+norm swap negate swap ; : frc+abs ( n1 n2 -- n3 n4 = Absolute the fraction n1/n2, return n3/n4 ) frc+norm swap abs swap ; : frc+to-float ( n1 n2 -- r = Convert fraction n1/n2 to float value ) >r s>d d>f r> s>d d>f f/ ; : /RECIPROCAL/ /3>2/ frc+invert /2>3/ ; : /NEGATE/ /3>2/ frc+negate /2>3/ ; : /ABS/ /3>2/ frc+abs /2>3/ ; : />FLOAT/ frc+to-float ; : /+!/ ( i n d addr -- ) DUP >R /@/ /+/ R> /!/ ; : /+TO/ ' >BODY STATE @ IF POSTPONE LITERAL POSTPONE /+!/ ELSE /+!/ THEN ; IMMEDIATE : /MAX/ ( i2 n2 d2 i1 n1 d1 -- i n d ) /OVER/ /OVER/ /</ IF /SWAP/ THEN /DROP/ ; : /MIN/ ( i2 n2 d2 i1 n1 d1 -- i n d ) /OVER/ /OVER/ /SWAP/ /</ IF /SWAP/ THEN /DROP/ ; 0 0 1 /CONSTANT/ /0/ \ 0 1 0 1 /CONSTANT/ /1/ \ 1 : /^/ ( i n d n -- i n d ) >R /TO/ TOP1 /1/ /TO/ TOP2 R@ 0= IF R> DROP ELSE R@ ABS 0 DO TOP2 TOP1 /*/ /TO/ TOP2 LOOP R> 0< IF TOP2 /RECIPROCAL/ /TO/ TOP2 THEN THEN TOP2 /3>2/ frc+norm /2>3/ ; : /SGN/ ( i n d -- /-1/or/0/or/1/ ) /3>2/ /2>3/ \ normalize /DUP/ /0/ /</ IF /DROP/ /1/ /NEGATE/ ELSE /0/ /=/ IF /0/ ELSE /1/ THEN THEN ;


補述於 20260920:

設計數學計算系統時,首先必須考慮的問題,就是這個系統所處裡之數字必須為固定的格式,分數運算體系亦然。例如:整數運算體系為一個堆疊單元,浮點數運算體系使用兩個堆疊單元,複數運算體系使用了四個堆疊單元。分數運算體系則使用了三個堆疊單元處理三個對應的整數。

我所設計的分數運算系統,實際上只對真分數或假分數進行運算,但輸出或輸入時的表示格式必須採用帶分數,所以採用了三個堆疊單元。分數還有其他的表現方式,例如:繁分數,但在我們建立分數運算系統時不列入考慮。

相關於分數之中英文名詞對照名稱列示如下:

普通分數 Vulgar fraction
帶分數 Mixed number
真分數 Proper fraction
假分數 Improper fraction
有理分數 Rational fraction
繁分數 Complex fraction

它們的意義在小學的課程中都已學過,此處不做解釋,我們只取用帶分數與真分數、假分數三個名詞來解說分數運算時的問題。

帶分數係由下圖中所表示的方式所形成,為方便起見,我自己不另行製圖,此圖係取材自下述網頁的擷取圖,尊重創作者,故說明出處:

https://www.junyiacademy.org/new-video/q3ii8ZD2ldg?parent-topic-id=mbyg4-e
認識真分數假分數與帶分數 - 均一教育平台
www.junyiacademy.org › videos › mby › by-math › mbyg4 › mbyg4-e
2015年12月19日 · 在均一教育平台免費觀看「認識真分數假分數與帶分數」教學影片,搭配練習逐步掌握觀念.
取得擷圖的時間:20260920


上圖中的第一個帶分數,為方便起見,以純文字方式表示為 3(1/2) ,其中 3 代表一個整數 i (integer),1 代表一個整數的分子 n (numerator),2 代表一個整數的分母 d (denomirator),這三個數字都可以是正或負的整數。我們必須注意的是 : 3 與 1/2 之間沒有符號或間隔,但並不表示是 3 乘上 1/2 的意思,而是 3 加上 1/2 的意思。換句話說,手寫上的習慣 3(1/2) 是 3 + (1/2) 的意思,而不是 3 * (1//2) ,口語上唸成 3 又 2 分之 1。

帶分數(Mixed number)是比較完整的分數表示格式,它所表現的數字都是真值,所以只有有理分數(Rational fraction)此一名稱,沒有無理分數這種稱呼。帶分數要化成假分數(Improper fraction)或真分數(Proper fraction)後,才能進行純粹只有分數的四則運算。而在考慮人為的數字輸入問題時,必須將所有可能發生的數字輸入方式均列入考慮,系統在隨後的運算處裡中才能正確。由三個純整數表示出來的帶分數,其數字若均可自由的人為輸入,則三個數字均可為正數或為負數的情況便有 2X2X2=8 種,當只考慮符號的運算方式時,則簡單表示成下列只有三個正整數 i 、 n 、 d ,併同正負符號 (+/-) 的運算表示式:

(+/-)( i * d + ( (+/-) * (+/-) ) * n ) / d

我在設計將帶分數轉化成假分數的指令時,便得仔細運用上述規則,處裡各個數字均有可能為正或為負的情況,指令的堆疊格式為:

( i n d -- n' |d| )

特別聲明:

我在停用 Win32Forth 系統之後,所設計出來的 ABCForth 數學計算系統中,都已不再添加分數運算體系。原因是用處不多,因為需要分數運算者,只有小學生,但是小學生通常都不接觸程式設計。在考慮到精簡系統以利傳承後,我取消了分數運算體系這一部份的程式,避免程式過於龐大而不利於快速轉置到各種不同的 Forth 系統中去。當然,需要再用到它時,也可以隨時添加。

上列程式只是純用 Forth 設計的程式部份。實際上,我完成的設計,還包括了可以使用 BASIC 的語法設計分數運算系統的程式。它可以具有一些潛在的性能,例如:想要進行連續的分數運算時可以使用。也可以用來設計只採用有限項數算出三角函數無窮項數序列表示式的程式,所得的精確值可以是 64 位元能夠表示出來的最大整數運算範圍內之值,可以使用 MN. 指令印出來看其帶有小數點方式的表現數字。

2026年9月2日 星期三


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
2 September 2026


本文原為 2009-07-05 曾貼出過的文章,為留家譜而重貼。

又到了每年該報稅的時間,心頭上總有『大事要做,閒不得也』的感覺,十幾年來,此事均不假手他人,親自辦理,也從未出過問題,每年總有一筆稅金要繳,有所得就該有所稅,循規蹈矩,按時繳清稅款,做個守法的人,日子過得坦坦蕩蕩,就會有舒適的人生。今年報稅截止日期是七月七日蘆溝橋事變紀念日,習慣上我總是提前幾天完成,一口氣把家中所有的稅表填完、遞出,按理應該是熟能生巧,耗時不多的事情,可是每年我總是要耗掉一整天的時間才能完成,原因無它,搞稅的人每年都在填表方式上搞一點點的小改變,如此一來就可以有很多人跟著有飯吃,凡扯到報稅表的都有份,因為表就是不一樣,每年第一次填表時都得從頭到尾詳填一遍,才不會出差錯。

除此之外,西方國家對數字的處理思維,是與我們中國人完全不同的,填稅表的進行方式也就設計成只適合他們的思考模式了。本來是一個總收入減掉總支出再乘上稅率就得到答案的簡單事情,他們認為將其複雜化後,強迫填表人不得不逐步進行、逐欄填寫,才不會出差錯,我也只好跟著被表格耍著走,被迫讀完整本報稅手冊。

雖然這裡商場交易常用刷卡方式,但現金交易仍處處可見,生活久了就能深深體會西方世界腦袋瓜子是如何進行四則運算的。東西方的加法運算可能都一樣,減法就完全不同,買 35 給 100 要找 65 ,中國人是直接算出來的,這裡的店員找錢時,就從 35 起算,先拿一堆 1 元,以一次 1 元的方式往上算或想像成往上加, 36、37、38…加到 40 暫停,再改拿 10 或 20 亦或 50 的紙鈔,繼續往上加,直到加成 100 ,就完成了找錢工作,此時,你若將找得之錢先放進了口袋,回頭再問店員到底應該找我多少?對方一定大發雷霆,認為你在找麻煩,因為他確信已經用 100 跟你換完 100 了,你還想怎樣!找錢時你最好不要講話,以免打斷對方唯一只會的加法計數,否則當對方沒把握而得重新來過,係因受你打攪時,一定火大,要不然他就等你講完所有的話後才找零錢,如果你一直不停的講話,就不能怪對方一直不肯找錢了。至於乘法,據內人在小學協助教學期間所知,小學老師有時也都搞不清楚個位數乘個位數的結果,也就是普遍性的缺乏九九乘法表的記憶,我們就不用探討整個社會的乘法能力了,除法更是免談。信用卡不用算帳,要不然就等找到計算器後再說,這就是西方世界的商場交易情況。

我們一生接觸的數字,最大數目好像到『兆』這個單位也就夠了,因此很少有人去探討再往上數要用甚麼單位?最近美國搞出金融風暴後,錢不值錢了還在猛印鈔票,才感到數目字的名稱要不敷使用了,『兆』的下一個要用『京』。

其實,中、英文中都有可用來稱呼很大數字的名稱,只不過因罕用而罕有人知罷了。我幼年時讀過教育部的一本期刊,刊載了中國人的數字表示名稱,就稱之為『數譜』吧,它們的名稱由大到小依序排列如下:

極 、 載 、 正 、 澗 、 溝 、 穰 、 秭 、 垓 、 京 、 兆
億 、 萬 、 千 、 百 、 十 、 個 、 零 、 錢 、 分 、 釐
毫 、 絲 、 忽 、 微 、 纖 、 沙 、 塵 、 均 、 埃 、 渺 、 漠

極以上另有五個單位,它們是來自印度的名稱,非單個字,用名是恆河沙、阿僧祇、那由他、不可思議、無量數。『兆』以後到『極』的幾個單位可能還算是中國自己土產的,字典上查得到。後面唸起來像印度佛教用字的單位,則可確信是佛教傳入中國後跟著傳進來的東西。

最近廖瑞淦醫師借給我一本李敖的著作『北京法源寺』,據說此書曾經角逐諾貝爾獎,寫得比較中肯,我一向尊崇李敖為學歷史後的論述,但對他以前著述時的一些謾罵則不敢恭維,我自己歷史讀得不好,如要勉強引用歷史,就會岳飛打張飛,打得滿天飛,但就自己科學方面的認識,卻可以指出李敖此一名著中的錯誤,他在書中引用佛經時,以語體文解釋到『阿僧祇』是佛教中的極大數目字名稱,如果我從小的記憶沒有錯誤,從上述的數譜中可以看出,那只能算是排行老四,算不得極大或最大的名稱,『無量數』才是。李大師大概不上網,我貼網頁文章,提醒角逐諾貝爾獎的著作要謹慎一點,應該無傷於他,但我知道,如果他倒過頭來攻擊我的文章時,我一定會變得體無完膚,因此,有心人也請千萬不要在閱過此文後去挑釁李大師。

至於在英文的環境嘛,就像我的鄰居告訴我,他呀呀學語的小孫女會說兩種語言,一是 English ,另一是 Gibberish(兒語),數數目再大她也不怕, Billion、Trillion 以上她都說是 Gazzillion(很多很多的意思)。難怪用完最後一個『兆』(Trillion)這個可用單位後,世界就只好發生金融海嘯了。

這一段只是玩笑話,請別當真,事實上英文的數譜可大得多了,因為他們科技堅強,更有需要,英文的數譜我就不翻譯而直接整理如下,資料的來源是大學圖書館中好幾本科學用書的綜合收集:

我得事先聲明,此表僅供我個人工作須要時參考,可以提供給大家分享,出處太多、無從驗證,也不值得繼續吹毛求疵。 Googol 是 10 的一百次方的很大數字,它與您最近幾年慣常使用的 google 有關,知道便好。


數有數譜,許多事、物也都有譜的,我們曾家也有家譜,在家譜中,我屬『慶』字輩:

興、毓、乾、紀、廣、
昭、憲、慶、繁、祥、
令、德、維、垂、祐、
永、念、誦、顯、揚。

舉凡孔、孟、曾、顏四家子孫都用此譜排名,您若識得有這四姓的朋友,取其名中第二個字比照此譜,便能知個大概了,曾家的子孫可得牢記本譜。新聞報導,大陸上因一點芝蔴綠豆的小事,就有人發動無聊的網路人肉大搜身,真正是譁眾取寵,無聊至極。一個人如果做人處事坦坦蕩蕩,即使篇篇網頁文章都像這樣『裸奔』終身,那又如何?

最近我將自創的數學計算系統定型下來,其中包括了一個可以完全使用中文,設計出任何數值分析性程式的精簡系統,指令只須 20 幾個,測試時變數名稱若也只想用中文時,天干、地支、四維、八德的譜表整理妥當,就可以方便的使用,免得用到爛字。打字時也才發現,有幾個字從來沒把字音唸對過,搞清楚後有正音效果,它們是:

甲乙丙丁戊己庚辛壬癸
子丑寅卯辰已午未申酉戌亥
禮義廉恥
忠孝仁愛信義和平

前一陣子台灣文化遭遇過比文化大革命還糟的破壞,『三隻小豬』可以當成語,儒家思想全面被排擠。難聽的性器官,粗人講的『鼻屎』被當政者到處宣揚,比『毛語錄』還難聽。我們寫程式時最好小心一些,不要這樣,要不然 Forth 是可以隨便給字當指令的,罵起人來會比誰都惡毒,還可以設計成罵語具有深厚的內涵,認真整理別人高段的罵話,也可以押韻成一大『譜』,但不該這樣!

台灣已經不太有人再搞 Forth 了,也沒人想要這方面技術,我便請我的準女婿 Richard 引介,改在紐西蘭自求發展,參加了一個本地自組的 Linux 自由社團 WLUG(Waikato Linux Users Group),以 Forth 協助他們發展技術,第一天參加活動,感覺就很不錯,將近二十人在教堂中,一個月一次,從早上 10 點活動到下午四點,最高齡77歲,三個年輕小姐,有一名盲人朋友,除了我沒電腦外,全部自備電腦,但全部歡迎我用各個電腦展示 gForth ,友善得很,看來未來充滿了希望。現行 Linux 一開機就掛在網上,資源豐富,不輸微軟想獨霸的環境,我第一天接觸的是中文發音很難聽的『污幫吐』(Ubuntu)9.04 版系統,能取得的自由軟體相當壯觀,可惜硬碟要20G以上, RAM 也要 2G ,執行起來才算方便。我暫時還沒有方便的硬體,雖然我一直懷念、使用十幾年前的電腦,也還能創作,但要取得新時代的資源會有困難,九月回台灣時該買新品了,因為這裡有新朋友可以搭配我的發展,可以共鳴 Forth 。月底有一場以 Linux 為發展基礎,用電腦控制新型液晶電視顯示螢幕的軟體發表會,大家極力邀我參加,深信用 Forth 更易發展,也強調未來的數位型電視螢幕,給電腦很有利的發展機會,中國人不太在意此方面之事,也放棄了 Forth ,這裡有人懂,也有人想深入應用,我會前往聽講,看看能否有所建樹?

十幾年來我參加過幾個本地社團,對各種活動略有所知,也知道自己與他們格格不入的原因。先是參加了天文俱樂部,每個月在動物園門口的光學天文臺所在地活動,我去了一年,發現各個會員都是磨鏡好手,都能自製望遠鏡,而且技術精良,我這個機械工程師出身的闖入會員實在愧對大家,最後捐了一個自己庫存多年,市面也罕見的五相步進馬達,運轉起來可有最少振動,供作天文臺自動尋星定位驅動之用,結束了參與。

接著參加健行俱樂部,年輕人居多,都是健行老手帶隊活動,我先小玩了幾趟。當大家邀我參加要離家一天以上的露營健行時,我知道該收攤了,以免自己隨時可能會復發的慣性痛風,在活動期間擔誤了別人,我在台灣登過三十幾座百岳中的高山,但那是年輕時候的事情了,現在逞強不得。

丁陳老師來信告知,他七月六日要做兩條心血管手術,也算是老師傳授給我的另一種教育,要我注重身體健康,我卻只能回祝他平安愉快。

第三次參加的是航行俱樂部,很好玩,可以親自接觸在台灣都不可能接觸到的飛機,包括紐西蘭人曾經廉價自製的巡弋飛彈,但我又相形見拙太多了,玩遙控飛行器的人全能自製,資深會員都幹過戰鬥機飛行員,還有二戰期間滑翔機老教練 Stuart Rogerson 邀我同飛一趟,我不敢答應,連農場來的農民都有飛行執照,最後,我只能閉門思『弱』了。

這次在閉關多年後,重拾舊夢,養足了 Forth 精技才踏足電腦江湖,是希望還能從新時代中學些東西,我會再增加一次另種俱樂部的活動經驗。

紐西蘭人口不多,四百萬而已,南北兩島土地大約是台灣的七倍大,看起來各方面好像都不怎麼樣,它卻有一股台灣所不能及的潛力,從上述各種俱樂部的活動內容可見一般。就算科技也不落後,此地全面反核,可是您知道嗎?核子科學之父羅熱浮(Rutherford,中文教科書翻譯成拉塞福),就是南島北端內爾森(Nelson)市土生土長的紐西蘭人,羅先生最先提出『用高能粒子撞擊原子核能夠探索基本粒子』的研究模式,一直被科技界延用到現在且仍在使用;就是紐西蘭農民用槍射擊草堆(是乾牧草而不是稻草),以子彈的偏折來判斷草堆中有無鐵塊或石塊的方法。我就奇怪中國有這麼多農民,為什麼就沒人像羅先生一樣,提出此一高見?後來仔細一想,關鍵就出在我們中國農民不能擁槍自重啊!

世界各國都有自己先行的科技被糟蹋的記錄,這是由全民自己的共識來決定的,有時怪不得別人的瓢竊。 90 年代,我曾在俄羅斯數年,在許多場合聽過愛迪生發明的電燈泡是他們俄國人發明的,平日熟悉的數學定理全都冠上俄國人的名字。德國人也在飛機上免費雜誌內,大肆報導他們是首先發明造紙與印刷技術的國家,與中國的歷史記錄無關。我有種感覺,科技先進者才有民族自大的權力,我們現在只宜站得高高的,看兩馬相踢,這句話要用台語發音:『站高高,看馬仔相踢。』,那才傳神,但別忘了自己該急起直追的努力,單只是 Forth 一種技術,可以不搞,但總不能甚麼都不搞,連國防都只想靠美國保護吧?

有時自己也該明白自己的能耐,不要太妄自尊大,忘了發展,例如:我們老是愛講火藥是中國人首先發明的,沒錯,那是黑火藥,是硝石、硫磺、黑碳磨成粉,按比例均勻混合後的純機械性產製『火藥』,與經由化學反應後產製的硝化甘油式『炸藥』徹底的不同。以後再提到會爆炸的東西時,中國人就請別再往自己臉上貼金,說自己是最早的發明人了,火藥非炸藥,而且發明這種東西實在丟臉,不提也罷。諾貝爾,諾先生死前體會到,發明這種可以製造大規模殺人武器用品所須材料有罪惡感,所以設立了一個名叫『諾貝爾獎』的『贖罪獎金』。能與不能領這個獎金的人都該為人類的和平好好想一想,尤其是不該領過獎後還作亂,無論是那一種亂都不應該,因為該獎源實在殺人過多,還在殺,還要殺!

我一直對自己想要設計的『地震早期警報系統』不曾忘懷,最近在實現這件理想方面也更加有譜了。 Linux 系統的最基本外殼(Shell)程式,就有現成的定時自動執行發送電子郵件的功能,根本不用設計,而只需直接對系統下命令,做好設定便可,搞 Forth 的人只須將程式抓取所得的信號,存成檔案便可,我轉往 gForth 上,設計此前已經在 Win32Forth 系統上實現過的所有程式,並不困難。

例行性的瀏覽『科學美國人』(Scientific American)89期今年五月號通俗科學雜誌時,發現可測量 20Hz 以下低聲頻的感測器與系統也已經存在了,而且基本理念與我一年多前提出的方法完全相同(還好我一年多前就在中華民國Forth語言協會,留下了網文記錄,現在還在)。只不過是,一個非常和平有益於全人類的構想,又再度被美國人濫用了,他們只拿這樣的系統,派兵監測北韓的核子試爆,卻對可能攸關大量人類生死之事置若罔聞,因為阿兵哥看不懂可能很有用的地震早期警報訊號,他們的任務朝向別處,我若深入研究,可能會被列入屬於想刺探軍機的嫌犯,想買探頭可能都有困難。

另外,想靠美國大兵監測別人核子試爆時,順便照顧一下有無地震的想法,是絕對不可靠的,想想看,靠牆牆還會倒,靠人人則會跑,美國大兵監看測震系統,可能比卡通影片的辛普森照顧原子爐還糟,如何靠?美國的兵只會欺侮弱者,從來沒有敢打強者的記錄,越戰、伊拉克戰爭不都是這樣嗎?不靠也罷。

『科學美國人』是本很好的通俗科學雜誌,早期台灣推動科學發展時,一些科技先進學者創辦的『科學月刊』,就曾大量引用這份『科學美國人』的文稿,對推動台灣科技發展很有助益,我也常看。上述該文隨後也有讀者投書,故意引介可以供應測量低到 0.001Hz 的探頭公司,看來是丹麥人開的公司,網頁是 www.bksv.com ,公司名稱 Bruel & Kuaer capsule ,我對這些事務關心,是只想測地震,不管核爆,網頁可以助我表白,因為誠懇的人可以先把譜擺在這裡。


附註 : 20260902 重新整理後貼出。