计算机开平方的原理,《九章算术》开方算法系统及其与现代计算机程序的比较.docx...

本文探讨了《九章算术》中的开平方和开立方算法,并与现代计算机程序进行比较。通过分析算法的步骤,揭示了古代筹算方法的抽象性和普适性,表明这些算法可以与现代迭代法相媲美,适用于计算机实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《九章算术》开方算法系统及其与现代计算机程序的比较

傅海伦

中国古代把开方法与二次、三次或高次数字方程解法统称为开方术。《九章算术》少广章 提出了完整的开平方、开立方程序 一、《九章算术》的开平方程序

开平方相当于求X2 = N的根。

开方术曰:

「置积为实。借一算,步之,超一等。议所得,以一乘所借一

算为法,而以除。除已,倍法为定法。其复除,折法而下。复置借算,步之如

初,以复议一乘之,所得副以加定法,以除。以所得副从定法。复除,折下如

《九章算术》给出的术文言简意赅,在开方筹式中每一个数字的记数和入

算,都严格遵循位置值制。由于其中明确指出:「复除,折而下」、「复除, 折下如前」,可见,这是一个具有一般性的机械化算法程序。即是说,不论平 方根有多少位数,反复实施这一程序都可求出来。所以,在此有必要对一般情 形下的这种机械化程序加以剖析。

以总的来说,开平方的程序是:首先作四行的筹式布算,即从上到下的四 行依次布以方根(「议所得」)、被开方数(实)、法和借算,然后机械反复 实施「超」、「议」、「除」、「折」的四大步骤,直至「适尽」、结束。

「超」:将置于个位上的借算自右向左隔一位移一步,移到与实的最高位

(N为奇数位)或次高位(N为偶数位时)对齐为止。若移 n位,这相当于将

方程进行倍根变换,变换后的方程为102nxi2 = N的形式,如图(2)

「议」:议得根的第一位得数为 a1

「除」:以ai乘借算102n得102nai作为法。置于第三行,使得以法除实时,

恰得商ai,而余数N小于102nai2: N十(10务)=ai + Ni / 10务[2]。

折」:撤去借算,将法 102na1 加 倍为定法,并将定法向右退一位为 2? 102n

—1ai如图(4),再在下行个位上布置借一算。

为求方根第二位得数,需要重复以上四个步骤:

「超」:将置于个位上的借算自右向左隔一位移一步,显然祇需移 n-1 步,

即1『_2如图(5),这又相当于求方程102_妇+ 2? 1『冷咲2 = N—10V的正根。

「议」:复议得根的第二位得数 a2

「除」:

以32乘借算102n— 2,加定法,得法:2? 102n— 1ai + 1『—2a2,同样以

法除实:

(N— 102nai2)十(2? 102n—1a + 102n—2a) = a2 + 2/(2? 102n—1a1 + 102n—务),余

数N2小于(2? 10刀—1ai + 102n—2况归2。如图(6),如果余数为零,则开方完毕;若 不为零,则「折下如前」,按接下来的程序步骤继续开方。

通过对上述筹算开平方法的分析,可知它是根据下面这些公式来逐步 推求 的,与现代的迭代法完全一致,可以通过计算机来实现:

(a + b)2 = a2 + (2a + b)b

(a + b + c)2 = (a + b)2 + [2(a + b) + c]c

22

(a + b + c + d) = (a + b + c) + 2[(a + b + c) + d]d

开平方术文还有对几种特殊情况的处理方法:一是被开方数为分数的 情形,

要「通分内子」,若分母是平方数,贝扮子、分母分别开方,然后相除,即

b/a, 一二-厂:;若分母不可开,则以分母乘分子,开分子后再以分母除,

即A = b/a,A = at/a2,二 仁一二是开方不尽的情形,这相当于求无理根,

称为不可开,求出整数部分后,「以面命之」。

显然,有了以上程序和处理方法,任何一个数可以开平方,说明《九章算

术》的术文更具有抽象性、普适性。

二、《九章算术》的开立方程序

开立方相当于求x3 = N的根。

《九章算术》开立方术是:

开立方术曰:「置积为实。借一算,步之,超二等。议所得,以再乘所借

一算为法,而除之。除已,三之为定法。复除,折而下。以三乘所得数,置中 行。复借一算,置下行。步之,中超一,下超二等。复置议,以一乘中,再乘 下,皆副以加定法。以定除。除已,倍下,并中从定法。复除,折下如前。…」

对比开平方术和开立方术,不难看出,两种开方的程序基本上是统一 的, 都是通过筹式布算,机械重复地实施「超」、「议」、「除」和「折」的四大 步骤,直至适尽,结束。祇是在开立方的筹式布算中,在「法」和「借算」之 间增加一行「中行」,使原来的四行布算变为五行布算,并在相应的「超」和

「折」的步骤中有细小的变动或调整。对被开方数是分数、或分母不是立方的 情形,处理的方式也与开平方相同,这说明,开立方的程序也具有抽象性和普 适性,适应于任何一个数的开立方。根据术文,对一般情形下的开立方及其与 开平方程序过程的比较可见下表:

101cH

10 a1

10ai

10 a1

开 平 方

N

N

N - 102na2

N — 1『屛

N — 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值