#-*-Encoding: UTF-8-*-<br/> # interpolation method for solving the problem <br/> # http://zhidao.baidu.com/question/24991328? SI = 2 <br/> def getresult (R): <br/> tmp1 = 59*(1 + r) ** (-1 )) <br/> tmp2 = 59*(1 + r) ** (-2) <br/> tmp3 = 59*(1 + r) ** (-3) <br/> tmp4 = 59*(1 + r) ** (-4) <br/> tmp5 = (59 + 1250) * (1 + r) ** (-5) <br/> tmp6 =-1000 <br/> X = sum ([tmp1, tmp2, tmp3, tmp4, tmp5, tmp6]) <br/> return (x) <br/> def getnext (A, B ): <br/> # where A is the lower limit of the interval and B is the upper limit of the interval <br/> M = (B + a)/2 <br/> tmpa = getresult () <br/> tmpb = getresult (B) <br/> tmpm = getresult (m) <br/> tmp1, tmp2 = 0, 0 </P> <p> If tmpa * tmpb> 0: <br/> tmp1 = max (A, B) <br/> tmp2 = tmp1 + ABS (B-a) <br/> else: <br/> If tmpa * tmpm> 0: <br/> tmp1 = m <br/> tmp2 = B <br/> else: <br/> tmp1 = A <br/> tmp2 = m <br/> # print (a, m, B) <br/> # print (tmpa, tmpm, tmpb) <br/> return (tmp1, tmp2) <br/> def write (A, B): <br/> F = open('data.txt ', 'A ') <br/> F. write (STR (A) + '/t' + STR (B) + "/N") <br/> F. close () <br/> If _ name _ = '_ main _': <br/> little, big = 0.01, 0.20 <br/> I = 1 <br/> while I <50: <br/> little, big = getnext (little, big) <br/> write (little, big) <br/> I + = 1The theoretical basis of this solution is the Rolle Theorem in elementary calculus.