error: 誤り(誤謬)と誤差
上智大学 伊藤 潔
2006年9月18日
errorは, 「誤り(誤謬),誤差」の2種類の意味を持ちます.
(A) error「誤り(誤謬)」
謬は,字通によれば,「あやまり,ひがごと,たがう」とあります.
誤謬は,普通に使われている「誤り」です.
erroneousは,「誤った,間違った」,error-proneは,「誤る傾向にある,間違いやすい」,error-free,
errorlessは,「誤りのない」という意味です.
syntax errorは,プログラムの文が,使ったプログラミング言語のsyntax
「文法,構文法」に適っていない「構文エラー」です.コンパイラなどが構文エラーを検出すると,あるいは,実行時に,オーバフロー,ゼロ割などのexecution
error 「実行エラー」を検出すると,error message 「エラーメッセージ」が出力されます.
error detectionは,「エラー検出」ですが,もし,検出して,訂正するならば,error
correction 「エラー訂正」といいます.文字や情報を表すbinary code 「2進コード(符号),2値コード(符号)」で,parity
bitを持つと,1bitの誤りを検出できるので,error detection code 「誤り検出コード(符号)」と呼びます.さらに,もっと,高度なコードにerror
correction code 「誤り訂正コード(符号)」もあります.
(B) error 「誤差」
「誤り」の要因と考えられるのは,故障や間違いである一方,「誤差」は,データを測定したり表現するときに生ずる,真の値との差を示すもので,その要因は,故障や間違いではなく,測定器や測定者の特性であったり,表現上の精度であったりします.
「誤差」という言葉は,間違いというのではなく,真ではない誤りがあること認識した上で,真との差を意識したものです.もちろん,「誤差」をより小さくすることは必要です.
コンピュータ内部でのデータの表現法自体から生ずる誤差を概観します.
コンピュータ内部では,データを有限なビット数で表現
するため,誤差が生じます.
例えば,実数といえば,本来は,決して有限な集合ではありません.コンピュータ内部では,実数型として浮動小数点表現を用います.その時,指数が大きな場合から小さな場合まで
,かなり大きな数,かなり小さな数,かなり細かい値まで表すことができますが,表すことのできる数の範囲があり,有限です.また,仮数も多くのビット数で表しますが,やはり有限
で,そこに,誤差が生じます.仮数部が有限であることにより,本来表わしたい数の下位ビットを落ちる現象がいろいろな状況で起きています.
(2a) 基数変換による誤差(error by radix conversion)
10進数を内部表現の2進数に変換されたとき制限されたbit数に収まりきれない場合の誤差
で,例えば,10進数0.2を入力すると2進変換されて 0.00110011001100・・・ となります.これを,小数部第1位に“1”が来るように正規化すると 0.11001100110011・・・・ ×2-2となります.bit数には制限があり,仮数部をたとえば,8bitとすると,0.11001100×2-2となります.これは,(1/2+1/4+1/32+1/64)×1/4=
0.19921875となり,10進数0.2は,2進数では正確には表現できないことになります.誤差は,0.2-0.19921875=0.00078125 です.更に,多くのコンピュータでは,整数部第1位に“1”が来るように正規化して1ビット多く使えるようにしていますが,これもビット数に制限があることは変わらず,誤差が生じます.
(2b) 情報落ちによる誤差(error by loss of information)
これは,2つの数を加算するときに,計算結果が仮数部に収まらない部分を切り捨てることによって生じる誤差
です.計算誤差と呼ぶこともあります.
error | 誤り,誤謬 | ||
erroneous | 誤った,間違った | ||
error-prone | 誤る傾向にある,間違いやすい | ||
error-free | 誤りのない | ||
errorless | 誤りのない | ||
syntax error | 構文エラー | ||
execution error | 実行エラー | ||
error message | エラーメッセージ | ||
error detection | エラー検出 | ||
error correction | エラー訂正 | ||
error detection code | 誤り検出コード(符号) | ||
error correction code | 誤り訂正コード(符号) | ||
error | 誤差 | ||
error by radix conversion | 基数変換による誤差 | ||
error by loss of information | 情報落ちによる誤差 | ||
binary code | 2進コード(符号),2値コード(符号) | ||
parity bit | パリティビット | ||
syntax | 「文法,構文法」 | ||