ゼロ除算とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > ゼロ除算の意味・解説 

ゼロ‐じょざん【ゼロ除算】

読み方:ぜろじょざん

0(ゼロ)で除算すること。数学的には意味をなさず、成立しないコンピュータープログラミング言語数値計算をする際には、正常な演算結果得られず、一般的にNaN表される


ゼロ除算

読み方ゼロじょざん
別名:0除算ゼロディバイド
【英】division by zero, divide by zero

ゼロ除算とは、除数ゼロ(0)とした除算のことである。

ゼロ(0)、もしくはゼロ(0)に極めて近い値で除算行った場合コンピュータ内部での数値表現ゼロもしくは表現不能な値になる。そのため、その後の処理続行不能に陥り、プログラム異常終了などの意図しない振る舞い引き起こすことがある

一般的にプログラム上でゼロ除算が行われると、例外もしくはバグ認識されるゼロ除算行わないようにチェック行えば簡単に防ぐことができるが、意外に見落としやすい。

ちなみに除数を0として除算を行うことは数学的に未定義であり成立しないとされている。

プログラミングのほかの用語一覧
コーディング:  サブルーチンライブラリ  参照渡し  ゼロサプレス  ゼロ除算  正規表現  正規表現エンジン  条件分岐

ゼロ除算

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/11/02 05:38 UTC 版)

概要

数学においてゼロ除算(ゼロじょさん、ゼロじょざん、0除算、英語: division by zero)とは、0で除す割り算のことである。このような除算は、除される数をaとすると、形式的に a/0と書くことができるが、このような式を矛盾なく定義することはできない。一方、コンピュータプログラムの計算においてゼロ除算が発生した場合、大抵はエラーとなって計算処理が中断されてしまう為、一般的には0による除算が起こらないように設計される。

陥りやすい誤解

現代数学の観点では、いかなるアプローチから定義を試みようとも必ず破綻に至る。結局、「値を定義し得ないため、計算は不可能である」と理解する他ない概念であり、それ以上の議論によって数学的に有用な結果が得られることは期待できない。しかし、概念自体は極めて初等的な知識で捉えることができるため、しばしば数学的原則を前提としていない議論や独自な解釈が展開されることがある。そのような議論や解釈はいずれも論理的破綻を含むか信頼性のある根拠を伴わない為、学術的な評価の余地をほとんど有しない。

ゼロ除算の定義可能性に関する誤った理解の典型としては、例えば

関数 y = 1/x のグラフ。x が 0 に近づくと、y絶対値は無限大に近づく。

直観的に a/0a/b で 正数b を 0 に漸近させたときの極限を考えることで定義されるように見える。

a が正の数の場合、次のようになる。

リーマン球面は、複素平面立体射影により球面に射影したものとして視覚化できる。

リーマン球面

リーマン球面は、複素平面に無限遠点 ∞ の1点を付け加えて得られるもの C ∪ {∞} である。上記実射影直線(射影拡大実数)の複素数版とも考えられる。リーマン球面は複素解析において重要な概念であり、演算は例えば 1/0 = ∞、1/∞ = 0、などとなるが、∞+∞ や 0/0 は定義されない[12]


コンピュータにおけるゼロ除算

SpeedCrunchという電卓ソフトでゼロ除算を実行したときの様子。エラーが表示されている。

ゼロ除算をしたときのコンピュータの挙動は整数演算の場合と浮動小数点数演算の場合で異なる[13]。したがって、整数演算の場合と浮動小数点数演算の場合で分けて説明する。

整数演算の場合

コンピュータにおける整数のゼロ除算では結果を表す方法がなく、多くのプロセッサは整数のゼロ除算を実行しようとすると 《例外》 を発生させる。(なおIntel 8086の場合、商がレジスタに格納できる数値を越えている場合にもゼロ除算した時と同様の例外が発生する[14][15])。この例外に対する対処がなされていない場合、ゼロ除算を実行しようとしたプログラムは強制終了(アボート)されてしまう。これは、ゼロ除算が 《 エラー 》 と解釈されるためで、エラーメッセージが表示されることも多い[16]

浮動小数点演算の場合

他方、浮動小数点演算の場合は、次のようなことが起きる。

なおゼロ除算が生じた場合にそのマシンで表現可能な最大値に + /- の符号も考慮した上で置き換えて処理を続行することを推奨している本もある[24]

なお、浮動小数点数演算の規格であるIEEE 754では、全ての浮動小数点数演算が定義されており、ゼロ除算も例外ではなく、どういう値になるか(どういう値を返すべきか)が定義されている。IEEE 754の定義によれば、a/0 で a が正の数であれば、除算の結果は正の無限大となり、a が負の数であれば負の無限大となる[25]。そして、a も 0 であった場合、除算結果は NaNnot a number、数でない)となる[26]。IEEE 754 には −0 も定義されているため、0 の代わりに −0 で除算をした場合は、上述の符号が反転する[25]。 IEEE 754は現在、ほとんどのコンピュータでサポートされている[25]

コンピュータのゼロ除算が原因で実際に現実世界で起きた事態

1997年、民生品の応用を研究していたアメリカ海軍は、タイコンデロガ級ミサイル巡洋艦ヨークタウン」を改造して主機のガスタービンエンジンの制御マイクロソフトのソフトウェアを採用したが、試験航行中にデータベースのゼロ除算が発生してソフトウェアが《例外》を返し、結果として主機が停止、回復するまでカリブ海2時間半ほど漂流する事態となってしまった[27]

