A 回答 (11件中1~10件)
- 最新から表示
- 回答順に表示
No.11
- 回答日時:
何を「間違い」とするかです。
現在の計算機は二進数を基準にしています。その方が都合がいいからです。
まず、内部で値を表現する方法ですが、電気回路なので電気的な特性を利用します。
多いのは電圧です。
しかし、このときに、例えば「5を表現するのに5V」などとやってしまうと、さまざまな誤差要因によって、4.9だったり5.1だったりになってしまう場合があります(むしろ5.0になることの方が少ないでしょう)
そこで、「高い電圧は1,低い電圧は0」とすると、1=5Vを設定しようとして4.9Vとか5.1Vとかになったとしても、「高い電圧」なので「1」と正しく判定できることになります。
これが、正しく計算できる理由の一つです。
扱うのは
・1項の演算
△A→C
・2項の演算
A○B→C
だけです。3項以上の複雑な式も、2項ずつ演算していきます。
※ここで、A,B,Cは一桁の二進数、○△は演算子
この2項の演算の結果は、16通りしかありません(A,Bの組合せは0,0/0,1/1,0/1,1の4通り。それぞれに対してのCが (0/0/0/0),(0/0/0/1),(0/0/1/0),....,(1/1/1/1)と、16通り)
あとは、どんな複雑な計算でも、最終的に上の演算になるまで展開していくだけです。
その展開方法と、16通りの計算方法に間違いがなければ、正しく計算できます。これが理由の2です。
(さらに言えば、16通りの演算もさらに展開でき、最終的には一つの演算子だけで全ての演算が表現できます。つまり、一つの回路の組合せだけで全ての計算ができます)
次に誤差ですが、これは計算機が有限の値しか扱えない以上、どうしようもないことです。
しかし、これは「間違い」ではありません。
例えば、整数の演算を考えたときに
5÷3 = 1.666666......
となり、整数の範囲に収まりません。そこで「端数切り捨て」とか「四捨五入」とかルールを決めて値を求めます。
5÷3 = 1 (切り捨て)
5÷3 = 2 (四捨五入)
これはこれで、ルールに従った正しい結果です。
真の値との差が「誤差」です。計算のルールが同じなら、誤差も同じです。
「計算間違い」というのは、そのルールと違う結果になることです。(切り捨てのはずなのに5÷3 = 2 になる、とか)
計算機はルールに従って演算するだけなので、誤差はあっても間違いはありません。
以上が理論的に計算間違いが無いことの説明です。
ところが、実際にはいろんな要因で間違うケースもあります。
回路を作るのは人間です。組合せを間違えてしまうこともあります。
どの演算を使うか、を制御するのがプログラムです。プログラムを作るのは人間です。間違えてしまうことがあります。
電気回路なので、当然、環境による特性変化があります。これにより、誤動作することがあります。(例えば、熱による抵抗値の変化:熱で抵抗が増える→電圧低下で1と見做せない電圧までさがってします→0と判定される、など)
製造段階の不具合によって、回路が正常動作しないこともあります(接触不良とか異物によるショートとか)
ただ、これらは
・設計段階で防げるものは防ぐ(多少電圧が落ちてたりノイズが乗ったりしても正しく0/1判定できるようの回路にする、とか)
・出すまでに様々な方法でチェックしている(出荷前のテストとか)
があるので、一般ユーザーが間違える計算機を持っていることはまずありません。
No.9
- 回答日時:
それでは逆にお伺いします。
人間は何故間違いをするのでしょうか?
それが理解でき、コンピューターの動きを少しでも理解できればおのずと答えは出てきます。
この回答への補足
人間は計算の途中で寸前の計算を忘れてしまうというようなことがあるので今まさにやっている計算を間違えてしまうことがある、というようなことでしょうか?
しかし計算機は後の計算に必要な計算結果などはメモリに残しておくので計算間違いをすることがない、というようなことでしょうか?
そうであるとするならば、計算機が残しておかなくてはいけない計算結果をメモリに残すのを忘れてしまって後の計算を間違えてしまうというようなことが起きないのはなぜでしょうか?
No.7
- 回答日時:
間違いの他に、計算していくうえでどうしても誤差が発生することがあります。
例えば、小数点以下の数字が終わらない場合は、どうしてもある位置で切り捨てるか四捨五入しますね。両方計算してみると、ずれる場合があります。その結果をどう見るかは計算させる人間側の問題です。
No.5
- 回答日時:
「間違う」という能力が無いためですね。
もちろん、計算間違いをするようにプログラムされていれば、プログラム通りに計算間違いしますが。
実際には、温度上昇その他の原因で誤動作して計算間違いをすることはあります。ただし、誤動作した場合は計算間違い以上の状況・・・・停止とか固まる(無反応)とかになることが多いですが。
No.4
- 回答日時:
計算間違いしますよ。
桁数制限で、難を逃れるように出来ています。
関数電卓や、表計算ソフトは、プログラムが修正されており、計算間違いが起こらないようになっています。
エクセルの場合数年前に特定の計算で誤差が出ることが判明(悪評が立った)して、マイクロソフトが修正しました。
ひょっとしたら、西暦2000年あたりの日付を用いれば、ミスを起こすかも?!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
変化させるセルが変化しない
-
排他的論理和 BCC(水平パリテ...
-
バッチファイルでウインドウを...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
ExcelのマクロVBA動作を軽くす...
-
VBAで関数をつくる
-
CとFORTRANの計算速度はどちら...
-
VBAでの勤務時間計算
-
PHPとJavaでSHA256の結果を同じ...
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
モジュロ
-
VBでReplace
-
継承元と継承先での変数
-
計算量の少ないn乗根の求め方
-
CRC8を教えてください
おすすめ情報