算术中求物体体积的方法,如刍萌、刍童、方池、冥谷、堑堵、鳖臑、圆锥、阳马等,各种形状的物体都具备了,只是没有隙积术。古代的算法:凡计算物体的体积,有立方体,是指六个面都是正方形的物体,其计算方法是把一条边自乘两次就可以求得了。有堑堵,是指有点像土墙形状的物体,两边是斜的,两头的面是垂直的。它的截面面积的算法是:先把上、下底的宽相加,除以二,作为截面的宽,用直高与它相乘就求得了一个值;再将直高作为股,用上底面的宽减去下底面的宽,所得之差除以二作为勾,用勾股定理算出弦,就是它的斜边长。有刍童,是指有点像翻过来的方斗形状,四侧都是斜面。它的计算方法是:将上底面的长乘二,与下底面的长相加,再与上底面的宽相乘;将下底面的长乘二,与上底面的长相加,再与下底面的宽相乘;把这两个数值相加,与高相乘,再取其六分之一(就求得了它的体积)。隙积,是指堆累起来而其中有空隙的物体,像堆叠起来的棋子、分层建造起来的土坛以及酒馆里堆累起来的酒坛子一类的物体。它们虽像倒扣着的斗,四侧都是斜面,但是由于边缘存在着一定的残缺或空隙,如果用刍童法计算,所得数量往往比实际的要少。我想出了一种计算方法:用刍童法算出它的上位、下位数值,另外单独列出它的下底宽,减去上底宽,将所得之差乘高,取其六分之一,再并入前面的数目就可以了。假设有用酒坛子累成的堆垛,最上层的长、宽都是两只坛子,最下层的长、宽都是十二只坛子,一层层交错堆垛好。先从最上层数起,数到有十二只坛子的地方,正好是十一层。用刍童法来计算,把上层的长乘二得四,与下层的长相加得十六,与上层的宽相乘,得三十二;再把下层的长乘二得二十四,与上层的长相加得二十六,与下层的宽相乘,得三百一十二;上、下两数相加,得三百四十四,乘高得三千七百八十四。另外将下层的宽十二减去上层的宽,得十,与高相乘,得一百一十,与前面的数字相加,得三千八百九十四;取它的六分之一,得六百四十九。这就是这堆酒坛的数量。运用刍童法算出的是实方的体积,运用隙积法算出的是空缺部分拼合成的体积,也就可以算出多余的体积。丈量土地的方法,方、圆、曲、直的算法都有,不过没有会圆的算法。凡是圆形的土地,既能够拆开来,也应该能让它拼合起来恢复圆形。古代的算法,只用中破圆法把圆形拆开来计算,它的误差有达三倍之多的。我另外设计了一种拆开、会合的计算方法。假设有一块圆形的土地,用它的直径的一半作为弦,再以半径减去所割下的弧形的高,用它们的差作为股;弦、股各自平方,用弦的平方减去股的平方,将它们的差开平方后作为勾,再乘二,就是所割弧形田的弦长。把所割的弧形田的高平方,乘二,再除以圆的直径,所得的商加上弧形的弦长,便是所割弧形田的弧长。再割一块田也像这样计算,用总的弧长减去已割部分的弧长,就是再割之田的弧长了。假如有块圆形的土地,直径是十步,想使割出的圆弧高二步,就用圆半径五步作为弦,五步自乘得二十五;又用半径减去弧形的高二步,它们的差三步作为股,自乘得九;用它与弦二十五相减得十六,开平方得四,这就是勾,再乘二,就是弧的弦长。把圆弧的高二步自乘,得四,再乘二得八,退上一位为四尺,用圆的直径相除。现今圆的直径为十,已经满了整十数,不可除。只用四尺加下圆弧直径,就是所割圆的弧长,共得圆弧直径八步四尺。再割一块圆田,也依照这种方法。如果圆直径是二十步,要求弧长,就应当折半,也就是所说的要用圆弧的半径来除它。这两种方法都涉及精确的算法,是古书里没有说到的,随笔记录于此。
关于屋舍的营造技术,有一部专门讨论的书籍叫做《木经》,有的说是喻皓所撰。此书将屋舍建筑概括为“三分”:自梁以上为“上分”,梁以下、地面以上为“中分”,台阶为“下分”。凡是梁长多少,则梁到屋顶的垂直高度就相应地配多少,以此定出比例。如梁长八尺,梁到屋顶的高度就配三尺五寸,这是厅堂的规格。这叫做“上分”。柱子高若干尺,则堂基就相应地配若干尺,也以此定出比例。如柱子高一丈一尺,则堂前大门台阶的宽度就配四尺五寸之类,以至于斗拱、椽子等都有固定的尺寸,这叫做“中分”。台阶则有“峻”、“平”、“慢”三种;皇宫内是以御辇的出入为标准的:凡是抬御辇自下而上登台阶,前竿下垂尽手臂之长,后竿上举也尽手臂之长,这样才能保持平衡的台阶叫做“峻道”;(抬辇的共有十二人:前二人称前竿,其次二人称前绦;又其次二人称前胁,其后二人称后胁;再后二人称后绦,最后二人称后竿。御辇的前面有队长一人称传唱,御辇的后面有一人称报赛。)前竿与肘部相平,后竿与肩部相平,这样才能保持平衡的台阶叫做“慢道”;前竿下垂尽手臂之长,后竿与肩部相平,这样就能保持平衡的台阶叫做“平道”。这些叫做“下分”。其书共有三卷。近年土木建筑的技术更为严谨完善了,已多不用旧时的《木经》,然而还没有人重新编写一部这样的书,这也应该是优秀的木工信得留意的一项业内之事。
毕昇用雕版印刷书籍,唐朝人还没有大规模采用。至五代时的冯瀛王才开始用雕版印制五经,从那以后的各种典籍和图书都是雕版印刷本了。庆历年间,有位叫毕昇的平民又创造了活字印版。他的方法是用胶泥刻字,字的厚薄像铜钱的边缘一般,每个字制成一个字模,用火烧烤使它变得坚硬。先设置一块铁板,上面用松脂、蜡混合纸灰这一类东西覆盖住。想要印刷时,就拿一个铁框子放在铁板上,然后密密地排列好字模。排满一铁框就作为一个印版,拿着它靠近火烘烤;等松脂等物开始熔化时,就拿一块平板按压它的表面,于是,排在板上的字模就平整得像磨刀石一样。如果只印制三两本书,(这种方法)不能算很简便;如果印刷几十乃至成百上千本书,(这种方法)就显得特别快捷。印刷时通常制作两块铁板,一块正在印刷,另一块已经另外排字模;这一块刚印完,另一块已经准备好了。两块交替使用,极短的时间就可以完成。每一个字都有好多个字模,像“之”、“也”等字,每个字有二十多个字模,用来防备一块板里面有重复出现的字。(字模)不用时,就用纸条做的标签分类加以标示,每个韵部做一个标签,用木格把它们储存起来。遇到平时没有准备的生冷之字,随即把它刻出来,用草火烧烤,很快可以制成。不拿木头制作活字模,是因为木头的纹理有疏有密,沾了水就会变得高低不平,加上容易与药物互相粘连,不能(重新把字模)取下来。不如用胶泥烧制字模,使用完毕后,再次用火烘烤,使药物熔化,用手一抹,那些字模就会自行脱落,一点也不会被药物弄脏。毕昇死后,他的字模被我的堂房兄弟和侄子们得到了,到现在还珍藏着。
淮南人卫朴精通历法,在这方面是不亚于唐僧一行的人物。《春秋》一书中记载了三十六次日食,历代历法学者通加验证,一般认为所记与实际天象密合的不过有二十六七次,只有一行证明有二十九次;而卫朴则证明有三十五次,只有庄公十八年的一次日食,与古今学者对日食发生日期的推算都不合,怀疑是《春秋》记错了。从夏代仲康五年癸巳岁到宋代熙宁六年癸丑岁,凡三千二百零一年,各种书籍所记载的日食共有四百七十五次,以往各种历法的推考检验虽各有得失,而卫朴所得出的合乎实际的结论要较前人为多。卫朴不用计算工具就能够推算古今的日月食,加减乘除都只用口算,却一个数都不会错。凡是正式制定的历法书,全都是一大堆计算程序和数字,卫朴叫人在耳边读一遍,就能够背下来;对于历表和各种年表,他也都能纵横背诵。他曾让人抄写历书,抄写完毕后,叫抄写的人贴着他的耳朵读一遍,有哪个地方错了一个数,读到那地方时,他就说“某字抄错了”,他的学问竟能精湛到这样的程度。他用算筹运算时,很大数字的乘除都不用一步一步摆下去,只照着数位运筹如飞,人的眼睛都跟不上。有人曾故意移动了他的一只算筹,他从上到下用手摸了一遍,到被移动的地方,又随手拨正而离开。熙宁年间制定《奉元历》,因为没有实际的观测记录,卫朴未能全部发挥他的才能和知识,他自己也说这部历法的可靠性大约只有六七成,然而已比其他历法要精密一些。
钱氏王朝统治两浙时,在杭州梵天寺修建一座木塔,才建了两三层时,钱帅登上木塔,嫌它晃动。工匠说:“还没有盖瓦,上面轻,所以才会这样。”于是在上面盖了瓦,但是木塔还是像当初一样晃动。实在没有办法了,工匠就暗地里让妻子去见喻皓的妻子,给她送了金钗,求她向喻皓打听木塔晃动的原因。喻皓笑着说:“这个容易啊,只要逐层铺上木板,用钉子钉牢,就不会晃动了。”工匠按他说的(去做),塔身于是稳定了。因为钉牢木板以后,各层上下更加紧密连接,上、下、左、右、前、后六面互相连接,就像一只箱子。人踩上去,上下及周边四面互相支撑,当然不会晃动。人们都佩服喻皓技艺精熟。
算术求积尺之法,如刍萌、刍童、方池、冥谷、堑堵、鳖臑、圆锥、阳马之类,物形备矣,独未有隙积一术,古法:凡算方积之物,有立方,谓六幂皆方者。其法再自乘则得之。有堑堵,谓如土墙者,两边杀,两头齐。其法并上下广,折半以为之广以直高乘之,以直高以股,以上广减下广,余者半之为勾。勾股求弦,以为斜高。有刍童,谓如覆斗者,四面皆杀。其法倍上长加入下长,以上广乘之;倍下长加入上长,以下广乘之;并二位,以高乘之,六而一。隙积者,谓积之有隙者,如累棋、层坛及洒家积罂之类。虽似覆斗,四面皆杀,缘有刻缺及虚隙之处,用刍童法求之,常失于数少。余思而得之,用争童法为上位;下位别列:下广以上广减之,余者以高乘之,六而一,并入上位。假令积罂:最上行纵横各二罂,最下行各十二罂,行行相次。先以上二行相次,率至十二,当十一行也。以刍童法求之,倍上行长得四,并入下长得十六,以上广乘之,得之三十二;又倍下行长得二十四,并入上长,得二十六,以下广乘之,得三百一十二;并二位得三百四十四,以高乘之,得三千七百八十四。重列下广十二,以上广减之,余十,以高乘之,得一百一十,并入上位,得三千八百九十四;六而一,得六百四十九,此为罂数也。刍童求见实方之积,隙积求见合角不尽,益出羡积也。履亩之法,方圆曲直尽矣,未有会圆之术。凡圆田,既能拆之,须使会之復圆。古法惟以中破圆法拆之,其失有及三倍者。余别为拆会之术,置圆田,径半之以为弦,又以半径减去所割数,余者为股;各自乘,以股除弦,余者开方除为勾,倍之为割田之直径。以所割之数自乘倍之,又以圆径除所得,加入直径,为割田之弧。再割亦如之,减去已割之弧,则再割之弧也。假令有圆田,径十步,欲割二步。以半径为弦,五步自乘得二十五;又以半径减去所割二步,余三步为股,自乘得九;用减弦外,有十六,开平方,除得四步为勾,倍之为所割直径。以所割之数二步自乘为四,倍之得为八,退上一位为四尺,以圆径除。今圆径十,已足盈数,无可除。只用四尺加入直径,为所割之孤,凡得圆径八步四尺也。再割亦依此法。如圆径二十步求弧数,则当折半,乃所谓以圆径除之也。此二类皆造微之术,古书所不到者,漫志于此。
造舍之法,谓之《木经》,或云喻皓所撰。凡屋有三分:去声。自梁以上为上分,地以上为中分,阶为下分。凡梁长几何,则配极几何,以为榱等。如梁长八尺,配极三尺五寸,则厅堂法也,此谓之上分。楹若干尺,则配堂基若干尺,以为榱等。若楹一丈一尺,则阶基四尺五寸之类。以至承拱榱桷,皆有定法,谓之中分。阶级有峻、平、慢三等,宫中则以御辇为法:凡自下而登,前竿垂尽臂,后竿展尽臂为峻道;荷辇十二人:前二人曰前竿,次二人曰前絛,又次曰前胁;后一人曰后胁,又后曰后絛,未后曰后竿。辇前队长一人,曰传倡;后一人,曰报赛。前竿平肘,后竿平肩,为慢道;前竿垂手,后竿平肩,为平道;此之谓下分。其书三卷。近歳土木之工,益为严善,旧《木经》多不用,未有人重为之,亦良工之一业也。
版印书籍,唐人尚未盛为之,自冯瀛王始印五经,已后典籍,皆为版本。庆历中,有布衣毕昇,又为活版。其法用胶泥刻字,薄如钱唇,每字为一印,火烧令坚。先设一铁版,其上以松脂腊和纸灰之类冒之。欲印则以一铁范置铁板上,乃密布字印。满铁范为一板,持就火炀之,药稍镕,则以一平板按其面,则字平如砥。若止印三、二本,未为简易;若印数十百千本,则极为神速。常作二铁板,一板印刷,一板已自布字。此印者才毕,则第二板已具。更互用之,瞬息可就。每一字皆有数印,如之、也等字,每字有二十余印,以备一板内有重復者。不用则以纸贴之,每韵为一贴,木格贮之。有奇字素无备者,旋刻之,以草火烧,瞬息可成。不以木为之者,木理有疏密,沾水则高下不平,兼与药相粘,不可取。不若燔土,用讫再火令药熔,以手拂之,其印自落,殊不沾污。昇死,其印为余群从所得,至今保藏。
淮南人卫朴精于历术,一行之流也。《春秋》日蚀三十六,诸历通验,密者不过得二十六、七,唯一行得二十九;朴乃得三十五,唯庄公十八年一蚀,今古算皆不入蚀法,疑前史误耳。自夏仲康五年癸巳歳,至熙宁六年癸丑,凡三千二百一年,书传所载日食,凡四百七十五。众历考验,虽各有得失,而朴所得为多。朴能不用算,推古今日月蚀,但口诵乘除,不差一算。凡大历悉是算数,令人就耳一读,即能暗诵;傍通历则纵横诵之。尝令人写历书,写讫,令附耳读之,有差一算者,读至其处,则曰:“此误某字。”其精如此。大乘除皆不下照位,运筹如飞,人眼不能逐。人有故移其一算者,朴自上至下,手循一遍,至移算处,则拨正而去。熙宁中撰《奉元历》,以无候簿,未能尽其术。自言得六七而已,然已密于他历。
钱氏据两浙时,于杭州梵天寺建一木塔,方两三级,钱帅登之,患其塔动。匠师云:“未布瓦,上轻,故如此。”方以瓦布之,而动如初。无可奈何,密使其妻见喻皓之妻,赂以金钗,问塔动之因。皓笑日:“此易耳。但逐层布板讫,便实钉之,则不动矣。”匠师如其言,塔遂定。盖钉板上下弥束,六幕相联如胠箧。人履其板,六幕相持,自不能动。人皆伏其精练。