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