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個分解式。