练习 循环与函数

问题

为了练习函数与循环,我们来实现一个平方根函数:用牛顿法实现平方根函数。

计算机通常使用循环来计算 x 的平方根。从某个猜测的值 z 开始,我们可以根据 z² 与 x 的近似度来调整 z,产生一个更好的猜测:

z -= (z*z - x) / (2*z)
重复调整的过程,猜测的结果会越来越精确,得到的答案也会尽可能接近实际的平方根。

在提供的 func Sqrt 中实现它。无论输入是什么,对 z 的一个恰当的猜测为 1。 要开始,请重复计算 10 次并随之打印每次的 z 值。观察对于不同的值 x(1、2、3 ...), 你得到的答案是如何逼近结果的,猜测提升的速度有多快。

背景知识

  1. 学习Go语言的for语法和函数定义。
  2. 先定义Sqrt函数,实现for语法的三部分,初始化、终止条件值、后置语句。
  3. for循环的三部分。
    初始化语句:在第一次迭代前执行
    条件表达式:在每次迭代前求值
    后置语句:在每次迭代的结尾执行
  4. 初始化语句和后置语句是可选的。
  5. 此时你可以去掉分号,因为 C 的 while 在 Go 中叫做 for。
  6. 如果省略循环条件,该循环就不会结束,因此无限循环可以写得很紧凑。

实现思路

  1. 实现一个Sqrt函数,传入float参数,返回一个float
  2. 选择一个合理的计算平方根的函数,在指定次数内计算出符合期望的结果。
  3. 简单设置误差为0.001。

实现代码

GitHub

文章链接

  1. 练习:循环与函数
打赏作者

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注