经典算法思路及解答

经典算法思路及解答

1.求非负数实数的平方跟

问题分析:
#1.需要求出的结果应该是有理数
#2.过程需要有穷步骤
#3.可以分析正常情况下能够得到实数的近似值
#4.误差的设置

问题重新描述:

#对任意非负实数x,求一个非负实数y,使得|y * y - x|<e,其中,e是给定的允许误差

算法分析

#0对给定的正实数x和允许误差e,让变量y取任意正实数值,
#1如果y*y与x足够接近,使得|y * y - x|<e,计算结束,并把y作为结果返回
#2取z=(y+x/y)/2
#3将作为y的新值,回到步骤1

    ##实现
    def sqrt(x):
        y = 1
        while abs(y * y - x ) > 1e-6:
            y = (y + x/y)/2
##测试
sqrt(4)
Out[2]:2.0000000929222947
发布了13 篇原创文章 · 获赞 1 · 访问量 4287

猜你喜欢

转载自blog.csdn.net/weixin_42080294/article/details/88354888