天机运化,人道可窥;数度相推,算必程式_风闻
文渊紫光-2021-10-22 00:21
总论
天机运化,人道可窥;数度相推,算必程式。
然而谬言数有神理者,在中为推衍预言,在西为名称义理循辨。
《海岛算经》由刘徽于三国魏景元四年(公元263年)撰成,本为《九章算术注》之第十卷,题为《重差》。
唐初开始单行,体例亦是应用型的问题集形式。研究的对象全是有关高度与距离的测量。
所使用的工具也都是利用垂直关系所连接起来的测竿与横棒。
有人说是实用三角法的启蒙,不过其内容并未涉及三角学中的正余弦概念。
所有问题都是利用两次或多次测望所得的数据,来推算可望而不可及的目标的高、深、广、远。
此卷书被收录入明成祖时编修的永乐大典中,现保存在英国剑桥大学图书馆。
《海岛算经》共设九问,均是利用表尺从不同位置多次测望,取多次测量所得的差数,进行计算从而求得山高或谷深,这就是刘徽的重差理论。
《海岛算经》中,从题目文字可知所有计算都是用筹算进行的。“为实”指作为一个分数的分子,“为法”指作为分数的分母。所用的长度单位有里、丈、步、尺、寸:1里=180丈=1800尺;1丈=10尺:1步=6尺,1尺=10寸。

第一题:
今有望海岛,立两表,齐高三丈,前后相去千步,令后表与前表参相直。从前表却行一百二十三步,人目着地取望岛峰,与表末参合。从后表却行一百二十七步,人目着地取望岛峰,亦与表末参合。问岛高及去表各几何?
答曰:岛高四里五十五步;去表一百二里一百五十步。
术曰:以表高乘表间为实;相多为法,除之。所得加表高,即得岛高。求前表去岛远近者:以前表却行乘表间为实;相多为法。除之,得岛去表数。
今人解答:

AA’和BB’是两根标杆(两表),现在的目标是测量CD的高度(岛高)和CA的距离(去表)。
已知从P点通过A’刚好望到D,从Q点通过B’也刚好望到D。则根据相似三角形属性:
CD/CP = AA’/AP
CD/CQ = BB’/BQ
∵AA’=BB’ → CP/AP = CD/AA’ = CD/BB’ = CQ/BQ
(CA+AP)/AP = (CA+AB+BQ)/BQ
CA/AP = (CA+AB)/BQ
CA*BQ = (CA+AB)*AP = CA*AP + AB*AP
CA*(BQ-AP) = AB*AP
CA = AB*AP/(BQ-AP)
CD = CP*AA’/AP = (CA+AP)*AA’/AP = CA*AA’/AP + AA’ = AB*AA’/(BQ-AP) + AA'
【术曰:以表高乘表间为实;相多为法,除之。所得加表高,即得岛高。求前表去岛远近者:以前表却行乘表间为实;相多为法。除之,得岛去表数。】这里【表高】=AA’,【表间】=AB,【相多】=BQ-AP,【前表却行】=AP,跟以上两道等式完全吻合!
【今有望海岛,立两表,齐高三丈,前后相去千步,令后表与前表参相直。从前表却行一百二十三步,人目着地取望岛峰,与表末参合。从后表却行一百二十七步,人目着地取望岛峰,亦与表末参合。问岛高及去表各几何?】
这里以步作基本单位:
【表高】=3丈=30尺=5步(AA’=5),
【表间】=1000步(AB=1000),
【前表却行】=123步(AP=123),
【后表却行】=127步(BQ=127),
【相多】=127-123=4步(BQ-AP=4)。
得:CD = AB*AA’/(BQ-AP) + AA’ = 1000*5/4 + 5 = 1250 + 5 = 1255CA = AB*AP/(BQ-AP) = 1000*123/4 = 30750
【答曰:岛高四里五十五步;去表一百二里一百五十步。】【岛高】= 4里 + 55步 = 7200尺 + 55步 = 1200步 + 55步 = 1255步【去表】= 102里 + 150步 = 183600尺 + 150步 = 30600步 + 150步 = 30750步,结果完全吻合!
第二题
今有望松生山上,不知高下。立两表齐,高二丈,前後相去五十步,令後表与前表参相直。从前表却行七步四尺,薄地遥望松末,与表端参合。又望松本,入表二尺八寸。复从後表却行八步五尺,薄地遥望松末,亦与表端参合。问松高及山去表各几何?
答曰:松高一十二丈二尺八寸;山去表一里二十八步、七分步之四。
术曰:以入表乘表间为实。相多为法,除之。加入表,即得松高。求表去山远近者:置表间,以前表却行乘之为实。相多为法,除之,得山去表。
今人解答:

AA’和BB’是两根标杆(两表),
R是AA’上的一个刻度点,
现在的目标是测量DE的高度(松高)和CA的距离(山去表)。
已知从P点通过A’刚好望到E,通过R刚好望到D,又从Q点通过B’也刚好望到E。
则根据相似三角形属性:
CE/CP=AA’/AP
CE/CQ=BB’/BQ
CD/CP=AR/AP
∵AA’=BB’ → CP/AP = CE/AA’ = CE/BB’ = CQ/BQ
(CA+AP)/AP = (CA+AB+BQ)/BQ
CA/AP = (CA+AB)/BQ
CA*BQ = (CA+AB)*AP = CA*AP + AB*AP
CA*(BQ-AP) = AB*AP
CA = AB*AP/(BQ-AP)
DE = CE - CD = CP*AA’/AP - CP*AR/AP = (CA+AP)*(AA’-AR)/AP
DE = AB*RA’/(BQ-AP) + RA'
【术曰:以入表乘表间为实。相多为法,除之。加入表,即得松高。求表去山远近者:置表间,以前表却行乘之为实。相多为法,除之,得山去表。】
这里【入表】=RA’,【表间】=AB,【相多】=BQ-AP,【前表却行】=AP,式子完全吻合!
【今有望松生山上,不知高下。立两表齐,高二丈,前後相去五十步,令後表与前表参相直。从前表却行七步四尺,薄地遥望松末,与表端参合。又望松本,入表二尺八寸。复从後表却行八步五尺,薄地遥望松末,亦与表端参合。问松高及山去表各几何?】
这次以【尺】为基本单位:
【表高】=2丈=20尺(AA’=20),
【表间】=50步=300尺(AB=300),
【前表却行】=7步+4尺=46尺(AP=46),
【后表却行】=8步+5尺=53尺(BQ=53),
【相多】=53-46=7尺(BQ-AP=7),
【入表】=2尺+8寸=2.8尺(RA’=2.8)。
得:DE = AB*RA’/(BQ-AP) + RA’ = 300*2.8/7 + 2.8 = 122.8CA = AB*AP/(BQ-AP) = 300*46/7 = 1971+3/7
【答曰:松高一十二丈二尺八寸;山去表一里二十八步、七分步之四。】
【松高】= 12丈 + 2尺 + 8寸 = 120尺 + 2.8尺 = 122.8尺
【山去表】= 1里 + 28步 + 4/7步 = 1800尺+ 168尺 + 24/7尺 = 1971+3/7尺结果完全吻合!
第三题:
今有南望方邑,不知大小。立两表东、西去六丈,齐人目,以索连之。令东表与邑 东南隅及东北隅参相直。当东表之北却行五步,遥望邑西北隅,入索东端二丈二尺六寸半。又却北行去表一十三步二尺,遥望邑西北隅,适与西表相参合。问邑方及邑去表各几何?
答曰:邑方三里四十三步、四分步之三;邑去表四里四十五步。
术曰:以入索乘後去表,以两表相去除之,所得为景长;以前去表减之,不尽以为法。置後去表,以前去表减之,余以乘入索为实。实如法而一,得邑方。求去表远近者:置後去表,以景长减之,余以乘前去表为实。实如法而一,得邑去表。
今人解答:

CDEF是一个四墙分别面向正东南西北方的正方形邑城,
A和A’分别是两根标杆,
中间用一条绳索AA’连着,
R是AA’上的一个刻度点,
现在的目标是测量CD的宽度(邑方)和CA的距离(邑去表)。
已知FCAPQ成一直线,
AA’与CD平行,
从P点通过R刚好望向D,从Q点通过A’也刚好望向D。
则根据相似三角形属性:
CD/CP = AR/AP
CD/CQ = AA’/AQ
CP*AR/AP = CD = CQ*AA’/AQ
(CA+AP)*AQ*AR = (CA+AQ)*AP*AA'
CA*AQ*AR + AP*AQ*AR = CA*AP*AA’ + AQ*AP*AA'
CA*AQ*AR - CA*AP*AA’ = AP*AQ*AA’ - AP*AQ*AR
CA*AQ*AR/AA’ - CA*AP = AP*AQ - AP*AQ*AR/AA'
CA*(AQ*AR/AA’-AP) = AP*(AQ-AQ*AR/AA')
CA = (AQ-AQ*AR/AA’)*AP / (AQ*AR/AA’-AP)
CD = CQ*AA’/AQ = (CA+AQ)*AA’/AQ = CA*AA’/AQ + AA'
CD = (AA’-AR)*AP/(AQ*AR/AA’-AP) + (AQ*AR-AP*AA’)/(AQ*AR/AA’-AP)
CD = (AQ-AP)*AR / (AQ*AR/AA’-AP)
【术曰:以入索乘後去表,以两表相去除之,所得为景长;以前去表减之,不尽以为法。置後去表,以前去表减之,余以乘入索为实。实如法而一,得邑方。求去表远近者:置後去表,以景长减之,余以乘前去表为实。实如法而一,得邑去表。】
【入索】=AR,
【後去表】=AQ,
【两表相去】=AA’,
【景长】=AQ*AR/AA’,
【前去表】=AP,
【不尽】=AQ*AR/AA’-AP,
式子完全吻合!
【今有南望方邑,不知大小。立两表东、西去六丈,齐人目,以索连之。令东表与邑东南隅及东北隅参相直。当东表之北却行五步,遥望邑西北隅,入索东端二丈二尺六寸半。又却北行去表一十三步二尺,遥望邑西北隅,适与西表相参合。问邑方及邑去表各几何?】
【两表相去】=AA’=6丈=60尺,
【前去表】=AP=5步=30尺,
【入索】=AR=2丈+2尺+6.5寸=22.65尺,
【後去表】=AQ=13步+2尺=80尺,
【景长】=80*22.65/60=30.2尺,
【不尽】=30.2-30=0.2尺。
得:CD = (AQ-AP)*AR / (AQ*AR/AA’-AP) = (80-30)*22.65 / 0.2 = 5662.5CA = (AQ-AQ*AR/AA’)*AP / (AQ*AR/AA’-AP) = (80-30.2)*30 / 0.2 = 7470
【答曰:邑方三里四十三步、四分步之三;邑去表四里四十五步。】
【邑方】= 3里 + 43步 + 3/4步 = 5400尺 + 258尺 + 18/4尺 = 5662.5尺
【邑去表】= 4里 + 45步 = 7200尺 + 270尺 = 7470尺
结果完全吻合!
第四题:
今有望深谷,偃矩岸上,令勾高六尺。从勺端望谷底,入下股九尺一寸。又设重矩于上,其矩间相去三丈。更从勺端望谷底,入上股八尺五寸。问谷深几何?
答曰:四十一丈九尺。
术曰:置矩间,以上股乘之,为实。上、下股相减,余为法,除之。所得以勾高减之,即得谷深。
今人解答:

AA’和BB’是在深谷悬崖边上竖起的两段垂直柱子(勾),
AP和BQ则为柱子底部伸出的水平杆子(股),
P、Q为杆子上面的刻度点,
CD为深谷底部的一条水平线,
现在的目标是测量CA的长度(谷深)。
已知从A’通过P点刚好望到D,
从B’通过Q点也刚好望到D。
则根据相似三角形属性:
CD/CA’ = AP/AA'
CD/CB’ = BQ/BB'
∵AA’ = BB’ → CA’*AP = CD*AA’ = CD*BB’ = CB’*BQ
(CA+AA’)*AP = (CA+AB+BB’)*BQ
CA*AP-CA*BQ = AB*BQ+BB’*BQ-AA’*AP
CA*(AP-BQ) = AB*BQ-AA’*(AP-BQ)
CA = AB*BQ/(AP-BQ)-AA'
【术曰:置矩间,以上股乘之,为实。上、下股相减,余为法,除之。所得以勾高减之,即得谷深。】
【矩间】=AB,
【上股】=BQ,
【下股】=AP,
【勾高】=AA’,
式子完全吻合!
【今有望深谷,偃矩岸上,令勾高六尺。从勺端望谷底,入下股九尺一寸。又设重矩于上,其矩间相去三丈。更从勺端望谷底,入上股八尺五寸。问谷深几何?】
【勾高】=AA’=6尺,
【下股】=AP=9尺+1寸=9.1尺,
【矩间】=AB=3丈=30尺,
【上股】=BQ=8尺+5寸=8.5尺。
得:CA = AB*BQ/(AP-BQ)-AA’ = 30*8.5/(9.1-8.5)-6 = 419
【答曰:四十一丈九尺。】
【谷深】= 41丈+9尺 = 419尺结果完全吻合!
第五题:
今有登山望楼,楼在平地。偃矩山上,令勾高六尺。从勾端斜望楼足,入下股一丈二尺。又设重矩於上,令其间相去三丈。更从勾端斜望楼足,入上股一丈一尺四寸。又立小表於入股之会,复从勾端斜望楼岑端,入小表八寸。问楼高几何?
答曰:八丈。
术曰:上、下股相减,余为法;置矩间,以下股乘之,如勾高而一。所得,以入小表乘之,为实。实如法而,即是楼高。
今人解答:

AA’和BB’是在山上竖起的两段垂直柱子(勾),
AP和BQ则为柱子底部伸出的水平杆子(股),
P、Q为杆子上面的刻度点。
另外在Q点上竖立起一根小标杆QR,
R为上面的一个刻度点。
DE为山下平地上的一座高楼,
现在的目标是测量它的高度(楼高)。
已知从A’通过P点刚好望到D,
从B’通过Q点也刚好望到D,
通过R点则刚好望到E。
则根据相似三角形属性:
CD/CA’ = AP/AA'
CD/CB’ = BQ/BB'
CD/(CB’-DE) = BQ/(BB’-QR)
∴BQ*CB’/BB’*(BB’-QR) = BQ*(CB’-DE)
CB’-DE = CB’-CB’*QR/BB'
DE = (CA+AB+BB’)*QR/BB'
从上题得:
CA = AB*BQ/(AP-BQ)-AA'
又:AA’ = BB'
∴DE = (AB*BQ/(AP-BQ)+AB)*QR/AA’DE = AB*AP/AA’*QR/(AP-BQ)
【术曰:上、下股相减,余为法;置矩间,以下股乘之,如勾高而一。所得,以入小表乘之,为实。实如法而,即是楼高。】
【上股】=BQ,
【下股】=AP,
【矩间】=AB,
【勾高】=AA’,
【入小表】=QR,
式子完全吻合!
【今有登山望楼,楼在平地。偃矩山上,令勾高六尺。从勾端斜望楼足,入下股一丈二尺。又设重矩於上,令其间相去三丈。更从勾端斜望楼足,入上股一丈一尺四寸。又立小表於入股之会,复从勾端斜望楼岑端,入小表八寸。问楼高几何?】
【勾高】=AA’=6尺,
【下股】=AP=1丈+2尺=12尺,
【矩间】=AB=3丈=30尺,
【上股】=BQ=1丈+1尺+4寸=11.4尺,
【入小表】=QR=8寸=0.8尺。
得:DE = AB*AP/AA’*QR/(AP-BQ) = 30*12/6*0.8/(12-11.4) = 80
【答曰:八丈。】
【楼高】= 8丈 = 80尺
结果完全吻合!
第六题:
今有东南望波口,立两表南、北相去九丈,以索薄地连之。当北表之西却行去表六丈,薄地遥望波口南岸,入索北端四丈二寸。以望北岸,入前所望表里一丈二尺。又却行,後去表一十三丈五尺。薄地遥望波口南岸,与南表参合。问波口广几何?
答曰:一里二百步。
术曰:以後去表乘入索,如表相去而一。所得,以前去表减之,余以为法;复以前去表减後去表,余以乘入所望表里为实,实如法而一,得波口广。
今人解答:

CD是一个纵贯南北的波口(河口),
A和A’分别是两根标杆,
中间用一条绳索AA’连着,
R和S是AA’上的两个刻度点,
现在的目标是测量CD的宽度(波口广)。
已知AA’与CD平行,
APQ与CD垂直,
B点为APQ与CD的延长线交点,
从P点通过R刚好望向C,
通过S则刚好望向D,
从Q点通过A’也刚好望向D。
则根据相似三角形属性:
BC/BP = AR/AP
BD/BP = AS/AP
→(BC+CD)/BP = (AR+RS)/AP
→BP = CD*AP/RS
BD/BQ = AA’/AQ
→BD*AQ = (BP+PQ)*AA'
→(BP*AS/AP)*AQ = BP*AA’+PQ*AA'
→(CD*AP/RS)*(AQ*AS/AP-AA’) = (AQ-AP)*AA'
→CD*(AQ*AS-AP*AA’)/RS = (AQ-AP)*AA'
CD = (AQ-AP)*RS/(AQ*AS/AA’-AP)
【术曰:以後去表乘入索,如表相去而一。所得,以前去表减之,余以为法;复以前去表减後去表,余以乘入所望表里为实,实如法而一,得波口广。】
【後去表】=AQ,
【入索】=AS,
【表相去】=AA’,
【前去表】=AP,
【入所望表里】=RS,
式子完全吻合!
【今有东南望波口,立两表南、北相去九丈,以索薄地连之。当北表之西却行去表六丈,薄地遥望波口南岸,入索北端四丈二寸。以望北岸,入前所望表里一丈二尺。又却行,後去表一十三丈五尺。薄地遥望波口南岸,与南表参合。问波口广几何?】
【表相去】=AA’=9丈=90尺,
【前去表】=AP=6丈=60尺,
【入索】=AS=4丈+2寸=40.2尺,
【入所望表里】=RS=1丈+2尺=12尺,
【後去表】=AQ=13丈+5尺=135尺。
得:CD = (AQ-AP)*RS/(AQ*AS/AA’-AP) = (135-60)*12/(135*40.2/90-60) = 900/0.3 = 3000【答曰:一里二百步。】
【波口广】= 1里 + 200步 = 1800尺 + 1200尺 = 3000尺
结果完全吻合!
第七题:
今有望清渊下有白石。偃矩岸上,令勾高三尺。斜望水岸,入下股四尺五寸。望白石,入下股二尺四寸。又设重矩於上,其间相去四尺。更从勾端斜望水岸,入上股四尺。以望白石,入上股二尺二寸。问水深几何?
答曰:一丈二尺。
术曰:置望水上、下股相减,余以乘望石上股为上率。又以望石上、下股相减,余以乘望水上股为下率。两率相减,余以乘矩间为实;以二差相乘为法。实如法而一,得水深。
今人解答:

AA’和BB’是在岸上竖起的两段垂直柱子(勾),
AP和BR则为柱子底部伸出的水平杆子(股),
P、Q、R、S为杆子上面的刻度点,
CD为清渊水面的水平线,
EF为渊底的水平线,F点有颗白石。
现在的目标是测量CE的长度(水深)。
已知从A’通过P点刚好望到D,
通过Q点刚好望到F,
从B’通过R点刚好望到D,
通过S点刚好望到F。
则根据相似三角形属性:
CD/CA’ = AP/AA'
EF/EA’ = AQ/AA'
CD/CB’ = BR/BB'
EF/EB’ = BS/BB'
∵AA’ = BB’ → CA’*AP = CD*AA’ = CD*BB’ = CB’*BR
(CA+AA’)*AP = (CA+AB+BB’)*BR
CA*AP-CA*BR = AB*BR+AA’*BR-AA’*AP
CA*(AP-BR) = AB*BR-AA’*(AP-BR)
CA = AB*BR/(AP-BR)-AA'
∵AA’ = BB’ → EA’*AQ = EF*AA’ = EF*BB’ = EB’*BS
(EA+AA’)*AQ = (EA+AB+BB’)*BS
EA*AQ-EA*BS = AB*BS+AA’*BS-AA’*AQ
EA*(AQ-BS) = AB*BS-AA’*(AQ-BS)
EA = AB*BS/(AQ-BS)-AA'
∴CE = EA-CA = AB*BS/(AQ-BS)-AB*BR/(AP-BR)
CE = ((AP-BR)*BS-(AQ-BS)*BR)*AB/(AP-BR)/(AQ-BS)
【术曰:置望水上、下股相减,余以乘望石上股为上率。又以望石上、下股相减,余以乘望水上股为下率。两率相减,余以乘矩间为实;以二差相乘为法。实如法而一,得水深。】
【望水上股】=BR,
【望水下股】=AP,
【望石上股】=BS,
【望石下股】=AQ,
【矩间】=AB,
式子完全吻合!
【今有望清渊下有白石。偃矩岸上,令勾高三尺。斜望水岸,入下股四尺五寸。望白石,入下股二尺四寸。又设重矩於上,其间相去四尺。更从勾端斜望水岸,入上股四尺。以望白石,入上股二尺二寸。问水深几何?】
【勾高】=AA’=3尺,
【望水下股】=AP=4尺+5寸=4.5尺,
【望石下股】=AQ=2尺+4寸=2.4尺,
【矩间】=AB=4尺,
【望水上股】=BR=4尺,
【望石上股】=BS=2尺+2寸=2.2尺。
得:CE = ((AP-BR)*BS-(AQ-BS)*BR)*AB/(AP-BR)/(AQ-BS) = ((4.5-4)*2.2-(2.4-2.2)*4)*4/(4.5-4)/(2.4-2.2) = (1.1-0.8)*4/0.5/0.2 = 1.2*2*5 = 12
【答曰:一丈二尺。】
【水深】= 1丈 + 2尺 = 12尺结果完全吻合!
第八题:
今有登山望津,津在山南。偃矩山上,令勾高一丈二尺。从勾端斜望津南岸,入下股二丈三尺一寸。又望津北岸,入前望股里一丈八寸。更登高岩,北却行二十二步,上登五十一步,偃矩山上。更从勾端斜望津南岸,入上股二丈二尺。问津广几何?
答曰:二里一百二步。
术曰:以勾高乘下股,如上股而一。所得以勾高减之,余为法;置北行,以勾高乘之,如上股而一。所得以减上登,余以乘入股里为实。实如法而一,即得津广。
今人解答:

AA’和BB’是在山上两处竖起的垂直柱子(勾),
AP和BR则为柱子底部伸出的水平杆子(股),
P、Q、R为杆子上面的刻度点,
EF为山下的一个津(渡口)。
现在的目标是测量EF的宽度(津广)。
已知从A’通过P点刚好望到F,
通过Q点刚好望到E,
从B’通过R点刚好望到F。
则根据相似三角形属性:
DF/DA’ = AP/AA'
DE/DA’ = AQ/AA'
→EF = DF-DE = DA’*(AP-AQ)/AA’ = DA’*PQ/AA'
CF/CB’ = BR/BB'
→(CD+DF)*BB’ = (CG+GB+BB’)*BR
→(GA+DA’*AP/AA’)*AA’ = (DA+GB+AA’)*BR
→GA*AA’+DA’*AP = DA’*BR+GB*BR
→DA’*(AP-BR) = GB*BR-GA*AA'
→EF*(AP-BR) = (GB*BR-GA*AA’)*PQ/AA'
EF = (GB-GA*AA’/BR)*PQ/(AP*AA’/BR-AA')
【术曰:以勾高乘下股,如上股而一。所得以勾高减之,余为法;置北行,以勾高乘之,如上股而一。所得以减上登,余以乘入股里为实。实如法而一,即得津广。】
【勾高】=AA’,
【下股】=AP,
【上股】=BR,
【北行】=GA,
【上登】=GB,
【入股里】=PQ,
式子完全吻合!
【今有登山望津,津在山南。偃矩山上,令勾高一丈二尺。从勾端斜望津南岸,入下股二丈三尺一寸。又望津北岸,入前望股里一丈八寸。更登高岩,北却行二十二步,上登五十一步,偃矩山上。更从勾端斜望津南岸,入上股二丈二尺。问津广几何?】
【勾高】=AA’=1丈+2尺=12尺,
【下股】=AP=2丈+3尺+1寸=23.1尺,
【入股里】=PQ=1丈+8寸=10.8尺,
【北行】=GA=22步=132尺,
【上登】=GB=51步=306尺,
【上股】=BR=2丈+2尺=22尺。
得:EF = (GB-GA*AA’/BR)*PQ/(AP*AA’/BR-AA’) = (306-132*12/22)*10.8/(23.1*12/22-12) = 234*10.8/0.6 = 4212【答曰:二里一百二步。】
【津广】= 2里 + 102步 = 3600尺 + 612尺 = 4212尺
结果完全吻合!
第九题:
今有登山临邑,邑在山南。偃矩山上,令勾高三尺五寸。令勾端与邑东南隅及东北隅参相直。从勾端遥望东北隅,入下股一丈二尺。又施横勾於入股之会,从立勾端望西北隅,入横勾五尺。望东南隅,入下股一丈八尺。又设重矩於上,令矩间相去四丈。更从立勾端望东南隅,入上股一丈七尺五寸。问邑广长各几何?
答曰:南北长一里百步;东西广一里三十三步、少半步。
术曰:以勾高乘东南隅入下股,如上股而一,所得减勾高,余为法;以东北隅下股减东南隅下股,余以乘矩间为实。实如法而一,得邑南北长也。求邑广:以入横勾乘矩间为实。实如法而一,即得邑东西广。
今人解答:

DEFG是一个在地平面上,
四墙分别面向正东南西北方的矩形邑城,
AA’和BB’是在山上竖起的两段垂直柱子(勾),
AR和BS则为柱子底部伸出的水平杆子(股),
PQ则为从P点向横伸出跟AR成直角的水平杆子(横勾),
P、Q、R、S都是杆子上面的刻度点。
现在的目标是测量DG的长度(南北长)和DE的宽度(东西广)。
已知从A’通过P点刚好望到D,
通过Q点刚好望到E,
通过R点刚好望到G,
从B’通过S点也刚好望到G。
则根据相似三角形属性:
CD/CA’ = AP/AA'
CG/CA’ = AR/AA'
→CG*AA’ = CA’*AR
CG/CB’ = BS/BB'
→(CA+AB+BB’)*BS = CG*BB'
∴(CA+AB+AA’)*BS = CA’*AR
CA’*(AR-BS) = AB*BS
CA’/AA’ = AB/(AA’*AR/BS-AA')
∴DG = CG-CD = (AR-AP)*CA’/AA'
DG = (AR-AP)*AB/(AA’*AR/BS-AA')
又根据相似三角形属性:
DA’/CA’ = PA’/AA'
DE/DA’ = PQ/PA'
∴DE = PQ*DA’/PA’ = PQ*CA’/AA’DE = PQ*AB/(AA’*AR/BS-AA')
【术曰:以勾高乘东南隅入下股,如上股而一,所得减勾高,余为法;以东北隅下股减东南隅下股,余以乘矩间为实。实如法而一,得邑南北长也。求邑广:以入横勾乘矩间为实。实如法而一,即得邑东西广。】
【勾高】=AA’,
【东南隅下股】=AR,
【上股】=BS,
【东北隅下股】=AP,
【矩间】=AB,
【入横勾】=PQ,
式子完全吻合!
【今有登山临邑,邑在山南。偃矩山上,令勾高三尺五寸。令勾端与邑东南隅及东北隅参相直。从勾端遥望东北隅,入下股一丈二尺。又施横勾於入股之会,从立勾端望西北隅,入横勾五尺。望东南隅,入下股一丈八尺。又设重矩於上,令矩间相去四丈。更从立勾端望东南隅,入上股一丈七尺五寸。问邑广长各几何?】
【勾高】=AA’=3尺+5寸=3.5尺,
【东北隅下股】=AP=1丈+2尺=12尺,
【入横勾】=PQ=5尺,
【东南隅下股】=AR=1丈+8尺=18尺,
【矩间】=AB=4丈=40尺,
【上股】=BS=1丈+7尺+5寸=17.5尺。
得:DG = (AR-AP)*AB/(AA’*AR/BS-AA’) = (18-12)*40/(3.5*18/17.5-3.5) = 240/0.1 = 2400DE = PQ*AB/(AA’*AR/BS-AA’) = 5*40/(3.5*18/17.5-3.5) = 200/0.1 = 2000
【答曰:南北长一里百步;东西广一里三十三步、少半步。】
【南北长】= 1里 + 100步 = 1800尺 + 600尺 = 2400尺
【东西广】= 1里 + 33步 + 1/3步 = 1800尺 + 198尺 + 2尺 = 2000尺
结果完全吻合!
参考资料:
《海岛算经》讨论组,百度贴吧,网友毒酒滴冻鸭;