Abstract: Sqrt
One common method is sqrt() in the module known as math. Here, I introduce my code.
The result:
sqrt of 7 is 2.64575131106
sqrt of 7 is 2.64575131106
The script:
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 2 10:11:56 2015
@author: yuan
"""
#method 1
import math
a=7
print 'sqrt of', a, 'is', math.sqrt(a)
#method 2
def mysqrt(number, digits=1):
value=0
for power in range(digits+1):
#print power, value
value=binary_search(power,value, number)
#print '\n'
return value
def binary_search(power, value, target):
start_index=0
end_index=9
pool=[]
#print float(1)/(10**power)
for x in range(10):
new=value+float(x)/(10**power)
pool.append(new)
#print pool
if target==pool[start_index]*pool[start_index]:
value = pool[start_index]
return
elif target==pool[end_index]*pool[end_index]:
value = pool[end_index]
return
#
n=1
while start_index<end_index:
mid_index=int((end_index-start_index)/2)+start_index
mid_value=pool[mid_index]*pool[mid_index]
#print start_index, end_index, mid_index, mid_value
if mid_value>=target:
end_index=mid_index
else:
start_index=mid_index
#set bound
if end_index-start_index==1:
break
value=pool[start_index]
#print value, start_index, end_index
return value
#
print 'sqrt of', a, 'is', mysqrt(7, digits=20)
print 'ok'
No comments:
Post a Comment