1. 程式人生 > >練習四十二:五家共井

練習四十二:五家共井

五家共井,甲二綆(汲水用的井繩)不足,如(接上)乙一綆;
乙三綆不足,如丙一綆;
丙四綆不足,如丁一綆;
丁五綆不足,如戊一綆;
戊六綆不足,如甲一綆,皆及
先來翻譯下再思考:
五家人公用一口井
甲家用繩子2條不夠,需要加上乙家繩子1條才可打到井水
乙家用繩子3條不夠,需要加上丙家繩子1條才可打到井水
丙家用繩子4條不夠,需要加上丁家繩子1條才可打到井水
丁家用繩子5條不夠,需要加上戊家繩子1條才可打到井水
戊家用繩子6條不夠,需要加上甲家繩子1條才可打到井水
那麼,就有公式了
甲*2+乙 = 乙*3+丙 = 丙*4+丁 = 丁*5+戊 = 戊*6+甲 = deep(井深)
用a,b,c,d,e分別表示
e = (deep-a)/6
d = (deep-e)/5=(5*deep+a)/30
c = (deep-d)/4=(25*deep-a)/120
b = (deep-c)/3=(95*deep+a)/360
deep = 2*a+b=721*a/265

  1 for deep in range(1,10000): #隨井深的變化會有變化
  2     for a in range(1,10000):
  3         if deep == 721*a/265:
  4             b = (95*deep+a)/360
  5             e = (deep-a)/6
  6             d = (5*deep+a)/30
  7             c = (25*deep-a)/120
  8             print("井深:{},甲家繩長:{},乙家繩長:{},丙家繩長:{},丁家繩長:{},戊家繩長:{}".format(deep,a,b,c,d,e))
  9

執行結果:

井深:721,甲家繩長:265,乙家繩長:191.0,丙家繩長:148.0,丁家繩長:129.0,戊家繩長:76.0
井深:1442,甲家繩長:530,乙家繩長:382.0,丙家繩長:296.0,丁家繩長:258.0,戊家繩長:152.0
井深:2163,甲家繩長:795,乙家繩長:573.0,丙家繩長:444.0,丁家繩長:387.0,戊家繩長:228.0
井深:2884,甲家繩長:1060,乙家繩長:764.0,丙家繩長:592.0,丁家繩長:516.0,戊家繩長:304.0
井深:3605,甲家繩長:1325,乙家繩長:955.0,丙家繩長:740.0,丁家繩長:645.0,戊家繩長:380.0
井深:4326,甲家繩長:1590,乙家繩長:1146.0,丙家繩長:888.0,丁家繩長:774.0,戊家繩長:456.0
井深:5047,甲家繩長:1855,乙家繩長:1337.0,丙家繩長:1036.0,丁家繩長:903.0,戊家繩長:532.0
井深:5768,甲家繩長:2120,乙家繩長:1528.0,丙家繩長:1184.0,丁家繩長:1032.0,戊家繩長:608.0
井深:6489,甲家繩長:2385,乙家繩長:1719.0,丙家繩長:1332.0,丁家繩長:1161.0,戊家繩長:684.0
井深:7210,甲家繩長:2650,乙家繩長:1910.0,丙家繩長:1480.0,丁家繩長:1290.0,戊家繩長:760.0
井深:7931,甲家繩長:2915,乙家繩長:2101.0,丙家繩長:1628.0,丁家繩長:1419.0,戊家繩長:836.0
井深:8652,甲家繩長:3180,乙家繩長:2292.0,丙家繩長:1776.0,丁家繩長:1548.0,戊家繩長:912.0
井深:9373,甲家繩長:3445,乙家繩長:2483.0,丙家繩長:1924.0,丁家繩長:1677.0,戊家繩長:988.0

方法二:如果戊家的繩子是最短的,所以以e為迴圈單位,第二組解算出來的就很大了

for k in range(1,10):
    for e in range(1,10000):
        a = 721*k-6*e
        b = 721*k-2*a
        c = 721*k-3*b
        d = 721*k-4*c
        e = 721*k-5*d

        result1 = a+6*e
        result2 = b+2*a
        result3 = c+3*b
        result4 = d+4*c
        result5 = e+5*d

        if result1==result2==result3==result4==result5:
            print("井深:{},甲家繩長:{},乙家繩長:{},丙家繩長:{},丁家繩長:{},戊家繩長:{}".format(result1,a,b,c,d,e))

執行結果:

井深:721,甲家繩長:265,乙家繩長:191,丙家繩長:148,丁家繩長:129,戊家繩長:76
井深:1442,甲家繩長:530,乙家繩長:382,丙家繩長:296,丁家繩長:258,戊家繩長:152
井深:2163,甲家繩長:795,乙家繩長:573,丙家繩長:444,丁家繩長:387,戊家繩長:228
井深:2884,甲家繩長:1060,乙家繩長:764,丙家繩長:592,丁家繩長:516,戊家繩長:304
井深:3605,甲家繩長:1325,乙家繩長:955,丙家繩長:740,丁家繩長:645,戊家繩長:380
井深:4326,甲家繩長:1590,乙家繩長:1146,丙家繩長:888,丁家繩長:774,戊家繩長:456
井深:5047,甲家繩長:1855,乙家繩長:1337,丙家繩長:1036,丁家繩長:903,戊家繩長:532
井深:5768,甲家繩長:2120,乙家繩長:1528,丙家繩長:1184,丁家繩長:1032,戊家繩長:608
井深:6489,甲家繩長:2385,乙家繩長:1719,丙家繩長:1332,丁家繩長:1161,戊家繩長:684