查看“Python题库:函数”的源代码
←
Python题库:函数
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==二分法求平方根B== ===描述=== 设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度控制由用户在同一行内输入,用逗号进行分隔,输出结果保留8位小数。当(abs(x * x - n) )小于或等于设定的精度时,近似认为 x * x == n。 注:初始区间取[0,n+0.25] ===输入格式=== 在同 行内输入一个实数 n(大于或等于0)和一个代表精度的数字(可用1e-m格式输入),逗号间隔 ===输出格式=== 第一行输出用自己设计的函数计算得到的平方根 第二行输出用math库开平方函数计算得到的平方根 ===输入输出示例=== 输入 输出 示例 1 5.0,1e-7 ===代码=== <nowiki> import math def sqrt_binary(num, accuracy): """接收一个浮点数num和一个表示计算精度的浮点数accuracy为参数,用二分法计算浮点数的平方根x, 当 abs(x * x - num) <= accuracy时认为达到计算精度,以浮点数类型返回计算得到的平方根。""" low, high = 0, num + 0.25 # 设定初始区间 while True: # 构建无限循环 x = (high + low) / 2 # 假设平方根落在区间的二分之一处,即中点 if abs(x * x - num) <= accuracy: # 当误差小于计算精度时,终止循环 return x # 返回当前的x值为平方根 elif x * x - num < 0: # 当前x的平方小于num时,平方根应该位于右侧区间 low = x # 以当前数值为区间下限,缩小区间为原来的一半 else: # 当前x的平方大于num时,平方根应该位于左侧区间 high = x # 以当前数值为区间上限,缩小区间为原来的一半 n, error = map(float, input().split(',')) # 输入浮点数 n 和计算精度 print('{:.8f}'.format(sqrt_binary(n, error))) # 调用二分法函数计算平方根 print('{:.8f}'.format(math.sqrt(n))) # 用math库中的sqrt()计算平方根 </nowiki>
返回至
Python题库:函数
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息