電腦算術
在加總大量浮動小數時所使用的Kahan加法(帶補償的加法),其目的下列何者正確?
- A將加法的次數減半,使計算更快
- B先將浮點數全部轉換為整數再加總
- C記錄遺失的部分並在下一次補上,以抑制誤差
查看答案與解析
正確答案:C. 記錄遺失的部分並在下一次補上,以抑制誤差
每次將小值加到變大的總和上時,小值的低位數都會因資訊遺失而消失,累積起來就會成為很大的誤差。Kahan加法在加完之後,會計算「實際增加的量」與「原本要加的值」的差,把遺失的部分記錄在補償用的變數中,並在加下一個值之前先加上該補償。計算的工夫會增加數倍,但能大幅抑制誤差的累積。它既不是減少次數的方法,也不是轉換為整數的方法。
- A. 計算的工夫反而會增加。
- B. 並不是轉換為整數的方法。
- C. 正確。記錄遺失的部分並加以補償,抑制誤差的累積。