任务描述
设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度控制由用户在同一行内输入,用逗号进行分隔,输出结果严格保留8位小数。当(abs(x * x - n) )小于或等于设定的精度时,近似认为 x * x == n。
注:初始区间取[0,n+0.25]
输入格式
在同 行内输入一个实数 n(大于或等于0)和一个代表精度的数字(可用1e-m格式输入),逗号间隔
输出格式
第一行输出用自己设计的函数计算得到的平方根
第二行输出用math库开平方函数计算得到的平方根
代码如下:
from math import sqrt
x, g = input().split(',')
def sqrt_binary(x,g):
low = 0
high = x + 0.25
m = (low + high) / 2
while abs(m ** 2 - x) > g:
if m ** 2 < x:
low = m
else:
high = m
m = (low + high) / 2
print(f'{m:.8f}')
print(f'{sqrt(x):.8f}')
sqrt_binary(float(x), float(g))
愿我们都能在各自坚持的道路上,遇见更好的自己😊