[問題] 搞不懂是除法還是啥出了問題

看板Programming作者 (紫藤)時間9年前 (2015/03/18 17:17), 編輯推噓0(0012)
留言12則, 4人參與, 最新討論串1/1
在學習 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
對,還有除以2b應該寫成/(2*b)吧
03/18 18:51, 4F

03/18 19:22, , 5F
居然是因為這樣!好,我再試試
03/18 19:22, 5F

03/18 19:35, , 6F
結果真的是死在2b XDDDDDDDDDDDDDDDDDD
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
根據經驗,完全程式新手寫 go
03/19 06:22, 9F

03/19 06:23, , 10F
如果直接走那個流程會卡很多地方...
03/19 06:23, 10F

03/19 06:23, , 11F
感覺是給有 C 經驗的人跳槽用的
03/19 06:23, 11F

03/21 08:24, , 12F
我大概算中古新手,只是C到指標就卡了
03/21 08:24, 12F
文章代碼(AID): #1L2KATNy (Programming)