[日常]
數學爛寫作業真的是一件很痛苦的事
認真記住了目前教過的指令,但是因為數學太爛的關係,不是初始值設錯,要不然就是迭代循環內的數值設錯,導致弄不出想要的答案
要不然就是數學太爛導致比較應用一點的題目就卡很久
助教:有甚麼問題?程式有寫錯它會自己顯示阿?
我:程式可以跑但不是我要的答案阿
latest #10
感覺簡單的判別三角形,我設了9個變數真的大丈夫……?
zerozakiark
4 years ago
先再紙本上解決數學邏輯,再Google解決API
這樣錯誤率會少很多
山特▶
4 years ago
先紙本再上機+1 XD
有迴圈的話也可以考慮畫圖,會清楚很多
基本上剛開始都這樣啦,寫久了就有 sense 了,加油~
立即下載
zerozakiark: boxbox557: 謝謝XDDD終於感覺思考比較清晰了一點
boxbox557: https://images.plurk.com/ccozET5Yd4jScalB4iH2l.png 很不成材的想要請教一下,為什麼只有當我想要測試直角三角形的數值時會出現鈍角三角形?
zerozakiark
4 years ago
精確度的問題
山特▶
4 years ago
精確度+1
想像有個循環小數或無線小數,電腦顯然不可能記住所有位數,所以一般電腦都只會記錄到 8 或 16 個 bits 而已(簡單理解為他會四捨五入就好),但這就會導致小數計算過程中可能會因為那 0.00000001 的誤差讓整個判斷爛掉。
拿你的例子來說,其實 (0,0), (5,0), (0,5) 算出來的邊長是長這樣的:
https://images.plurk.com/1fr1uKBJaGdrA7XVKB20Ag.png
山特▶
4 years ago
你拿這串小數去平方就會爛掉,比較不出個所以然:
https://images.plurk.com/55txZuWPcVjCQlDivRLmeH.png
所以一般來說小數比較我們會加個誤差值,比如
if (x-y)<0.001: print('x is equal to y')
,只要他們近到一定程度我們就當作他相等。
當然還有個更簡單的方法就是 call 內建的 method 哈哈,不確定你們作業能不能用,你可以參考一下
https://images.plurk.com/7DqA1ElHaX6jxA2TNokwXy.png
boxbox557: 我看了一下也有內建的,我需要來研究一下用法(感覺懶人必備)
boxbox557: zerozakiark: 超級感謝 以為跟計算機一樣計算,卡了好久
back to top