- 趣味數學及編程拓展
- 楊克昌
- 1124字
- 2019-07-30 18:00:21
3.3 橋本分數式
數學家橋本吉彥教授于1993年在我國山東舉行的中日美三國數學教育研討會上向與會者提出以下填數趣題:把1,2,…,9這9個數字不重復填入下式的9個方格□中,使下面的分數式成立。

橋本教授當即給出了一個解答。
【問題】 試探求這一分數式填數趣題的填數結果。
【思考】 以某一簡單分數式為基礎,每個分數分子分母同時擴大以尋求數字不重復。
可采用在某一簡單分數和式的基礎上,試驗把每一分數的分子分母同時擴大或縮小,以尋求在式中出現“1~9這9個數字出現而不重復”而達到目標。
(1)以簡單分數式1/14+1/14=1/7為基礎。
前一分數1/14的分子分母同時擴大4倍得4/56;
后一分數1/14的分子分母同時擴大7倍得7/98;
右邊分數1/7的分子分母同時擴大3倍得3/21。
3個分數實現數字1~9各出現一次不重復,因而得到一個解:4/56+7/98=3/21。
(2)以簡單分數式9/51+8/51=1/3為基礎。
前一分數9/51的分子分母同時乘以2/3倍得6/34;
后一分數8/51保持不變;
右邊分數1/3的分子分母同時擴大9倍得9/27。
3個分數實現數字1~9各出現一次不重復,因而又得到一個解:6/34+8/51=9/27。
采用以上方法試探,可省略對分數式相等的檢測,減少計算量。但帶有一定的盲目性,要想試探出所有解是困難的。
要求解橋本分數式的所有解,有必要借助程序設計進行全面搜索。
【編程拓展】
橋本分數式這一9數字填數趣題究竟有多少個不同的解(約定式左邊兩個分數中分子小的在前)?
同時,原題并沒有要求3個分數為最簡分數(即分子分母沒有大于1的公因數),如果要求式中3個分數都為最簡分數,又有多少個不同的解?
1. 程序設計要點
設分數式為b1/b2+c1/c2=d1/d2,注意到等式左邊兩個分數交換次序只算一個解答,因而約定b1<c1。
(1)設置枚舉循環。
對6個分數所涉及的6個整數設置6重循環枚舉。其中c1從b1+1開始取值,確保b1<c1。
(2)通過3重檢測。
若分數式不成立,即b1?c2?d2+c1?b2?d2!=d1?b2?c2,則返回繼續。
要求數字1~9在這6個變量中出現一次且只出現一次,分離出9個數字后用f數組統計各個數字的頻數(如f[3]=2,即數字3出現2次),存在重復數字時返回。
(3)要求最簡分數處理。
若在確定是否“最簡分數”時輸入字符'y',即選擇“要求3個分數為最簡分數”,設置循環j(2~9),如果存在j為某一分數的分子分母的公因數,則返回。
2. 橋本分數式程序設計

3. 程序運行結果與變通
若填數不要求3個分數為最簡分數,程序運行結果如下所示。

若填數要求3個分數為最簡分數,則程序運行結果如下所示。

程序能搜索不要求最簡分數的橋本分數式,也能搜索附加條件“要求各分數都為最簡分數”的分數式,這是程序設計的特色。
變通:把0,1,2,…,9這10個數字填入下式的10個方格中,要求:各數字不得重復;數字0不得填在各分數的分子或分母的首位。

這一分數式填數究竟共有多少個解?