二分法求平方根和立方根 您所在的位置:网站首页 二分法编程 二分法求平方根和立方根

二分法求平方根和立方根

2023-08-14 01:22| 来源: 网络整理| 查看: 265

二分法求解平方根和立方根

给定一个正整数 n n n,在不使用python库函数的前提下,求出 n n n的平方根和立方根,结果保留两位小数。

此题可以使用二分法解决,对于一个正整数 n n n,可以设定所求结果的范围,在(left, right)之间,其中,初始left为0,初始right为n。因为 0 ≤ r e s u l t = n ≤ n 0\leq result = \sqrt n \leq n 0≤result=n ​≤n一定满足。

因此,当无法使用库函数直接开根号时,初始范围的设定一定要将最终的result包含在内。接下来就可以使用二分法来逐渐缩小范围,确定result的值。设置mid为逐步逼近result的最终所求值,则初始mid被设置为0,当 m i d 2 − n < 0 mid^2-n n mid>\sqrt n mid>n ​,说明mid大于所要求的值,则将right更新为mid,新的mid的值为: m i d = ( l e f t + r i g h t ) / 2 mid=(left+right)/2 mid=(left+right)/2,逐步迭代,直至满足以下条件时,停止迭代,返回mid值,即为最终所求的值。 ∣ m i d 2 − n ∣ < 1 0 − 7 (1) |mid^2-n| 0: right = mid else: left = mid mid = (left + right)/2 err = mid**2 - n print(format(mid, '.2f')) # 求一个正整数的立方根 n = int(input()) left, mid, right = 0, 0, n err = mid**3 - n while abs(err) > 1e-7: if err > 0: right = mid else: left = mid mid = (left + right) / 2 err = mid ** 3 - n print(format(mid, '.2f'))



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有