gpt4 book ai didi

go - 如何计算 Go 的迭代次数?

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:04 24 4
gpt4 key购买 nike

所以我有一小段代码,它会根据需要进行迭代,直到所寻求的值之间的差异非常大。我想在代码运行完成后计算并打印迭代次数,最好是在我的主要函数中(以及打印我需要的所有其他内容)。

编辑:好的,我已经做到了。我想知道是否有更简单的方法来计算迭代次数并将它们传递给输出函数。

func sqrt(x float64) (float64, int) {
k := 1
z := 1.0
q := (z*z - x)/(2*z)
for {
if math.Abs(-q) > 0.001 {
z -= q
q = (z*z - x)/(2*z)
k += 1
} else {
break
}
}
return z, k
}

func main() {
k := 1
z := 1.0
z, k = sqrt(9)
fmt.Println("Your sqrt = ", z)
fmt.Println("Math Sqrt = ",math.Sqrt(9))
fmt.Println("Iterations: ", k)
}

最佳答案

您可以返回您的浮点值和一个整数(作为迭代次数)。我对您的示例进行了非常小的修改以进行演示。

func sqrt(x float64) (float64, int) {

z := 1.0
i := 1
q := (z*z - x) / (2 * z)
for {
if math.Abs(-q) > 0.01 {
i++
z -= q
q = (z*z - x) / (2 * z)
} else {
break
}
}
return z, i
}

func main() {
f, i := sqrt(9)
fmt.Printf("result: %f iterations: %d\n", f, i)
fmt.Println(math.Sqrt(9))
}

关于go - 如何计算 Go 的迭代次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37733720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com