建築・設備見積りソフト、見積システムの事なら 和田特機株式会社

建設業向け 業務支援タブレットアプリシリーズ 好評発売中

和田特機株式会社HP

デジタル化は何の為?

二週間のご無沙汰でした。SALです。

前回・前々回と平行線の公理についてお話しましたが、そこで言いたかったことは、「根拠の無い思い込みが真実を隠してしまう」です。
こういった事は、様々なケースで有り得るのですが、仕事の関係から「デジタルデータだから正しい」と言う思い込みを取り上げてみます。

情報(データ)をデジタル化しておけば、正確な形で保存や転送することが可能です。
言い換えれば、時間的或いは空間的に別の場所に正確に移すことが可能です。
勿論、破壊されなければと言う条件が付きますが、デジタルの場合は寧ろ「破壊されていない」と言う証明付になります。
この事実が、思い込みの一因になっているのかもしれません。
此処で敢えて証明と言ったのは、デジタル署名を付ければ、人為的な偽装(なりすまし)に対してさえも効果があるからです。
デジタル署名(証明書)を付けるとはどういうことかは、これはこれで面白いので、別の機会に述べてみたいと思います。

では、編集に対してはどうでしょうか?
テキストエディタのように、対象が文字コードであれば、特に問題はありませんが、画像や音声データ等、ある物理量をデジタル計測したものを考えて見ます。
この数値化が正確か否かは次に取り上げるので、此処では初期データは正確であるとします。
このデータ(数値列)をカット&ペーストしているうちは特に問題はありません。
逆に、この点はアナログデータの編集に対して大きなアドバンテージです。
しかしながら、四則演算を行い始めると、次のような問題が表れます。
数値データは、固定小数点であれば扱える桁数が、浮動小数点であれば有効桁数が有限であるための誤差が生じてきます。
従って、演算を繰り返すとその誤差が積もってきます。
倍精度の浮動小数点だからといって安心はできません。似たような値の引き算をすると、一気に有効桁数を失います。

また、対象データが金額等の場合は、別の誤差も現れます。
充分な精度が確保されていても、金額計算のように切り捨て等の処理が有る場合は、有限桁数の10進数表現と2進数表現では、異なる結果を生じる場合があります。
例えば、10進数では 10.4*5 は、正確に 52 ですが、2進数だとそうはいきません。
そもそも 10.4 を有限桁数の2進数では正確に表せません。もし有限の桁数で切り捨てるとすれば、5 を掛けても 52 に僅かに足りないことになります。
もし、そのまま正直に切り捨てると 51 になってしまいます。
操作している人にとっては「何故?」「PCってバカ?」と言いたくなるかもしれません。
通常は、その様な二進化による誤差を加味して切捨てを行いますので、それほどバカではありませんが、当然ながら万能ではありません。そもそもの原因は「有限桁数の小数で扱う」ことにあるのですから…。
根本的に解決するには、人間に合わせて2進化10進数(BCD)を使うしかありません。勿論汎用のCPUには(2進数に比べて)不得意な技です。

この話は、10進法が優れていると言う意味ではありません。人間と合っているだけのことです。
解りやすいように立場を変えて、有効数字6桁の10進数で、(10/3)*3 を計算してみてください。
3.33333*3=9.99999 となって、
小数点以下を切り捨てると 9 になってしまいます。同じ式を9進数で行うと
(11/3)*3=3.3*3=11 となって、
僅か2桁の有効桁数で正確に計算できます。

次は、最も問題のありそうな、デジタル化(ADC)とアナログ化(DAC)の誤差について話したいのですが、此処までの話が長くなったので次回に先送りします。

コメント