# 卷五

类型：古籍章节
书名：《九章算术》
作者：佚名
时代：东汉
类别：数学典籍 · 白话译文
卷目：正文
章节：卷五

## 本章概览

《九章算术》卷五商功章系统论述了古代土木工程中的土方体积计算方法，涵盖城墙、堤坝、沟渠、堑壕等各种构筑物的体积算法。本章以“今有术”为核心，通过比例关系解决挖土、夯土、松土之间的换算，并详细给出了方堡壔、圆堡壔、方亭、圆亭、方锥、圆锥、堑堵、阳马、鳖臑、羡除、刍甍、刍童等立体图形的体积公式。例如，方堡壔体积为边长自乘再乘高，圆堡壔为周长自乘乘高除以十二，方亭体积则通过上下底边长相乘、自乘后求和再乘高除以三得到。这些算法体现了古代数学家对立体几何的深刻理解，其中刘徽注以棋验法解释堑堵、阳马、鳖臑的几何关系，指出阳马与鳖臑体积之比为二比一的恒定比率。李淳风等依密率对圆体体积进行了修正。此外，本章还涉及劳动力计算，如按季节定额功、考虑出土功和沙砾水石等因素，以及运输中棚除、踟蹰、载输等步数折算方法。通过对粮仓、土堆等实际问题的运算，展示了数学在工程管理中的广泛应用，为后世提供了系统的体积计算与配工依据。

本章介绍商功，即工程土方体积计算的各种方法，包括各种立体形状的体积公式及土方换算。

本章包含多种立体体积计算公式，如方堡壔、圆堡壔、方亭、圆亭、方锥、圆锥、堑堵、阳马、鳖臑、羡除、刍甍、刍童、曲池等，以及不同土质（挖土、夯土、松土）的换算比例。

## 正文

商功（用来处理工程土方计算）

假设挖土，体积是一万立方尺。问：换算成夯土、松土各是多少？答：夯土七千五百立方尺；松土一万二千五百立方尺。

算法：挖土四份相当于松土五份，（松土指疏松的土。）相当于夯土三份，（夯土指筑墙的土。）相当于墟土四份。（墟土指挖坑出来的土。这些都是通常的比例。）用挖土求松土，乘以五；求夯土，乘以三；都除以四。（这是今有术。）用松土求挖土，乘以四；求夯土，乘以三；都除以五。用夯土求挖土，乘以四；求松土，乘以五；都除以三。（淳风等人按：这个算法也是今有术的意思。重新设置挖土体积一万立方尺为所有数，夯土率三、松土率五各为所求率，挖土率四为所有率，用今有术计算，就得到结果。）

城墙、垣墙、堤坝、沟渠、壕沟、水渠都用同一种算法。

算法：合并上宽和下宽然后取一半，（减去宽的增加给窄的。）用高度或深度乘它，再用长度乘它，就得到体积立方尺。（按：这个算法“合并上宽和下宽然后取一半”是用盈补虚，得到平均宽度。“用高度或深度乘它”得到一端的截面面积。“再用长度乘它”得到立体的体积，所以是立方尺。）

假设挖土，长度一丈六尺，深度一丈，上宽六尺，筑成墙的体积五百七十六立方尺。问：挖土的下宽是多少？答：三尺又五分之三尺。

算法：放置墙的体积立方尺，乘以四作为被除数。（挖土四，是夯土三。墙是夯土。用夯土求挖土，应当乘以四，除以三。）用深度和长度相乘，（得到深度和长度的立体体积。）再乘以三，作为除数。（用深度和长度相乘的立体体积除墙体积，就得到坑的宽度。再乘以三，是与夯土率一起除。）所得的结果，加倍。（因为坑有两个宽度，先合并然后取一半，就是宽窄的平均值。现在先得到平均值，所以再加倍，知道两个宽度的和。）减去上宽，剩下的就是下宽。（按：这个算法挖土四，是夯土三。墙就是夯土。现在用夯土求挖土，应当乘以四，除以三。深度和长度相乘，是深度和长度的截面面积。用深度和长度的截面面积除体积，就得到坑的宽度。又乘以三作为除数，与夯土率一起除。所得的结果加倍，是因为坑有两个宽度，先合并然后取一半，是平均宽度。现在得到平均宽度，所以加倍回到两个宽度的和。所以减去上宽，剩下的就是下宽。）

假设城的下宽四丈，上宽二丈，高五丈，长一百二十六丈五尺。问：体积是多少？答：一百八十九万七千五百立方尺。

假设墙的下宽三尺，上宽二尺，高一丈二尺，长二十二丈五尺八寸。问：体积是多少？答：六千七百七十四立方尺。

假设堤的下宽二丈，上宽八尺，高四尺，长十二丈七尺。问：体积是多少？答：七千一百一十二立方尺。

冬季每人定额功四百四十四立方尺，问：需要人工多少？答：十六人又二百一十一分之二人。

算法：以体积立方尺为被除数，定额功的立方尺数为除数，被除数除以除数，就得到用工人数。

假设沟，上宽一丈五尺，下宽一丈，深五尺，长七丈。问：体积是多少？答：四千三百七十五立方尺。

春季每人定额功七百六十六立方尺，加上出土功的五分之一，实际定额功六百一十二又五分之四立方尺。问：需要人工多少？答：七人又三千六十四分之四百二十七人。

算法：放置每人定额功，去掉它的五分之一，剩下的作为除数。（“去掉它的五分之一”是说用四乘，五除。）以沟的体积立方尺为被除数，被除数除以除数，得到用工人数。（按：这个算法“放置每人定额功，去掉它的五分之一”是说用四乘，五除，除去出土的功，取实际定额功。于是通分并入分子作为除数。用分母乘沟的体积立方尺作为被除数，因为除数里有分数，被除数里要通分，所以被除数除以除数，就得到用工人数。这是用一个人的体积立方尺除总体积，所以得到用工人数。除不尽的，用等数约简后命名分数。）

假设堑，上宽一丈六尺三寸，下宽一丈，深六尺三寸，长十三丈二尺一寸。问：体积是多少？答：一万九百四十三立方尺八寸。（八寸，是说挖土一立方尺，深八寸。这个体积剩余有一立方尺中二分四厘五毫，舍去了。文字想要简便，不是通常的定法。）

夏季每人定额功八百七十一立方尺，加上出土功的五分之一，沙砾水石之功占大半，实际定额功二百三十二又十五分之四立方尺。问：需要人工多少？答：四十七人又三千四百八十四分之四百九人。

算法：放置每人定额功，去掉它的出土功五分之一，又去掉沙砾水石之功的大半，剩下的作为除数。以堑的体积立方尺为被除数。被除数除以除数，就得到用工人数。（按：这个算法“放置每人定额功，去掉它的出土功五分之一”是说用四乘，五除。“又去掉沙砾水石作大半”是一乘，三除，保留少半，取实际定额功。于是通分并入分子作为除数。用分母乘堑的体积立方尺作为被除数，因为除数里有分数，被除数里要通分，所以被除数除以除数，就得到用工人数。除不尽的，用等数约简后命名分数。）

假设挖渠，上宽一丈八尺，下宽三尺六寸，深一丈八尺，长五万一千八百二十四尺。问：体积是多少？答：一千零七万四千五百八十五立方尺六寸。

秋季每人定额功三百立方尺，问：需要人工多少？答：三万三千五百八十二人，功内缺少十四尺四寸。

一千人先到，问：应当承担的长度是多少？答：一百五十四丈三尺二寸八十一分之八寸。

算法：以一人功的尺数乘先到人数作为被除数。（以一千人一日的功为被除数。设立被除数作为功。）合并渠的上宽和下宽然后取一半，用深度乘它，作为除数。（以渠的宽深之立体体积作为除数。）被除数除以除数得到长度的尺数。

假设方堡壔，（堡，是保城；壔，音丁老反，又音纛，是说用土拥木。）方一丈六尺，高一丈五尺。问：体积是多少？答：三千八百四十立方尺。

算法：方自乘，用高乘它，就得到体积立方尺。

假设圆堡壔，周长四丈八尺，高一丈一尺。问：体积是多少？答：二千一百一十二立方尺。（按徽术，应当体积二千一十七尺一百五十七分尺之一百三十一。淳风等人按：依密率，体积二千一十六立方尺。）

算法：周长自相乘，用高乘它，除以十二。（此章各种算法也以周三径一为率，都是不对的。按徽术应当用周长自乘，用高乘它，再用二十五乘，三百一十四除。这里的圆面积也像圆田的面积。求面积也像圆田，而用高乘面积。淳风等人按：依密率，用七乘，八十八除。）

假设方亭，下底边长五丈，上底边长四丈，高五丈。问：体积是多少？答：十万一千六百六十六又三分之二立方尺。

算法：上下边长相乘，又各自乘，相加，用高乘它，除以三。（此章有堑堵、阳马，都合起来成立方体。大概算数的人设立三种棋，以效验高深体积。假设方亭，上边长一尺，下边长三尺，高一尺。用棋，中央立方一个，四面堑堵四个，四角阳马四个。上下边长相乘得三尺，用高乘，得体积三尺，这是得到中央立方一个，四面堑堵各一个。下边长自乘得九，用高乘，得体积九尺。这是得到中央立方一个、四面堑堵各两个、四角阳马各三个。上边长自乘，用高乘，得体积一尺，又得到中央立方一个。总共三种棋都是一变为三，所以除以三，得到体积尺数。用棋的数量：立方三个、堑堵阳马各十二个，总共二十七，棋十三。再依次差等，而构成方亭三个，验证了。做算法也可以令边长差自乘，用高乘，除以三，就是四个阳马；上下边长相乘，用高乘，就是中央立方和四面堑堵。相加，作为方亭的体积数。）

假设圆亭，下底周长三丈，上底周长二丈，高一丈。问：体积是多少？答：五百二十七又九分之七立方尺。（按徽术，应当体积五百四尺四百七十一分尺之一百一十六。淳风等人按：依密率，为体积五百三又三十三分之二十六立方尺。）

算法：上下周长相乘，又各自乘，相加，用高乘它，除以三十六。（此算法依据周三径一。应该用三除上下周长，各得到上下直径。以相乘，又各自乘，相加，用高乘，除以三，得到方亭的体积。假设用三约上下周长都不尽，还通分，就各为上下直径。令上下直径相乘，又各自乘，相加，用高乘，得到三个方亭的积分。这里分母三相乘得九，作为除数，除。又除以三，得到方亭的体积。从方亭求圆亭的体积，也像从方幂求圆幂。于是让圆率三乘它，方率四除，得到圆亭的体积。前面求方亭的体积，是用三除；现在求圆亭的体积，也应三乘。两个分母既然相同，所以相互折合，只以方幂四乘分母九，得三十六，而连除。按徽术，应当上下周长相乘，又各自乘，相加，用高乘，又用二十五乘，九百四十二除。这方亭四角圆杀，比起方亭，二百分之一百五十七。算法的意思，先作方亭，除以三。那么这是根据上下直径来做的，应当又用一百五十七乘，六百除。现在根据周长来做，如果对于圆堡壔，又用二十五乘，三百一十四除，则先得到三个圆亭。所以用三百一十四作为九百四十二而一，一并除去。淳风等人按：依密率，用七乘，二百六十四除。）

假设方锥，下底边长二丈七尺，高二丈九尺。问：体积是多少？答：七千四十七立方尺。

算法：下底边长自乘，用高乘它，除以三。（按：此算法假设方锥下底边长二尺，高一尺，就是四个阳马。如算法做，用十二个阳马构成三个方锥。所以除以三，得到方锥。）

假设圆锥，下底周长三丈五尺，高五丈一尺。问：体积是多少？答：一千七百三十五又十二分之五立方尺。（按徽术，应当体积一千六百五十八尺三百一十四分尺之十三。淳风等人按：依密率，为体积一千六百五十六尺八十八分尺之四十七。）

算法：下底周长自乘，用高乘它，除以三十六。（按：此算法圆锥下底周长作为方锥下底边长。方锥下底边长令自乘，用高乘，令除以三，得到大方锥的体积。大方锥的体积合十二个圆。现在求一个圆，又应除以十二，所以令三乘十二，得三十六，而连除。按徽术，应当下底周长自乘，用高乘，又用二十五乘，九百四十二除。圆锥比起方锥也是二百分之一百五十七。令直径自乘的，也应当用一百五十七乘，六百除。它的解释如圆亭。淳风等人按：依密率，用七乘，二百六十四除。）

假设堑堵，下底宽二丈，长十八丈六尺，高二丈五尺。问：体积是多少？答：四万六千五百立方尺。

算法：宽和长相乘，用高乘它，除以二。

将立方体沿对角线切开，得到两个堑堵。即使再变成椭圆形状，也还是堑堵。所以二合一。这就是符合规矩的棋形。

推究这种物体的形状，大概是在堑上叠加而成。它的形状像城墙，但没有上宽，与所规定的棋形虽然不同但实质相同。没有听说过为什么把它叫做堑堵的说法。

现在有阳马，宽五尺，长七尺，高八尺。问体积是多少？答：九十三尺又三分之一尺。

算法：宽和长相乘，再乘以高，然后除以三。

〔按：这个算法中阳马的形状，是方锥的一个角。现在把四柱屋的角称为阳马。假设宽和各一尺，高一尺，相乘得到立方体积一尺。沿对角线切开立方体，得到两个堑堵；再沿对角线切开堑堵，其中一个就是阳马，另一个是鳖臑。阳马占两份，鳖臑占一份，这是不变的比率。两个鳖臑合成一个阳马，三个阳马合成一个立方体，所以除以三。用棋来验证，它的形状就显露了。全部切割阳马，总共得到六个鳖臑。观察它们的切割分合，则体势相互连通，大概容易明白了。这些棋有的长有的短，有的宽有的窄，立方体不相等，也切割成六个鳖臑。它们的形状不完全相似。然而看到数目相同，体积实际相等。鳖臑形状不同，阳马形体也不同。但阳马形体不同，就不能完全吻合。不能完全吻合，就难以处理了。为什么呢？按：沿对角线切开方棋得到堑堵，必然以一半为分界；沿对角线切开堑堵得到阳马，也必然以一半为分界，一纵一横而已。假设把阳马作为分内，鳖臑作为分外。棋虽然可能随长短宽窄变化，仍然有这种常数比率知道，形状不同，形体各异，也相同的原因，就在于此。假如让鳖臑的宽、长、高各二尺，用堑堵、鳖臑的棋各两个，都用红色棋。又让阳马的宽、长、高各二尺，用立方棋一个，堑堵、阳马的棋各两个，都用黑色棋。红、黑棋接合成堑堵，宽、长、高各二尺。于是从中平分它的宽和长，又从中平分它的高。让红、黑堑堵各自适当成为一个立方，高一尺，方一尺，每两份鳖臑，就有一份阳马。其余两端各自积累本体，合成一个立方。这就是另一种类型中，方形的比率占三，通体方形的比率占一。虽然方形随棋改变，但本来就有固定的趋势。按：剩余数具全而可知的有一、二分之别，那么一、二作为比率就确定了。这在道理上难道是虚妄的吗？如果为了数而穷尽它，设置剩余的宽、长、高的数，各取一半，则四分之三又可以知道。一半更少，剩余更细，最细叫做微，微则无形。由此说来，哪里还有剩余呢？用数来求穷尽的方法，是说用情理推究，不用算筹。鳖臑这种东西，不同于器具；阳马的形状，有时随长短宽窄变化。然而没有鳖臑，就无法弄清阳马的数目；没有阳马，就无法知道锥亭的数目，这是功用的实质。〕

现在有鳖臑，下宽五尺，没有长；上长四尺，没有宽；高七尺。问体积是多少？答：二十三尺又三分之一尺。

