算術中求物體體積的方法,如芻萌、芻童、方池、冥谷、塹堵、鱉臑、圓錐、陽馬等,各種形狀的物體都具備了,只是沒有隙積術。古代的算法:凡計算物體的體積,有立方體,是指六個面都是正方形的物體,其計算方法是把一條邊自乘兩次就可以求得了。有塹堵,是指有點像土墻形狀的物體,兩邊是斜的,兩頭的面是垂直的。它的截面面積的算法是:先把上、下底的寬相加,除以二,作為截面的寬,用直高與它相乘就求得了一個值;再將直高作為股,用上底面的寬減去下底面的寬,所得之差除以二作為勾,用勾股定理算出弦,就是它的斜邊長。有芻童,是指有點像翻過來的方斗形狀,四側都是斜面。它的計算方法是:將上底面的長乘二,與下底面的長相加,再與上底面的寬相乘;將下底面的長乘二,與上底面的長相加,再與下底面的寬相乘;把這兩個數(shù)值相加,與高相乘,再取其六分之一(就求得了它的體積)。隙積,是指堆累起來而其中有空隙的物體,像堆疊起來的棋子、分層建造起來的土壇以及酒館里堆累起來的酒壇子一類的物體。它們雖像倒扣著的斗,四側都是斜面,但是由于邊緣存在著一定的殘缺或空隙,如果用芻童法計算,所得數(shù)量往往比實際的要少。我想出了一種計算方法:用芻童法算出它的上位、下位數(shù)值,另外單獨列出它的下底寬,減去上底寬,將所得之差乘高,取其六分之一,再并入前面的數(shù)目就可以了。假設有用酒壇子累成的堆垛,最上層的長、寬都是兩只壇子,最下層的長、寬都是十二只壇子,一層層交錯堆垛好。先從最上層數(shù)起,數(shù)到有十二只壇子的地方,正好是十一層。用芻童法來計算,把上層的長乘二得四,與下層的長相加得十六,與上層的寬相乘,得三十二;再把下層的長乘二得二十四,與上層的長相加得二十六,與下層的寬相乘,得三百一十二;上、下兩數(shù)相加,得三百四十四,乘高得三千七百八十四。另外將下層的寬十二減去上層的寬,得十,與高相乘,得一百一十,與前面的數(shù)字相加,得三千八百九十四;取它的六分之一,得六百四十九。這就是這堆酒壇的數(shù)量。運用芻童法算出的是實方的體積,運用隙積法算出的是空缺部分拼合成的體積,也就可以算出多余的體積。丈量土地的方法,方、圓、曲、直的算法都有,不過沒有會圓的算法。凡是圓形的土地,既能夠拆開來,也應該能讓它拼合起來恢復圓形。古代的算法,只用中破圓法把圓形拆開來計算,它的誤差有達三倍之多的。我另外設計了一種拆開、會合的計算方法。假設有一塊圓形的土地,用它的直徑的一半作為弦,再以半徑減去所割下的弧形的高,用它們的差作為股;弦、股各自平方,用弦的平方減去股的平方,將它們的差開平方后作為勾,再乘二,就是所割弧形田的弦長。把所割的弧形田的高平方,乘二,再除以圓的直徑,所得的商加上弧形的弦長,便是所割弧形田的弧長。再割一塊田也像這樣計算,用總的弧長減去已割部分的弧長,就是再割之田的弧長了。假如有塊圓形的土地,直徑是十步,想使割出的圓弧高二步,就用圓半徑五步作為弦,五步自乘得二十五;又用半徑減去弧形的高二步,它們的差三步作為股,自乘得九;用它與弦二十五相減得十六,開平方得四,這就是勾,再乘二,就是弧的弦長。把圓弧的高二步自乘,得四,再乘二得八,退上一位為四尺,用圓的直徑相除。現(xiàn)今圓的直徑為十,已經(jīng)滿了整十數(shù),不可除。只用四尺加下圓弧直徑,就是所割圓的弧長,共得圓弧直徑八步四尺。再割一塊圓田,也依照這種方法。如果圓直徑是二十步,要求弧長,就應當折半,也就是所說的要用圓弧的半徑來除它。這兩種方法都涉及精確的算法,是古書里沒有說到的,隨筆記錄于此。
關于屋舍的營造技術,有一部專門討論的書籍叫做《木經(jīng)》,有的說是喻皓所撰。此書將屋舍建筑概括為“三分”:自梁以上為“上分”,梁以下、地面以上為“中分”,臺階為“下分”。凡是梁長多少,則梁到屋頂?shù)拇怪备叨染拖鄳嘏涠嗌伲源硕ǔ霰壤H缌洪L八尺,梁到屋頂?shù)母叨染团淙呶宕纾@是廳堂的規(guī)格。這叫做“上分”。柱子高若干尺,則堂基就相應地配若干尺,也以此定出比例。如柱子高一丈一尺,則堂前大門臺階的寬度就配四尺五寸之類,以至于斗拱、椽子等都有固定的尺寸,這叫做“中分”。臺階則有“峻”、“平”、“慢”三種;皇宮內(nèi)是以御輦的出入為標準的:凡是抬御輦自下而上登臺階,前竿下垂盡手臂之長,后竿上舉也盡手臂之長,這樣才能保持平衡的臺階叫做“峻道”;(抬輦的共有十二人:前二人稱前竿,其次二人稱前絳;又其次二人稱前脅,其后二人稱后脅;再后二人稱后絳,最后二人稱后竿。御輦的前面有隊長一人稱傳唱,御輦的后面有一人稱報賽。)前竿與肘部相平,后竿與肩部相平,這樣才能保持平衡的臺階叫做“慢道”;前竿下垂盡手臂之長,后竿與肩部相平,這樣就能保持平衡的臺階叫做“平道”。這些叫做“下分”。其書共有三卷。近年土木建筑的技術更為嚴謹完善了,已多不用舊時的《木經(jīng)》,然而還沒有人重新編寫一部這樣的書,這也應該是優(yōu)秀的木工信得留意的一項業(yè)內(nèi)之事。
畢昇用雕版印刷書籍,唐朝人還沒有大規(guī)模采用。至五代時的馮瀛王才開始用雕版印制五經(jīng),從那以后的各種典籍和圖書都是雕版印刷本了。慶歷年間,有位叫畢昇的平民又創(chuàng)造了活字印版。他的方法是用膠泥刻字,字的厚薄像銅錢的邊緣一般,每個字制成一個字模,用火燒烤使它變得堅硬。先設置一塊鐵板,上面用松脂、蠟混合紙灰這一類東西覆蓋住。想要印刷時,就拿一個鐵框子放在鐵板上,然后密密地排列好字模。排滿一鐵框就作為一個印版,拿著它靠近火烘烤;等松脂等物開始熔化時,就拿一塊平板按壓它的表面,于是,排在板上的字模就平整得像磨刀石一樣。如果只印制三兩本書,(這種方法)不能算很簡便;如果印刷幾十乃至成百上千本書,(這種方法)就顯得特別快捷。印刷時通常制作兩塊鐵板,一塊正在印刷,另一塊已經(jīng)另外排字模;這一塊剛印完,另一塊已經(jīng)準備好了。兩塊交替使用,極短的時間就可以完成。每一個字都有好多個字模,像“之”、“也”等字,每個字有二十多個字模,用來防備一塊板里面有重復出現(xiàn)的字。(字模)不用時,就用紙條做的標簽分類加以標示,每個韻部做一個標簽,用木格把它們儲存起來。遇到平時沒有準備的生冷之字,隨即把它刻出來,用草火燒烤,很快可以制成。不拿木頭制作活字模,是因為木頭的紋理有疏有密,沾了水就會變得高低不平,加上容易與藥物互相粘連,不能(重新把字模)取下來。不如用膠泥燒制字模,使用完畢后,再次用火烘烤,使藥物熔化,用手一抹,那些字模就會自行脫落,一點也不會被藥物弄臟。畢昇死后,他的字模被我的堂房兄弟和侄子們得到了,到現(xiàn)在還珍藏著。
淮南人衛(wèi)樸精通歷法,在這方面是不亞于唐僧一行的人物。《春秋》一書中記載了三十六次日食,歷代歷法學者通加驗證,一般認為所記與實際天象密合的不過有二十六七次,只有一行證明有二十九次;而衛(wèi)樸則證明有三十五次,只有莊公十八年的一次日食,與古今學者對日食發(fā)生日期的推算都不合,懷疑是《春秋》記錯了。從夏代仲康五年癸巳歲到宋代熙寧六年癸丑歲,凡三千二百零一年,各種書籍所記載的日食共有四百七十五次,以往各種歷法的推考檢驗雖各有得失,而衛(wèi)樸所得出的合乎實際的結論要較前人為多。衛(wèi)樸不用計算工具就能夠推算古今的日月食,加減乘除都只用口算,卻一個數(shù)都不會錯。凡是正式制定的歷法書,全都是一大堆計算程序和數(shù)字,衛(wèi)樸叫人在耳邊讀一遍,就能夠背下來;對于歷表和各種年表,他也都能縱橫背誦。他曾讓人抄寫歷書,抄寫完畢后,叫抄寫的人貼著他的耳朵讀一遍,有哪個地方錯了一個數(shù),讀到那地方時,他就說“某字抄錯了”,他的學問竟能精湛到這樣的程度。他用算籌運算時,很大數(shù)字的乘除都不用一步一步擺下去,只照著數(shù)位運籌如飛,人的眼睛都跟不上。有人曾故意移動了他的一只算籌,他從上到下用手摸了一遍,到被移動的地方,又隨手撥正而離開。熙寧年間制定《奉元歷》,因為沒有實際的觀測記錄,衛(wèi)樸未能全部發(fā)揮他的才能和知識,他自己也說這部歷法的可靠性大約只有六七成,然而已比其他歷法要精密一些。
錢氏王朝統(tǒng)治兩浙時,在杭州梵天寺修建一座木塔,才建了兩三層時,錢帥登上木塔,嫌它晃動。工匠說:“還沒有蓋瓦,上面輕,所以才會這樣。”于是在上面蓋了瓦,但是木塔還是像當初一樣晃動。實在沒有辦法了,工匠就暗地里讓妻子去見喻皓的妻子,給她送了金釵,求她向喻皓打聽木塔晃動的原因。喻皓笑著說:“這個容易啊,只要逐層鋪上木板,用釘子釘牢,就不會晃動了。”工匠按他說的(去做),塔身于是穩(wěn)定了。因為釘牢木板以后,各層上下更加緊密連接,上、下、左、右、前、后六面互相連接,就像一只箱子。人踩上去,上下及周邊四面互相支撐,當然不會晃動。人們都佩服喻皓技藝精熟。