ポップカルチャー

脚注

  1. ^ 処理速度やリアルタイム性が求められる制御装置、組み込みシステムなどではしばしば、動作を遅くさせがちな浮動小数点演算は避け、あえて整数演算をさせる。

出典

  1. ^ IEEE Computer Society (August 29, 2008). IEEE Standard for Floating-Point Arithmetic. IEEE. doi:10.1109/IEEESTD.2008.4610935. ISBN 978-0-7381-5753-5. IEEE Std 754-2008. http://ieeexplore.ieee.org/servlet/opac?punumber=4610933. 
  2. ^ 【算数編】小学校学習指導要領(平成29年告示)解説” (pdf). 文部科学省. p. 146. 2021年3月18日閲覧。
  3. ^ Watson, Jane M. (1991). “Models to Show the Impossibility of Division by Zero” (英語). School Science and Mathematics 91 (8): 373–376. doi:10.1111/j.1949-8594.1991.tb12123.x. ISSN 1949-8594. https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1949-8594.1991.tb12123.x. 
  4. ^ a b Duncan, Hilda F. (1971-10-01). “Division by zero” (英語). The Arithmetic Teacher 18 (6): 381–382. doi:10.5951/AT.18.6.0381. https://pubs.nctm.org/view/journals/at/18/6/article-p381.xml. 
  5. ^ Tsamir, Pessia; Sheffer, Ruth (2000-09-01). “Concrete and formal arguments: The case of division by zero” (英語). Mathematics Education Research Journal 12 (2): 92–106. doi:10.1007/BF03217078. ISSN 2211-050X. https://doi.org/10.1007/BF03217078. 
  6. ^ 高橋 丈夫 (2017). “整数の除法の導入時における児童の「測定の考え」の様相に関する一考察”. 日本数学教育学会誌 99 (12): 2-11. doi:10.32296/jjsme.99.12_2. 
  7. ^ a b Kaplan, Robert (1999). The Nothing That Is: A Natural History of Zero (英語). New York: Oxford University Press. pp. 68–75. ISBN 978-0-19-514237-2
  8. ^ ロバート・カプラン、松浦俊輔(訳)、2002、『ゼロの博物誌』、河出書房新社 ISBN 978-4-309-25157-8 p. 107
  9. ^ J J O'Connor and E F Robertson (November 2000). "Zero". 2008年11月16日閲覧
  10. ^ 田中一之『数学基礎論序説』(第二版)裳華房、2021年、199頁。ISBN 978-4-7853-1575-7 
  11. ^ 高橋正子『コンピュータと数学』朝倉書店、2016年、iv, 19, 49頁。ISBN 978-4-254-11752-3 
  12. ^ How to Divide by Zero” (英語). 1 divided by 0. 2022年2月17日閲覧。
  13. ^ 山田祥寛『独習C# 第5版』2022、p.93
  14. ^ 解析マニュアル0 1983, p. 342-343.
  15. ^ 田辺 1983, p. 269.
  16. ^ 株式会社インプレス (2022年7月27日). “Androidの「電卓」アプリはゼロで割ると答えが「ん」になる(ことがある)/皆さんの端末ではどうですか?【やじうまの杜】”. 窓の杜. 2022年7月27日閲覧。
  17. ^ 沼田哲史『C言語本格トレーニング: 基礎から応用までを徹底解説!』2020、p.13
  18. ^ 『現場ですぐに使える! Pythonプログラミング逆引き大全357の極意』秀和システム、2022、p.117
  19. ^ a b 山田 祥寛『独習C# 新版』翔泳社、2017、「3.1.4 除算とデータ型」の章。
  20. ^ 山田 祥寛『独習Ruby 新版』翔泳社、2021、p.84
  21. ^ 山田祥寛『独習Java 新版』翔泳社、2019、p.86
  22. ^ Joe Celko『プログラマのためのSQL 第4版』翔泳社、2013, p.214
  23. ^ 『SQL Hacks: データベースを自由自在に操るテクニック』オライリー・ジャパン、2007、p.108)
  24. ^ 日本規格協会『情報処理: ソフトウェア編』(JISハンドブック) 1990、p.622
  25. ^ a b c 皆本 2002, p. 73-74.
  26. ^ 皆本 2002, p. 71.
  27. ^ “Sunk by Windows NT”. Wired News. (1998年7月24日). http://www.wired.com/science/discoveries/news/1998/07/13987 2008年11月16日閲覧。 
  28. ^ oh shi-”. Urban Dicthionary. 2011年10月11日閲覧。
  29. ^ Chiang, Ted (2015). Stories of Your Life and Others (英語). Picador. ISBN 978-1-4472-8923-4
  30. ^ 邦題は https://iss.ndl.go.jp/books/R100000002-I000004238766-00 で確認できる。
  31. ^ Chuck Norris can divide by zero”. Chuck Norris Facts. 2011年10月11日閲覧。
  32. ^ ゼロ除算 ゼロ除算|カードギャラリー|マジック:ザ・ギャザリング 日本公式ウェブサイト”. 2023年11月25日閲覧。

参考文献

関連項目

外部リンク

  • Weisstein, Eric W. "Division by Zero". mathworld.wolfram.com (英語).
  • The Last Denominator - 「OH SHI-」を題材にしたショートフィルム。ゼロ除算をしようとした直後に地球が爆発する。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ゼロ除算」の関連用語

ゼロ除算のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ゼロ除算のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【ゼロ除算】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのゼロ除算 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS