2013年4月23日 星期二

四捨五入的研究

  四捨五入的研究   日前有報章報道,某銀行的網上系統有漏洞,只要不斷透過四捨五入造成的誤差,便可安坐家中賺取利潤。學校數學學會為此開設了一個講座,研究「四捨五入」這個數學上,常用的取近似值的方法。四捨五入的原理很簡單,基本上就是「向較接近的一方取近似值,以減少誤差」。   「四捨五」入是近似計算的一種方法,在我國應用很早,《九章算術》均輸章第一題述文中,有「有分者上下輩之」,即若得數為分數,則應進行輩之,使成為整數,已有入捨之初步思想,至三國時代的景初曆(237年)已有明文記載「半法以上排成一,不滿半法廢棄之。」即被除數大於除數一半時進位,得過剩近似值,不足一半時捨去,得不足近似值,即所謂四捨五入。   例如,要把123.456取小數點後一位的近似值,則因為123.456界乎123.4和123.5之間,而且較接近後者,因此我們取123.5作為近似值。這裏有一個小問題,就是「較接近的一方」,並不一定存在,例如把123.450捨入至123.4和123.5都是「同樣接近」的,故此我們根據「五入」的規則,把123.450向上捨入至123.5。但這樣做的話,得出的近似值會偏大。如果只是把123.450變成123.5,當然問題不大,不過如果是1.5變2,或10.5變11的話,而且經常要「五入」的話,這樣的例子是存在的,例如以0.5分為評分單位,但最終分數必定是整數的考試,那就很不同了。為了解決這個「偏大」的問題,一個「修正版」的四捨五入法,是「四捨六入五留雙」。名字本身有點誤導:雖然叫「六入」,但其實是「(5+ε)入」,例如123.456仍會「(5.6)入」至123.5。只是當出現123.450這些「打和」的情況時,才採用「五留雙」的規則。如果5字前的位是雙數則保留,單數則進位,故基於「4」是雙數,123.450會向下捨入至123.4,而123.550則會上捨入至123.6。至於「銀行家」是否真的採用此規則,大家不妨測試一下。那麼為甚麼要「留雙」而不是「留單」呢?我有以下猜測。   在以上123.456的例子中,如果採用四捨五入法,取小數點後一位的近似值,則會變成123.5,如果再把近似值取最接近整數,則變成124。問題是最接近123.456的整數應是123才對。再細看一下,我們發現其實123.44…445已經可以「合法地」變成124:只要逐位「五入」即可。   而且即使採用「四捨六入五留單」,同樣的情況仍會發生。採用「五留雙」的話,這樣的情況會得到一點點的改善,雖然也好不到哪裏:123.4500…001才可以「合法地」變成124。在日常生活中,由於角子缺乏,有些食肆在結帳時,也會採用「四捨五入方式」,以一元作為終極單位。

沒有留言:

張貼留言