算法：宽和长相乘，再乘以高，然后除以六。

〔按：这个算法中，臑是臂节的意思。有人说：半个阳马，它的形状有点像鳖的肘，所以这样命名。从中剖开阳马，得到两个鳖臑。鳖臑的数目就是阳马的一半。数目相同而实际占一半，所以说除以六，就得到。〕

现在有羡除，下宽六尺，上宽一丈，深三尺；末端宽八尺，没有深；长七尺。问体积是多少？答：八十四尺。

算法：合并三个宽度，乘以深，再乘以长，然后除以六。

〔按：这个算法中，羡除实际上是隧道。它所穿过的地，上面平下面斜，像两个鳖臑夹着一个堑堵，就是羡除的形状。假设用这个棋：上宽三尺，深一尺，下宽一尺；末端宽一尺，没有深；长一尺。下宽和末端宽都是堑堵的宽度。上宽是两个鳖臑与一个堑堵相连的宽度。以深和长相乘，得到体积五尺。鳖臑占两份，堑堵占三份，对于原来的棋都是一个分为六，所以除以六。合并四个阳马成为方锥。斜画方锥的底，也让它成为中方。沿着中方削上去并合拢，完全成为中方锥的一半。于是阳马的棋全部从中剖解了。中锥分离成四个鳖臑。所以外锥的一半也是四个鳖臑。虽然背向正面形状不同，与通常所说的鳖臑参差不相似，但实际上相同。所说的夹堑堵，就是中锥的鳖臑。凡是堑堵上长短的，连接阳马；下长短的，与鳖臑连接；上下两长相等，也与鳖臑连接。合并三个宽度，以高和长相乘，除以六，都是它的体积。现在这个羡除的宽度就是堑堵的长度。按：这本来是三个宽度不等，就与鳖臑连接。分开来说：中央堑堵宽六尺，高三尺，长七尺。末端宽的两旁，各有一个小鳖臑，都与堑堵相等。让小鳖臑在里，大鳖臑在外，则大鳖臑都出自椭圆方锥：下宽二尺，长六尺，高七尺。分取它的一半，就是长三尺。以高和宽相乘，除以三，就是半锥的体积。斜解半锥得到这两个大鳖臑。求它们的体积，也应当除以六，符合常数比率。按：阳马的棋两斜，棋底方。当它是方形时，不论旁角而切割，可知各占一半。推究这个，上面连接没有不成方形的，所以方锥与阳马体积相同。角上切割，是各半的形势。这大小鳖臑可以知道互相为表里，只是体有背向正面之分。〕

现在有刍甍，下宽三丈，长四丈；上长二丈，没有宽；高一丈。问体积是多少？答：五千尺。

算法：加倍下长，加上上长，乘以宽，再乘以高，然后除以六。

〔推究义理的人说：旧的说法是：“凡是积刍有上下宽的叫做童，甍，是指屋盖的草苫。”所以甍的下宽、长与童的上宽、长相等。正确解方亭的两边，合起来就是刍甍的形状。假设下宽二尺，长三尺；上长一尺，没有宽；高一尺。它所用的棋，中央堑堵两个，两端阳马各两个。加倍下长，加上上长，得到七尺。以下宽相乘，得到面积十四尺。阳马的面积各占二，堑堵的面积各占三。以高相乘，得到体积十四尺。对于原来的棋，都是一个分为六。所以除以六，就得到。也可以让上下长的差乘以宽，再乘以高，除以三，就是四个阳马；下宽乘以上长再除以二，再乘以高，就是两个堑堵；合并起来，就是甍的体积。〕

刍童、曲池、盘池、冥谷都用同一种算法。

算法：加倍上长，加上下长；也加倍下长，加上上长；各自乘以各自的宽，然后合并，再乘以高或深，然后都除以六。

