设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度控制由用户在同一行内输入,用逗号进行分隔,输出结果保留8位小数。当(abs(x * x - n) )小于或等于设定的精度时,近似认为 x * x == n。 注:初始区间取[0,n+0.25] python
时间: 2024-02-20 12:02:34 浏览: 72
python之二分法求平方根
5星 · 资源好评率100%
以下是使用二分法计算平方根的函数sqrt_binary(n),代码中包含了用户输入和精度控制的实现:
```python
def sqrt_binary(n, precision):
low, high = 0, n + 0.25
mid = (low + high) / 2
while abs(mid ** 2 - n) > precision:
if mid ** 2 < n:
low = mid
else:
high = mid
mid = (low + high) / 2
return round(mid, 8)
n, precision = input().split(",")
n, precision = float(n), float(precision)
result = sqrt_binary(n, precision)
print(result)
```
该函数首先定义了初始区间[0, n+0.25],然后通过二分法逐步缩小区间范围,直到满足精度控制要求,返回最终的平方根值。在主程序中,我们首先通过input()函数获取用户输入的实数n和计算精度precision,然后调用sqrt_binary函数计算平方根,并将结果保留8位小数,最后输出结果。
例如,如果用户输入为2,0.0001,则程序将计算2的平方根,精度控制为0.0001,输出结果为1.41421356。
阅读全文