• 締切済み

計算機はなぜ計算間違いをしないか

電卓や表計算ソフトなどの計算機はなぜ計算間違いをすることがないのでしょうか?

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答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判定できるようの回路にする、とか) ・出すまでに様々な方法でチェックしている(出荷前のテストとか) があるので、一般ユーザーが間違える計算機を持っていることはまずありません。

bensharman
質問者

お礼

ご回答ありがとうございます。

回答No.10

物理的に電子の動きを制御しているからでしょう。 情報を電子の動きであらわすものが計算機ですから ちゅうびんぐまちーん 野肥満型コンピュータがキーワードですな

bensharman
質問者

お礼

ご回答ありがとうございます。

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.9

それでは逆にお伺いします。 人間は何故間違いをするのでしょうか? それが理解でき、コンピューターの動きを少しでも理解できればおのずと答えは出てきます。

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

人間は計算の途中で寸前の計算を忘れてしまうというようなことがあるので今まさにやっている計算を間違えてしまうことがある、というようなことでしょうか? しかし計算機は後の計算に必要な計算結果などはメモリに残しておくので計算間違いをすることがない、というようなことでしょうか? そうであるとするならば、計算機が残しておかなくてはいけない計算結果をメモリに残すのを忘れてしまって後の計算を間違えてしまうというようなことが起きないのはなぜでしょうか?

noname#144057
noname#144057
回答No.8

「計算機が間違う」の定義を明確にして貰って良いですか?

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

数学の公理、定義に従って計算した場合に導かれる計算結果とは異なる計算結果を出力してしまうことがある。 例 1足す1と入力したのに2以外を出力してしまうことがある。

  • Microstar
  • ベストアンサー率21% (289/1367)
回答No.7

間違いの他に、計算していくうえでどうしても誤差が発生することがあります。 例えば、小数点以下の数字が終わらない場合は、どうしてもある位置で切り捨てるか四捨五入しますね。両方計算してみると、ずれる場合があります。その結果をどう見るかは計算させる人間側の問題です。

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

同じように処理する場合同じ計算であれば誤差も毎回同じでしょうか?

回答No.6

 計算間違いしないように作ってあるからです。  ところで、PCのアクセサリーの電卓ですが、  普通の電卓では  1+2*3=とすると9と表示します。  関数電卓に変更して  1+2*3=とすると7と表示します。  そうなる様に作ってあるからです。

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

計算間違いしないように作れるのはなぜでしょうか?

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.5

「間違う」という能力が無いためですね。 もちろん、計算間違いをするようにプログラムされていれば、プログラム通りに計算間違いしますが。 実際には、温度上昇その他の原因で誤動作して計算間違いをすることはあります。ただし、誤動作した場合は計算間違い以上の状況・・・・停止とか固まる(無反応)とかになることが多いですが。

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

計算機がプログラム通りにしか動作しないのはなぜでしょうか? 温度上昇などした場合誤動作するのはなぜでしょうか?

  • mimazoku_2
  • ベストアンサー率20% (1845/8841)
回答No.4

計算間違いしますよ。 桁数制限で、難を逃れるように出来ています。 関数電卓や、表計算ソフトは、プログラムが修正されており、計算間違いが起こらないようになっています。 エクセルの場合数年前に特定の計算で誤差が出ることが判明(悪評が立った)して、マイクロソフトが修正しました。 ひょっとしたら、西暦2000年あたりの日付を用いれば、ミスを起こすかも?!

bensharman
質問者

お礼

ご回答ありがとうございます。

bensharman
質問者

補足

この場合の計算間違いとは同じ入力をしたにもかかわらず毎回異なる出力をするということでしょうか?

noname#144057
noname#144057
回答No.3

>しょせん人間が作ったものに過ぎません。 人間は、必ず間違いを犯します。 この場合、間違えたのは人間であって、計算機ではありません。

bensharman
質問者

お礼

ご回答ありがとうございます。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

>計算機はなぜ計算間違いをすることがない 必ずしもそうとは言いきれないような気がします。 電卓の回路に組み込んである計算プログラムや 表計算ソフトのプログラムは、 しょせん人間が作ったものに過ぎません。 人間は、必ず間違いを犯します。

bensharman
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • ユーティリティの計算機

    iMac G5(1.8G)、OS10.4.11ですが、アプリケーションのユーティリティフォルダにある計算機ソフトについての相談です。 計算機ソフトそのものは立ち上がるのですが、電卓の表示が出なくなってしまいました。 対処方法をご存じの方、ご教示下さい。

    • 締切済み
    • Mac
  • 大桁数の計算機ソフトってないでしょうか。

     一般にある十数桁の電卓以上の、大桁数の計算ができる電卓または計算ソフトを探しています。ご存知の方いらっしゃいませんか。それとも存在しないのでしょうか。  どなたかお教えください。

  • 計算機(電卓)はどうやって計算しているのですか?

    最近、計算というとすぐExcelを開いてしまいます。 しかし、昔は関数電卓など計算をする際には計算機が主流だったと思います。 ルート7という計算は関数電卓の内部ではどのような処理が行われ答えが表示されるのだろうかと、ふと疑問に思い質問させていただきました。 Excelでは“ ^ ”という記号が平方根の計算のための記号であり、これがコマンドとしてパソコン内部で認識され(バイナリー変換による電圧差を認識することにより)計算の結果がはじき出されていることは分かります。 どなたか、この手の事情に詳しい方がおりましたら教えてください。

  • 昔の計算機

    おじいちゃんが使っていた計算機を発見しました。 父親は捨てる気マンマンなんですが しっかり動作もして、よごれ以外は傷も少なく 昔の電卓を集めている人とかにしてみれば 貴重な品なのではないのかと思います。 インターネットで検索しても どこにもヒットしませんし 古い電卓のコレクターなんて そうそう見つかるものではないのかもしれません。 できればこの電卓の価値が知りたいと考えてますので、 古い電卓に関して何か情報のある方 教えてください。 ちなみに電卓には Sander SS-12R AC 100V 50/60Hz No 02488 SANPLAI KOGYO co,.ltd. made in japan と書かれており 母親の記憶では35年ほど前で そのときの価格は10万円ほどだったようです。

  • ファイルメーカーで計算機の作り方のサイト

    ファイルメーカーの初心者です。電卓、計算機を作る課題がでてまるっきりわからず困っています。 ファイルメーカーで計算機の作り方が載っているおすすめのサイトを教えて下さい。 かんたんなのでいいのですが手順が詳しく載っているサイトがいいです。

  • web上で使える特大計算機のあるサイトは・・

    web上で使える特大計算機のあるサイトはないでしょうか?あるいは、それができるjavascript。実際の大きめの電卓くらいのサイズがほしい。(わがままなお願いかな)

  • どの計算が一番速いか

    よくテレビで珠算、暗算日本一というのを聞きますがここで疑問ですが PCでブラインドタッチの出来る人が表計算ソフトで 電卓日本一 そろばん日本一 暗算日本一の以上の面々が競うと誰が一番速く正確に出来るか。 教えて下さい。馬鹿げたことですが、スイマン。

  • 計算結果が合わない

    下記の計算をしています(計算式=ABC/F+G(D+E) 電卓及びexcelで計算すると、結果の3,683まではあっているのですが、 下記表の4行目の結果が、電卓では、9,684、Excelで計算すると、 どうしても8,507となってしまいます。 計算式が間違っているのでしょうか?? Excel計算式 =B21*C21*D21/G21+H21*(E21+F21) 何度、電卓で計算しても、9,684となってしまいます。 よろしくお願いいたします。 A B C D E F G 結果 2.64  1312.5  511 11.49  1.5  5407  0 327 27.6  1312.5  511 11.49  1.5  5407  20 3,683 23.76 1312.5  511 11.49  1.5  5407  428 9,684

  • 計算機の使い方

    倉庫内で仕事をしています。 作業で使うケースで、6個のものが入るケースがあります。 そのケースに例えば、40個のものを入れていく作業をするとします。 結果は6ケースとあまりが4個に成ります。 あまりの個数を電卓で計算する良い方法があったら、教えて下さい。 私は40÷6=6.66666666・・・・としか出来ません。 よろしくお願いします。

  • 計算ソフトを探しています。

    例えば、(A+(B+10))÷((C+(A÷50))+B×0.5) のように、四則演算(+,-,×,÷)程度の簡単な計算ですが、 数式が長い計算を、何種類かやっています。 電卓を使ってやっていますが、式が長いので時間がかかりますし、 計算間違いをしょっちゅう、します。 そこで、 こういうような式をいくつか登録しておき、 式にA、B,C の値を代入すれば、答えが出てくる、 というような計算ソフトはないでしょうか? 「小数点以下を切り捨てる/切り捨てない」の指定ができるものが、 いいです。 できれば、無料ソフトがいいです。  OSはWindows Vista です。