〔按：这个算法假设刍童上宽一尺，长二尺；下宽三尺，长四尺；高一尺。它所用的棋，中央立方两个，四面堑堵六个，四角阳马四个。加倍下长为八，加上上长，得十，乘以高和宽，得到体积三十尺。这是得到中央立方各三个，两端堑堵各四个，两旁堑堵各六个，四角阳马各六个。再加倍上长，加上下长，得八，乘以高和宽，得到体积八尺。这是得到中央立方也各三个，两端堑堵各两个。合并两旁，三种棋都一个分为六。所以除以六，就得到。作为算法也可以让上下宽长的差相乘，再乘以高，除以三，也是四个阳马；上下宽长互相乘，合并，再除以二，乘以高，就是四面六个堑堵和两个立方；合并起来，就是刍童的体积。还可以让上下宽长互相乘再除以二，上下宽长各自相乘，合并，再乘以高，除以三，就得到。〕

对于曲池，合并上中周长和外周长再除以二，作为上长；也合并下中周长和外周长再除以二，作为下长。

〔这个池子环绕但不闭合，形状像盘蛇，弯曲的。也叫做周，是指像堆积谷物靠着墙的周长。引申开来，周就是长。求长的意思，就是环田。〕

现在有刍童，下宽二丈，长三丈；上宽三丈，长四丈；高三丈。问体积是多少？答：二万六千五百尺。

现在有曲池，上中周长二丈，外周长四丈，宽一丈；下中周长一丈四尺，外周长二丈四尺，宽五尺；深一丈。问体积是多少？答：一千八百八十三尺三寸又三分之一寸。

现在有盘池，上宽六丈，长八丈；下宽四丈，长六丈，深二丈。问体积是多少？答：七万六百六十六尺又三分之二尺。

负土往来七十步，其中二十步是上下棚除，棚除两步折算平道五步；踟蹰之间每十步加一步；载输之间三十步，定一往返一百四十步。土笼体积一尺六寸。秋季每人工作日行五十九里半。问每人到达的土方尺数及所用役徒各是多少？答：每人到达二百零四尺。用徒三百四十六人又一百五十三分之六十二。

算法：以一个土笼的体积尺数乘以行程步数，作为被除数。往来上下棚除两步折算平道五步。

〔棚，阁；除，斜道；有上下的困难，所以让两步当五步。〕

设置定往返步数，每十步加一步，以及载输之间三十步，作为除数。相除，所得就是一人到达的尺数。以每人到达的尺数去除总体积尺数，就是所用役徒人数。

〔按：这个算法中棚是阁，除是斜道，有上下的困难，所以让两步当五步。设置定往返步数，每十步加一步，以及载输之间三十步，这就是往返一次共用一百四十步。在现有算法中，这是所有率，土笼体积一尺六寸是所求率，行程五十九里半是所有数，然后用现有算法计算，就得到到达的尺数。以每人到达的尺数去除总体积尺数，就是所用役徒人数，这是因为用一个人的体积去除总体积尺数，所以得到所用役徒人数。作为算法也可以让往返一次所用的步数去除行程得到往返次数，乘以土笼体积得到一人到达的土方。这个算法与现有算法反复运用，那么乘除的先后，各自有侧重而最终相同。〕

现在有冥谷，上宽二丈，长七丈；下宽八尺，长四丈；深六丈五尺。问体积是多少？答：五万二千尺。

载土往来二百步，载输之间一里。行程五十八里；六人共一车，车载三十四尺七寸。问每人到达的土方尺数及所用役徒各是多少？答：每人到达二百一尺又五十分之十三尺。用徒二百五十八人又一万六十三分之三千七百四十六。

算法：以一车体积尺数乘以行程步数，作为被除数。设置当前往来步数，加上载输之间一里，再乘以车夫六人，作为除数。相除，所得就是一人到达的尺数。以每人到达的尺数去除总体积尺数，就是所用役徒人数。

