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

2021-08-17 04:03:01 字數 912 閱讀 4407

作為練習函式和迴圈的簡單途徑,用牛頓法實現開方函式。在這個例子中,牛頓法通過選擇乙個初始點z,然後重複這一選擇過程求sqrt(x)的近似值,這裡用描述牛頓法的數學公式:

為了做到這個,只需要重複計算 10 次,並且觀察在不同的迴圈次數(1,2,3,……)下z是如何逐步逼近結果的。 然後,修改迴圈條件,使得當z值停止改變(或改變非常小)的時候退出迴圈。觀察迭代次數是否變化,結果與math.sqrt接近。

z := float64(1)

或z := 1.0

定義並初始化乙個浮點值z,並套用計算方式:z = z - (z*z-x)/(2*z),迴圈計算並檢視變化(迭代10次,到結果沒有變化),目的是得到類似math.sqrt()的效果。

// 迴圈與函式練習:用牛頓法實現開方

package main

import (

"fmt"

"math"

)func sqrt(x float64) float64 else

}return z // 當z值停止改變(或改變非常小)時跳出迴圈,返回z值

}// 比較牛頓法與普通開方函式的輸出

func main()

輸出結果為

1.5

1.4166666666666667

1.4142156862745099

1.4142135623746899

1.4142135623730951

1.414213562373095

牛頓法: 1.414213562373095

math.sqrt(2): 1.4142135623730951

Go指南練習 迴圈與函式

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

Go指南練習 迴圈與函式

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

go語言指南的練習

對照著指南學習golang 然後做練習題,這裡是來自於其他同學總結的練習的參 然後想要補充分享是在的練習題中提出的 為什麼fmt.sprint e 會使程式陷入死迴圈的 func e errnegativesqrt error string或者 func e errnegativesqrt erro...