Google"出丑" 处理大数字运算竟算错答案?

来源:岁月联盟 编辑:zhuzhu 时间:2008-08-29
CNET科技资讯网8月27日国际报道 Google的计算机在处理大数字时竟然会算错。这个问题在电脑界并非前所未闻,但对于一家以巨大无比的数字为名,且宅人群聚的公司而言,连算数都会错实在很糗。 错误通常 ...

    CNET科技资讯网8月27日国际报道 Google的计算机在处理大数字时竟然会算错。这个问题在电脑界并非前所未闻,但对于一家以巨大无比的数字为名,且宅人群聚的公司而言,连算数都会错实在很糗。

    错误通常是发生在非常大的数字,如2,999,999,999,999,999减2,999,999,999,999,998应该等于1,但Google计算机却显示答案为0。

算错的状况并非一致。1,999,999,999,999,999减1,999,999,999,999,995,答案是错误的0,但1,999,999,999,999,999减1,999,999,999,999,993可正确得出6。而400,000,000,000,002减400,000,000,000,001又得出错误的0,但400,000,000,000,002减400,000,000,000,000却是正确答案2。

幸灾乐祸者最觉得好笑的地方,是用Google这个名称的加减算数,得到的结果也是错的。英文字googol的原意代表1后面加上100个零。一个googol加1再减一个googol,正确答案是1,Google计算机的解答是错误的0。

事实上,大数字的算术的确很难,当中涉及特别的数字加密方法,才能得到绝对准确的答案。所幸,一般的计算机制造商不会碰到这些问题,因为如此大的计算通常只用在天文学计算星体的距离;太过细微的结果,在现实世界中其实没什么意义。

大数字的表现方式通常是两段的小数点格式,部分小数字(假数)乘以10的若干次方(指数)。举例来说,Google第二季的营收为12.5亿美元,或1,250,000,000美元,或1.25美元乘以10的9次方,或.25 x 10^9。小数点算术很适用于非常大的数字,但通常假数部分只保留一定数位,其他部分则忽略。

电脑的数学是二进位,只有0或1,人脑则是十进位,数字从0到9。当电脑将数字转换成二进位计算,再把结果转回人们习惯的十进位,准确度的确可能出问题。事实上,即使运算技术已经发展数十年,在最新的旗舰Power6处理器推出之前,连IBM都无法让电脑实际执行十进位计算。

一般的计算机根本无法处理太大的数字。当然,Google或许出糗了,但大部分的手持计算机根本不会让你输入1,999,999,999,999,993这种数字,更别说计算了。而Wolfram Research Mathematica这种可以精准计算的专业软件,市场也不大。

如果Google必须主动侦测大数字的计算,再将工作送到设有更先进预算规则的服务器执行,可能会明显降低计算机功能的速度。而Google把重点放在服务器回应是正确的,因为搜索引擎越快,使用者搜索的越多。但这个问题是Google核心文化与形象的一部份,Google的算数出错,就好比政客身上披了一面图案有错的国旗。

毕竟,这是一家用数学难题测试应徵者,并将初次公开发行股票的筹资金额订在2,718,281,828美元(代表自然对数底数"e,")的公司。Google可以修改运算公式,就像微软最近处理Excel的数学问题,和英特尔在1990年代(付出昂贵代价)解决影响Pentium处理器的FDIV问题一样。

Google的计算机还有其他错误。如2.00135558564^1023被解释为1.79769313 x 10^308。但把这个数字稍微加一点到2.00135558565^1023,Google会把它视为一个搜寻请求,而非数学问题。

记者认为,在最后一个例子,Google选择不算出答案,而是显示搜索结果,这种不会误导任何人的方法,就是所谓优雅的失败模式。没有答案总胜过错误的答案。尤其是真正使用计算机功能的人,是那些根本不会发现有错的人。

关键字:google