〔按：这个算法是现有算法的意义。以载输和往来合并得到五百步，作为所有率，车载三十四尺七寸作为所求率，行程五十八里，换算成步，作为所有数，然后用现有算法计算，所得就是一车到达的土方。要想得到每人到达的，应当除以六人，就得到。算法中有分数，所以也改变乘法并一起除，也是用车尺数作为一人到达的土方率，六人乘以五百步作为行率。又可以用五百步作为行率，让六人除车体积尺数得到一人到达的土方率，用负土术代入。代入，也可以求往返次数。总之要取其会通而已。算法恐怕有分数，所以让乘法并一起除。以每人到达的尺数去除总体积尺数，就是所用役徒人数，这是因为用一人到达的体积尺数去除总体积，所以得到所用役徒人数。〕

现在有粟米平地堆放，下周长一十二丈，高二丈。问体积及折合粟米各是多少？答：体积八千尺。

〔按徽术，应当体积七千六百四十三尺又一百五十七分之四十九尺。

淳风等按：依照密率，体积七千六百三十六尺又十一分之四尺。〕

折合粟米二千九百六十二斛又二十七分之二十六斛。

按照刘徽的方法，应当有粟二千八百三十斛一千四百一十三分之斛一千二百一十。李淳风等人按：依照密率，是粟二千八百二十八斛九十九分之斛二十八。现在有一堆豆子靠着墙堆放，底周长三丈，高七尺。问体积和豆子各是多少？答：体积三百五十尺。按照刘徽的方法，应当有体积三百三十四尺四百七十一分尺之一百八十六。李淳风等人按：依照密率，体积是三百三十四尺十一分尺之一。豆子一百四十四斛二百四十三分斛之八。按照刘徽的方法，应当有豆子一百三十七斛一万二千七百一十七分斛之七千七百七十一。李淳风等人按：依照密率，豆子是一百三十七斛八百九十一分斛之四百三十三。现在有一堆米靠着墙内角堆放，底周长八尺，高五尺。问体积和米各是多少？答：体积三十五尺九分尺之五。按照刘徽的方法，应当有体积三十三尺四百七十一分尺之四百五十七。李淳风等人按：依照密率，应当有体积三十三尺三十三分尺之三十一。米二十一斛七百二十九分斛之六百九十一。按照刘徽的方法，应当有米二十斛三万八千一百五十一分斛之三万六千九百八十。李淳风等人按：依照密率，米是二十斛二千六百七十三分斛之二千五百四十。堆粟的方法：底周长自乘，乘以高，除以三十六。这相当于圆锥。按照刘徽的方法，也应当底周长自乘，乘以高，再乘以二十五，除以九百四十二。靠着墙的，是圆锥的一半。除以十八。按照刘徽的方法，应当让这个底周长自乘，乘以高，再乘以二十五，除以四百七十一。靠着墙的底周长，是完整周长的一半。它的自乘的幂是完整周长自乘的幂的四分之一，所以用完整周长的方法的一半作为分母。靠着墙内角的，角是角落，是圆锥的四分之一。除以九。按照刘徽的方法，应当让这个底周长自乘，再乘以二，乘以高，再乘以二十五，除以四百七十一。靠着角落的底周长，是靠着墙周长的一半。它的自乘的幂是靠着墙自乘的幂的四分之一，应当用靠着墙的方法的一半作为分母。分母不能取一半，所以把被除数加倍。又这个方法也用的是圆周率三径一。假设用三除周长，得到直径；如果除不尽，通分后分子，就是直径的积分。让直径自乘，乘以高，得到三方锥的积分。分母自乘得九，作为分母，又应当除以三，得到方锥的体积。从方锥中求圆锥的体积，也像从方幂求圆幂。应当乘以三，除以四，得到圆锥的体积。前面求方锥体积，是用三除；现在求圆锥体积，又须乘以三。两个分母相同，所以互相折算。只用四乘分母九，得三十六而连除，就是圆锥的体积。圆锥的体积与平地堆粟相同，所以除以三十六。李淳风等人按：依照密率，乘以七，对于平地堆的，除以二百六十四；靠着墙的，除以一百三十二；靠着角落的，除以六十六。标准的一斛粟体积为二尺七寸；二尺七寸，是指边长一尺，深二尺七寸，总共体积二千七百立方寸。一斛米的体积是一尺六寸五分之一寸；是指体积一千六百二十立方寸。一斛豆、荅、麻、麦的体积都是二尺四寸十分寸之三。是指体积二千四百三十立方寸。这是按精粗的比例，而不等其概。粟率五，米率三，所以一斛米相对于一斛粟，是五分之三；豆、荅、麻、麦也按照本来的率。所以说这三种量器是概，但都不合于现在的斛。当今大司农的斛，圆径一尺三寸五分五厘，正深一尺，按照刘徽的方法，体积为一千四百四十一立方寸，排成余分，又有十分寸之三。王莽铜斛按现在尺深九寸五分五厘，径一尺三寸六分八厘七毫。用刘徽方法计算，相对于现在斛能容九斗七升四合有余。《周官·考工记》说：朅氏制作量器，深一尺，内方一尺而外圆，其实一釜。按刘徽方法，这个圆体积一千五百七十立方寸。《左氏传》说：“齐国的旧四种量器：豆、区、釜、钟。四升为一豆，各自四倍，直到釜。十釜为一钟。”钟是六斛四斗。釜是六斗四升，方一尺，深一尺，体积一千立方寸。如果这个方体积容六斗四升，那么通外圆积成旁，容十斗四合一龠五分龠之三。用数相乘，则斛的形制：方一尺而外圆，庣旁一厘七毫，面积一百五十六又四分之一平方寸，深一尺，体积一千五百六十二点五立方寸，容十斗。王莽铜斛与《汉书·律历志》所论述的斛相同。现在有粮仓，宽三丈，长四丈五尺，能容纳粟一万斛。问高是多少？答：二丈。方法：将粟一万斛的体积尺数作为被除数。宽和长相乘作为除数。被除数除以除数，得到高的尺数。用宽长的乘积除体积，所以得到高。按：这个方法本来是用宽长相乘，再乘高，得到这个体积。现在反过来，用宽长相乘作为除数，除体积，所以得到高。现在有圆囷，圆囷即粮仓，也称作圆囤，高一丈三尺三寸少半寸，能容纳米二千斛。问周长是多少？答：五丈四尺。按照刘徽的方法，应当周长五丈五尺二寸二十分寸之九。李淳风等人按：依照密率，周长为五丈五尺一百分尺之二十七。方法：将米的体积折合成尺，这个体积相当于圆堡昪的体积。乘以十二，除以高。所得结果，开平方，就是周长。按照刘徽的方法，应当将米的体积尺数乘以三百一十四作为被除数。用二十五乘以囷高作为除数。所得结果，开平方，就是周长。这也是根据可见面积求周长，结果偏小。晋代武库中有汉朝王莽制作的铜斛，其篆书文字题在斛旁说：律嘉量斛，方一尺而外圆，庣旁九厘五毫，面积一百六十二平方寸；深一尺，体积一千六百二十立方寸，容十斗。斛底说：律嘉量斗，方尺而外圆，庣旁九厘五毫，面积一尺六寸二分。深一寸，体积一百六十二立方寸，容一斗。合、龠都有文字。升在斛旁，合、龠在斛耳上。后面有赞文，与当今律历志相同，也是魏晋时期常用的。现在粗略记述王莽铜斛的文字、尺寸、分数，但不能完全得到升、合、勺的文字。按：这个方法本来是用周长自乘，乘以高，除以十二，得到这个体积。现在反过来，将体积乘以十二，除以高，就恢复为周长自乘的数。任何数自乘，开平方，就恢复原数。所以开平方，就得到周长。李淳风等人按：依照密率，用八十八相乘作为被除数。用七乘以囷高作为除数。被除数除以除数。开平方，就是周长。

## 为什么值得读

本章是古代工程数学的重要部分，提供了实际土方计算的方法。

## 标签

- 商功
- 土方
- 体积
- 方堡壔
- 圆堡壔
- 方亭
- 堑堵
- 阳马
- 今有术
- 周三径一

原始页面：https://shishuguan.com/books/jiuzhang-suanshu-baihuawen-full/volume-1/chapter-6
