本文的目的是使古老的大衍求一术程序化,从而表明我国的这一古算法在今天电脑时代并没有失去它的价值。
秦九韶的大衍求一术有两个基本特征:一曰“大衍”,即反复使用辗转相除法。二曰“求一”,辗转相除中余数为1时,计算结束,这两个特征既表现在求“乘率”中,又表现在当元数(模)非两两互素时求“定数”中。
我将秦氏求乘率的一段术文译成算法语言,用BASIC语言在PC-1500袖珍电脑上写成。其特点是,自动计时和打印中间结果详尽,以便和原草比较。
试算的结果是令人鼓舞的。
一、计算结果均与秦氏草文吻合,特别是“积尺寻源”题中求定数“七变”各项皆与原草正确数据相同。这说明本程序的求“定数”算法很接近秦氏在此题中的算法,并且从中还可以发现一些秦氏误算的数据。
二、以黄宗宪的一些问题为例,用秦氏算法编制的程序完成只要45秒,而用一般算法编制的程序完成则需5分48秒,证实了秦氏算法的优越性。
三、一组非两两互素的模经变换后所得的“定数”可以不唯一。