Go

A Tour of GoのExercise: Loops and Functionsが難しい・・・

投稿日:

昨日からA Tour Of Goをはじめました。
皆さんオリジナル(英語版)をやって見るようにと進めてくれているのですが、まずは日本語を進めています。
そして早速Exercise: Loops and Functionsでつまづきました。
書いてあることが全くわからず飛ばそうかと思ったのですが、何度も読み返してようやく意味がわかりました。
ループ内でz -= (zz – x) / (2z)を実行してzと前回実行時のzの差が一定値以下になったらループを抜けるということだと思いとりあえず書いてみました。


package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) float64 {
    z := 1.0
    n := 0.0
    for i := 0; i < 10; i++ {
        z -= (z*z - x) / (2 * z)
        if math.Abs(z-n) < 0.0000001 {
            return z
        }
        n = z
    }

    return z
}

func main() {
    x := 2.0
    fmt.Println(Sqrt(x))
    fmt.Println(math.Sqrt(x))
}

結果


1.4142135623730951
1.4142135623730951

答えがわからないのですが、大きく外していないことをお祈り。

-Go

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Go言語の環境構築 WIndows10版

ふとGo言語でツールを作って見ようと思ったので環境構築をメモ。 今回はWindows10で構築します。 Goをダウンロード GoからWindows版をダウンロードします。 今回はgo version …

A Tour of Go Exercise: Slices

スライスのエクササイズ。 スライス自体の概念がイマイチしっくり来ていないところがありますがLoops and Functionsのエクササイズに比べるとあんまり悩むことなく実装はできた感じ。 ただGo …

A Tour of Go Exercise: Maps

マップのエクササイズ。 コード的にGoらしく美しいかは不明ですが無事完了。 package main import ( “golang.org/x/tour/wc” “strings” ) func …

no image

A Tour of Go Exercise 自己解答

A Tour of Goの各Exerciseを自分で解いたもの。 取り急ぎは結果だけあってればOKとして、まだ他の回答例を見ていないのですがふさわしいコードではないと思います。 Loops and F …