Go指南練習 迴圈與函式

2022-02-01 00:10:36 字數 908 閱讀 9931

源位址 

為了練習函式與迴圈,我們來實現乙個平方根函式:用牛頓法實現平方根函式。

計算機通常使用迴圈來計算 x 的平方根。從某個猜測的值 z 開始,我們可以根據 z² 與 x 的近似度來調整 z,產生乙個更好的猜測:

z -= (z*z - x) / (2*z)
重複調整的過程,猜測的結果會越來越精確,得到的答案也會盡可能接近實際的平方根。

在提供的func sqrt中實現它。無論輸入是什麼,對 z 的乙個恰當的猜測為 1。 要開始,請重複計算 10 次並隨之列印每次的 z 值。觀察對於不同的值 x(1、2、3 ...), 你得到的答案是如何逼近結果的,猜測提公升的速度有多快。

z := 1.0

z := float64(1)

然後,修改迴圈條件,使得當值停止改變(或改變非常小)的時候退出迴圈。觀察迭代次數大於還是小於 10。 嘗試改變 z 的初始猜測,如 x 或 x/2。你的函式結果與標準庫中的 math.sqrt 接近嗎?

(注:如果你對該演算法的細節感興趣,上面的 z² − x 是 z² 到它所要到達的值(即 x)的距離,除以的 2z 為 z² 的導數,我們通過 z² 的變化速度來改變 z 的調整量。這種通用方法叫做牛頓法。它對很多函式,特別是平方根而言非常有效。)

package main

import (

"fmt""

math")

func sqrt(x float64) float64 else

}returnz}

func main()

執行結果

參考文件 

Go指南練習 迴圈與函式

源位址 為了練習函式與迴圈,我們來實現乙個平方根函式 用牛頓法實現平方根函式。計算機通常使用迴圈來計算 x 的平方根。從某個猜測的值 z 開始,我們可以根據 z 與 x 的近似度來調整 z,產生乙個更好的猜測 z z z x 2 z 重複調整的過程,猜測的結果會越來越精確,得到的答案也會盡可能接近實...

Go指南練習(1) 迴圈和函式

作為練習函式和迴圈的簡單途徑,用牛頓法實現開方函式。在這個例子中,牛頓法通過選擇乙個初始點z,然後重複這一選擇過程求sqrt x 的近似值,這裡用描述牛頓法的數學公式 為了做到這個,只需要重複計算 10 次,並且觀察在不同的迴圈次數 1,2,3,下z是如何逐步逼近結果的。然後,修改迴圈條件,使得當z...

go 迴圈與函式

為了練習函式與迴圈,我們來實現乙個平方根函式 用牛頓法實現平方根函式。計算機通常使用迴圈來計算 x 的平方根。從某個猜測的值 z 開始,我們可以根據 z 與 x 的近似度來調整 z,產生乙個更好的猜測 z z z x 2 z 重複調整的過程,猜測的結果會越來越精確,得到的答案也會盡可能接近實際的平方...