ÌâÄ¿£º
×÷ΪÁ·Ï°º¯ÊýºÍÑ»·µÄ¼òµ¥Í¾¾¶£¬ÓÃÅ£¶Ù·¨ÊµÏÖ¿ª·½º¯Êý¡£
ÔÚÕâ¸öÀý×ÓÖУ¬Å£¶Ù·¨ÊÇͨ¹ýÑ¡ÔñÒ»¸ö³õʼµã z È»ºóÖظ´ÕâÒ»¹ý³ÌÇó Sqrt(x) µÄ½üËÆÖµ£º
ΪÁË×öµ½Õâ¸ö£¬Ö»ÐèÒªÖظ´¼ÆËã 10 ´Î£¬²¢Çҹ۲첻ͬµÄÖµ£¨1£¬2£¬3£¬¡¡£©ÊÇÈçºÎÖ𲽱ƽü½á¹ûµÄ¡£ È»ºó£¬ÐÞ¸ÄÑ»·Ìõ¼þ£¬Ê¹µÃµ±ÖµÍ£Ö¹¸Ä±ä£¨»ò¸Ä±ä·Ç³£Ð¡£©µÄʱºòÍ˳öÑ»·¡£¹Û²ìµü´ú´ÎÊýÊÇ·ñ±ä»¯¡£½á¹ûÓë [[http://golang.org/pkg/math/#Sqrt][math.Sqrt] ½Ó½üÂð£¿
Ìáʾ£º¶¨Òå²¢³õʼ»¯Ò»¸ö¸¡µãÖµ£¬ÏòÆäÌṩһ¸ö¸¡µãÓï·¨»òʹÓÃת»»£º
z := float64(1)
z := 1.0
½â´ð£º
package main
import (
"fmt"
"math"
)
func Sqrt(x float64) float64 {
const E = 0.0001
var z float64 = 1
var k float64 =0
for {
z=z-(z*z-x)/(2*z)
if z - k <= E && z - k >= -E {
return z
}
k = z
}
}
func main() {
fmt.Println(Sqrt(2))
fmt.Println(math.Sqrt(2))
}
ÓëÄÚÖú¯Êý½øÐÐÁ˶Աȣ¬
ÊäÈë½á¹ûÈçÏ£º
ÒÔÉÏ¡£