智能手機(jī)算錯(cuò)簡(jiǎn)單數(shù)學(xué)題

  8.03減去7.96等于多少?答案是0.07。 14.52減去14.49等于多少?答案是0.03。

  這道簡(jiǎn)單的小數(shù)減法題,相信很多小學(xué)生都可以很快、很輕易、很從容地解答出來(lái)。但讓人想不到的是,一部分智能手機(jī)卻在這個(gè)算術(shù)題上栽了大跟頭。

  智能手機(jī)的低級(jí)錯(cuò)誤

  近日,一位使用智能手機(jī)的用戶在網(wǎng)上貼出截圖,展示用手機(jī)自帶的計(jì)算器計(jì)算8.03減去7.96的結(jié)果。圖片顯示,手機(jī)算出來(lái)的結(jié)果不是0.07,而是0.0699999。這個(gè)不大不小的“錯(cuò)誤”,引發(fā)了網(wǎng)友們的討論:“高科技產(chǎn)品把簡(jiǎn)單算術(shù)題都算錯(cuò)了,太匪夷所思了!卑胄虐胍傻靥统鍪謾C(jī)、謹(jǐn)慎地輸入數(shù)字、輕輕地按一下“=”鍵,沒(méi)錯(cuò),結(jié)果就是0.0699999。

  一位網(wǎng)友還驚奇地發(fā)現(xiàn),不光是這一個(gè)減法題,用14.52減去14.49時(shí),得出的結(jié)果也不是0.03,而是0.0299999。還有網(wǎng)友表示,百度計(jì)算器也有同樣的問(wèn)題, 14.52-14.49=0.02999999999。同時(shí),也有網(wǎng)友表示,自己的手機(jī)在做這些題目時(shí)“絲毫沒(méi)有壓力”,“我用的是蘋果手機(jī),一點(diǎn)都沒(méi)錯(cuò)啊!

  針對(duì)這種個(gè)體差異,網(wǎng)友們?cè)跉w納眾多“試機(jī)”的結(jié)果后,總結(jié)出了一致的結(jié)論:使用安卓系統(tǒng)的智能手機(jī),在用手機(jī)自帶計(jì)算器時(shí),便會(huì)出現(xiàn)小數(shù)減法計(jì)算出錯(cuò)的問(wèn)題。但很快,就有網(wǎng)友推翻了這個(gè)結(jié)論。一個(gè)網(wǎng)友稱,自己安卓2.1系統(tǒng)的三星手機(jī)計(jì)算出來(lái)是正確的,沒(méi)有出現(xiàn)問(wèn)題;那么,安裝安卓2.2系統(tǒng)的手機(jī)呢?有的網(wǎng)友算出來(lái)是0.03,有的網(wǎng)友則是0.02999999999。

  隨后,記者測(cè)試了HTC等多款使用安卓系統(tǒng)的智能手機(jī),發(fā)現(xiàn)這兩道題的錯(cuò)誤率是100%,而使用其他系統(tǒng)(塞班、IOS、WM7)的手機(jī)計(jì)算出來(lái)的都是正確答案。讓人奇怪的是,測(cè)試安卓手機(jī)時(shí),記者發(fā)現(xiàn)其他的百分位出現(xiàn)的小數(shù)減法題卻很少出現(xiàn)錯(cuò)誤,難道安卓系統(tǒng)只對(duì)這兩道題有“知識(shí)盲點(diǎn)”嗎?

  業(yè)內(nèi)人士也有點(diǎn)犯糊涂

  隨后,記者先聯(lián)系上了業(yè)內(nèi)人士小曾!斑@應(yīng)該是安卓計(jì)算器的bug(錯(cuò)誤)吧?”小曾說(shuō)。當(dāng)被問(wèn)及為何會(huì)出現(xiàn)這樣的BUG時(shí),小曾停頓了一會(huì),然后說(shuō):“稍等,我和同事討論一下。”5分鐘后,小曾解釋:“是因?yàn)橛?jì)算器使用的數(shù)據(jù)位精度過(guò)高導(dǎo)致的!

  小曾解釋,之所以塞班、IOS系統(tǒng)的智能手機(jī)不會(huì)出錯(cuò),是因?yàn)橛袀(gè)優(yōu)化的措施!鞍沧肯到y(tǒng)版本更新太頻繁,所以會(huì)有一些BUG。”

  一家大型IT公司的業(yè)務(wù)主管徐先生則表示,其實(shí),在這個(gè)問(wèn)題上,安卓系統(tǒng)一直在犯錯(cuò)誤,“版本更新了很多次,但這個(gè)BUG一直存在!毙煜壬表示,其實(shí),這個(gè)小小的錯(cuò)誤并不是無(wú)法攻克的,自己也不明白那些高科技人才為什么“知錯(cuò)不改”,“呵呵,我只能說(shuō),這是一個(gè)張揚(yáng)個(gè)性的時(shí)代,這或許是個(gè)性的體現(xiàn)吧。”

  資深程序員告訴你原因

  南京小伙子朱寧,在新加坡一家軟件公司任職多年。昨天,記者特意采訪了朱寧,詢問(wèn)安卓計(jì)算器算錯(cuò)的原因。

  在聽(tīng)到記者的描述以后,小朱立刻表示,這其實(shí)是目前計(jì)算機(jī)技術(shù)的局限性導(dǎo)致的,并不只是安卓系統(tǒng)特有的bug。

  小朱說(shuō),其實(shí)計(jì)算器在做這樣的加減乘除的運(yùn)算時(shí),并不是直接把數(shù)字進(jìn)行相加,而是要先轉(zhuǎn)換成二進(jìn)制的數(shù)字,之后再進(jìn)行運(yùn)算。

  “我們?nèi)祟惖乃阈g(shù),有十個(gè)數(shù)字,從0到9,這個(gè)就是十進(jìn)制。而在計(jì)算機(jī)的世界里,就只有0和1兩個(gè)數(shù)字,這就是二進(jìn)制。”小朱說(shuō),這個(gè)轉(zhuǎn)換的過(guò)程,詳細(xì)來(lái)說(shuō),就是一個(gè)數(shù)字的整數(shù)部分除以2,取余數(shù);小數(shù)部分乘以2取整數(shù)的方法。

  以14.52為例,整數(shù)部分是14:

  14/2=7余0

  7/2=3余1

  3/2=1余1

  1/2=0余1

  所以,14在二進(jìn)制里就是1110。

  小數(shù)部分是0.52:

  0.52×2=1.04 整數(shù)1

  0.04×2=0.08 整數(shù)0

  0.08×2=0.16 整數(shù)0

  0.16×2=0.32 整數(shù)0

  小數(shù)部分和整數(shù)部分略有不同,小數(shù)部分很可能無(wú)窮無(wú)盡,但為了方便起見(jiàn),我們只進(jìn)行4次運(yùn)算。于是,我們得到小數(shù)部分的結(jié)果是1000。

  所以,14.52在二進(jìn)制里是1110.1000

  以此類推,14.49在二進(jìn)制里是1110.0111

  這樣,14.52-14.49通過(guò)二進(jìn)制運(yùn)算就是1110.1000-1110.0111=0.0001

  然后,我們?cè)侔阉D(zhuǎn)換回十進(jìn)制(二進(jìn)制轉(zhuǎn)換為十進(jìn)制的公式為:ABC.XYZ=A×2"2+ B×2"1+C×2"0+X×2"-1+Y×2"-2+Z×2"-3,計(jì)算時(shí),把相應(yīng)的數(shù)字替換公式中的A、B、C等符號(hào)),得到的結(jié)果是0.0625。

  可能有細(xì)心的讀者已經(jīng)發(fā)現(xiàn),我們得到的結(jié)果竟然與真實(shí)的結(jié)果相差巨大,甚至比安卓的計(jì)算器還要糟糕。難道我們的算法錯(cuò)了?其實(shí)不然,小朱說(shuō),這與我們?cè)谛?shù)部分進(jìn)行運(yùn)算的次數(shù)有關(guān)。如果我們多運(yùn)算幾次,精確度就會(huì)大為提高。像安卓計(jì)算機(jī)里得到的0.02999999的數(shù)字,基本上我們?cè)谛?shù)部分計(jì)算到接近30次以后,就可以實(shí)現(xiàn)。

  這不是安卓才有的bug

  小朱說(shuō),之前我們已經(jīng)提到,這個(gè)在當(dāng)今的計(jì)算機(jī)領(lǐng)域幾乎無(wú)法避免。但我們也可以通過(guò)一些技術(shù)手段來(lái)進(jìn)行規(guī)避。比如,可以把有小數(shù)點(diǎn)的數(shù)字先放大,把它變成整數(shù)進(jìn)行運(yùn)算,之后再除以相應(yīng)數(shù)字,最終就會(huì)得到精確的結(jié)果;或者事先確定要精確到的位數(shù),然后計(jì)算到這一位之后,進(jìn)行四舍五入,效果也是一樣的。

  在采訪中,記者發(fā)現(xiàn),這個(gè)問(wèn)題并非安卓的計(jì)算器獨(dú)有,包括百度計(jì)算器,甚至是WIndows操作系統(tǒng)自帶的計(jì)算器,也會(huì)出現(xiàn)這樣的現(xiàn)象。朱寧表示,那些能得到精確結(jié)果的計(jì)算器很可能就是利用了上面的方法,進(jìn)行了優(yōu)化。“平時(shí)碰到了也不要大驚小怪,就當(dāng)個(gè)笑話吧!彼f(shuō)。

  記者 史遙 黃敏


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書(shū)
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書(shū)-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書(shū)
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書(shū)》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書(shū)
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書(shū)
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息