用Python写一个求根号2前100位的代码
时间: 2023-05-27 16:07:35 浏览: 187
# 方法一:调用math库的sqrt函数
import math
print(format(math.sqrt(2), '.100f'))
# 方法二:使用牛顿迭代法
def sqrt2():
x = 1
while True:
x = (x + 2 / x) / 2
yield x
gen = sqrt2()
print(format(next(gen), '.100f'))
相关问题
用python写一段计算根号二前1000位的代码
# 方法一:使用Decimal模块
from decimal import *
getcontext().prec = 1001 # 设置精度为1001位
a = Decimal(2).sqrt()
print(a)
# 方法二:使用math模块
import math
from decimal import *
getcontext().prec = 1001 # 设置精度为1001位
a = Decimal(math.sqrt(2))
print(a)
Python用二分法求根号2
在Python中使用二分法求根号2的过程如下:
1. 首先,我们需要定义一个函数来计算给定数的平方与2之间的差值。假设我们将这个函数命名为`diff`,它接受一个参数`x`表示待求平方根的数,并返回`x^2 - 2`的值。
2. 接下来,我们需要定义一个函数来使用二分法逼近根号2。假设我们将这个函数命名为`sqrt_2`,它接受两个参数`low`和`high`,表示二分法的搜索范围。在每一次迭代中,我们计算中间值`mid`,然后调用`diff`函数计算`mid`的差值。如果差值小于某个阈值(比如0.0001),则认为找到了近似的根号2的值,返回`mid`。否则,根据差值的正负情况,更新搜索范围为`(low, mid)`或`(mid, high)`,然后继续下一次迭代。
下面是Python代码示例:
```python
def diff(x):
return x**2 - 2
def sqrt_2(low, high):
while True:
mid = (low + high) / 2
d = diff(mid)
if abs(d) < 0.0001:
return mid
elif d < 0:
low = mid
else:
high = mid
# 使用二分法求根号2的近似值
result = sqrt_2(1, 2)
print(result)
```
这段代码会输出一个近似的根号2的值。
阅读全文