[問題] 搞不懂是除法還是啥出了問題
在學習 Go Playground Programming Language 時出現一個不知道怎麼辦
的 Bug。
題目:用牛頓法( Sqrt(x)=z- [(z^2)-x]/2z )計算平方根並觀察數字變化
http://go-tour-zh-tw.appspot.com/#25
程式的骨架沒問題,但牛頓法這行快整死我了orz
==以下為完整程式碼,直接貼在上面網址中左上視窗就可以了==
==版本一==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c float64 = x, 9.0, 0.0
for i :=0; i<10; i++ {
c=b- [ (b*b-a)/2b ] // 這行有bug無法執行
a=b
b=c
fmt.Println(a,b) // 測試a和b的變化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}
==版本二==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c float64 = x, 9.0, 0.0
for i :=0; i<10; i++ {
c=b- [ (b*b-a)/2b ] // 這行有bug無法執行
a=b
b=c
fmt.Println(a,b) // 測試a和b的變化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}
==版本三==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c, d, e float64 = x, 9.0, 0.0, 0.0, 0.0
for i :=0; i<10; i++ {
e=b*b-a
d=e/2b // 這行有bug無法執行
c=b- d
a=b
b=c
d=0.0
e=0.0
fmt.Println(a,b) // 測試a和b的變化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.69.208
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1426670237.A.5FC.html
→
03/18 18:06, , 1F
03/18 18:06, 1F
→
03/18 18:06, , 2F
03/18 18:06, 2F
→
03/18 18:06, , 3F
03/18 18:06, 3F
→
03/18 18:51, , 4F
03/18 18:51, 4F
→
03/18 19:22, , 5F
03/18 19:22, 5F
→
03/18 19:35, , 6F
03/18 19:35, 6F
→
03/18 19:46, , 7F
03/18 19:46, 7F
→
03/18 19:46, , 8F
03/18 19:46, 8F
→
03/19 06:22, , 9F
03/19 06:22, 9F
→
03/19 06:23, , 10F
03/19 06:23, 10F
→
03/19 06:23, , 11F
03/19 06:23, 11F
→
03/21 08:24, , 12F
03/21 08:24, 12F