python 二分求根

来源:互联网 发布:自考还是网络教育 编辑:程序博客网 时间:2024/05/21 08:46
#! /usr/bin/pythondef my_sqrt(x=0.01):    if x < 0:        return 0    cnt = 0    if x >1 :        m = 0        n = x        s = (m + n) / 2.0        while abs(s**2 - x )>= 1e-5:            cnt += 1            if ( s**2 < x):                m = s                s = (m + n) / 2.0                print 'm is:', m            else:                n = s                s = (m + n) / 2.0                print 'n is:', n        print 'm is', m        print 'n is', n        print 'cnt is', cnt    else:        m = 0        n = 1        mid = (m+n)/2.0        while abs(mid ** 2 - x) >= 1e-5:            cnt += 1            if( mid ** 2 < x):                m = (m + x)                mid = (m + n)/2.0            else:                n = ( n + x )/2                mid = (m + n)/2.0            print m , n, mid, cntmy_sqrt(01)
0 0
原创粉丝点击