グーグルの電卓機能が計算ミス

文:Stephen Shankland(CNET News.com)
翻訳校正:ラテックス・インターナショナル
2008年08月28日 15時04分

 Googleの電卓機能で、一部の大きい数字の計算に問題が発生している。コンピュータの世界ではちらほら耳にするような話だが、とてつもなく大きい数字にちなんで名付けられた、超コンピュータマニアの会社にはあってはいけないことだろう。

Googleの電卓 一部の大きな数字で問題が発生するGoogleの電卓機能
提供: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は、10の100乗(グーゴル)の計算も苦手なようだ。1グーゴル足す1引く1グーゴルの答えは1が正しいが、0になる。

Googleの立場での言い分

 確かに、正確さを維持しようとすれば、特殊な方法を使って数字をエンコードする必要があるため、この規模での計算は難しい。しかし、電卓を開発する人たちにとって幸いなことに、実世界では比較的まれな要件だ。2つの星の間の距離を測定する場合、数cmレベルの精度を得られるのはまれだ。また、このような精度が実際に意味を持つこともまれだ。

 多くの場合、大きい数字は、小さい数字(仮数)に10の乗数(指数)を掛けた2つの値による浮動小数点形式で表される。例えば、Googleの第2四半期の売り上げは12億5000万ドルだったが、「1,250,000,000ドル」「1.25掛ける10の9乗ドル」「1.25×10^9ドル」と表記することもできる。浮動小数点計算は大きな数の計算に便利だが、一般的に、最初の要素は限られた桁数の数字しか把握できないため、途中で若干の誤差が生じる。

 コンピュータでの正確な計算は、コンピュータが一般的に0または1の数字しかない2進数で計算をしていることに基づいている。一方、人は0から9までの数字を使った10進数計算を行う。正確性に問題が生じるのは、コンピュータが数字を2進数に変換して処理し、結果を10進数に戻して表示するためだ。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]