趣味数学及编程拓展
上QQ阅读APP看书,第一时间看更新

3.2 埃及分数式

金字塔的故乡埃及也是数学的发源地之一。古埃及数系中,记数常采用分子为1的分数,称为“埃及分数”。

人们研究较多且颇感兴趣的问题是:把一个给定的整数或分数转化为若干不相同的埃及分数之和。转化的方法可能有很多种。常把分解式中埃及分数的个数最少,或在个数相同时埃及分数中最大分母为最小的分解式称为最优分解式。

把给定整数或分数分解为埃及分数之和,也是一个繁琐艰辛的过程。

例如,对5/121的分解,为尽可能减少分解项数,数学家布累策在《数学游览》中给出了以下优化的三项分解式:

5/121=1/25+1/759+1/208725

同时布累策证明了5/121不可能分解为两个埃及分数之和。

从项数来说,上述三项分解式不可能再优化了。但对最大分母来说,布累策的分解式不是最优的。我国两位青年数学爱好者于1983年发现以下4个分解式。

这4个分解式都比布累策的结论要优。人们通常约定分解式中不得包含与待分解分数同分母的埃及分数。从这个意义上,显然应把分解式(3)排除在外。因此,现在所知把5/121分解为3个埃及分数的最小分母为1089,即上述埃及分数分解式(1)、(2)。

那么,分解5/121为3个埃及分数之和,其最大分母能否小于1089呢?我们可通过程序设计来探索拓展。

我们将从简单地构建两个埃及分数分解式入手,先看一个分解埃及分数式的实例。

【问题】 试把分数5/72分解为分母分别是a,b(a<b<200)的埃及分数式。

5/72=1/a+1/b

【探求】 拟先确定分母的取值范围,再通过具体实验调试确定。

(1)明确两个分母关系。

若已知分母a,则另一分母b为

b=72a/(5a-72)

通过计算72/5,可确定最小分母a的取值范围为14<a<28。

(2)通过a取值求b。

取a=15,代入得b=360>200,不符合要求。

取a=16,代入得b=144<200,符合要求,得埃及分数的两个分母:16,144。

取a=17,代入得b为非整数,不符合要求。

取a=18,代入得b=72,与原分母相同,不符合要求。

取a=17~23,代入得b为非整数,不符合要求。

取a=24,代入得b=36<200,符合要求,得埃及分数的两个分母:24,36。

取a=25~28,代入得b为非整数,不符合要求。

(3)写出埃及分数式。

因而,我们得到满足要求a,b(a<b<200)的两个埃及分数式为

5/72=1/16+1/144

5/72=1/24+1/36

根据埃及分数中最大分母为最小的分解式为最优,显然后者要优于前者。

从以上具体构建可以看出,规定埃及分数中最大分母的上限直接关系到埃及分数式的构建。

若缩小上限,把范围a<b<200缩小为a<b<100,则上面第一个分解式不符合要求。

若扩大上限,把范围a<b<200扩大为a<b<400,则增加了分解式5/72=1/15+1/360。

【编程拓展】

对给定的分数m/d分解为3个埃及分数的分解式,其分母为a,b,c(a<b<c),最大分母不超过z,输出所有埃及分数式。

(1)设计要点。

通过3重循环实施枚举。

确定a循环的起始值a1与终止值a2。

b循环起始取a+1,终止取z-1。

c循环起始取b+1,终止取z。

为方便判别,把分数式m/d=1/a+1/b+1/c转化为整数式

mabc=d(ab+bc+ca)

对于3重循环的每一组a,b,c,计算x=mabc,y=d(ab+bc+ca):如果x=y且b,c不等于d,即满足分解为3个埃及分数式的条件,则打印输出一个分解式。然后退出内循环,继续寻求。

(2)构建埃及分数式程序设计。

(3)程序运行示例与说明。

这样,我们通过程序设计探索得到:分解5/121为3个埃及分数之和,最大分母最小为1089,即不可能有比上述3个分解式更优的分解。

结果中的最后一个分解式是程序设计得到的新的最优分解式。

注意:确定分母的上界大小直接关系到所分解的埃及分数式解。例如,以上对5/121的分解,若输入上界为1000,则没有分解式;若输入上界为3000,则存在7个分解式。