[外伝] 小技巧:浮點數迴避
Tags
- 外伝
- 小技巧
前置技能
無
解說
浮點數由於電腦儲存方式關係,容易出現誤差,且運算較整數慢相當多。
通常能迴避就盡量迴避。以下是幾個常見迴避方式:
- 同乘以某個倍率
比如說明明輸入每個點都在數線上的整數位置,
解卻可能出現在兩點中間時,其實全部位置乘以 2 就可以迴避掉 .5 的情況。 - 距離公式只用來比較時不開方
比如說兩圓是否相交,只需比較兩圓半徑和與圓心距離的大小,
不等式兩邊都非負數,一起平方把根號去掉不影響結果
平方的計算也比開方要快 - 調整公式避免除法
比如說 2/3 和 4/7 比大小之類的,可以轉成 2x7 和 3x4 的比較。 - 結果必為整數時,調整乘除順序
結果是整數時通常運算過程也可以全是整數,
比如說等差公式的總和,或者組合數,可以約分或調整乘除順序。
當然也有很多時候迴避不掉,這時需要注意的事就下回再提。
cmusu