- ベストアンサー
このような計算はどの様にすれば、理解してもらえるのでしょうか
下記の計算は電卓やエクセルを使用しないで、説明するには、どの様にしたら良いのでしょうか。 計算式1 1581000×1365000÷1785000=1209000 計算式2 1365000÷1785000×1581000=1209000 計算式1の場合は電卓では1208999.999…になります 計算式2の場合は電卓ではエラーになります すぐに、理解してもらえる方法はないのでしょうか。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
あなたの過去の質問を拝見しました。 「なぜこのような結果になるのかを説明したい。どう説明すれば良いか?」 という質問と解釈します。よろしいですか? 計算式1 まず、エラーが出るのは計算式1の方ですね。計算機は「扱うことのできる最大値・最小値」が決まっています。それを超えてしまったから計算不能(エラー)になったのです。 1,581,000×1,365,000 = 2,158,065,000,000(13桁!) 固定小数点形式の事務用電卓なら13桁もの大きな値は扱えず、エラーになったのです。仮にあなたの電卓で液晶に表示できるだけ9を入力して下さい。それに1を足すと、エラーになりますね。それと同じ事が起きたのです。関数電卓では更に大きな値まで扱えますが、上限・下限はちゃんとあります。 計算式2 こちらでは上記のエラーはでません。先に割り算をしたので、値が大きくならずに済んだからです。さて、あなたにより納得していただくために、実際に手を動かして計算してみていただけますか? (1,365,000÷1,785,000)×1,581,000 = … いくつになりました? 1,209,000 にはなりませんよね。最初の割り算に問題があります。 1,365,000÷1,785,000 = 0.764705882352941… 手で計算したとき、あなたは小数点以下何桁まで計算しましたか?3桁?5桁?仮に20桁まで計算しても、1,209,000 にはなりませんね。何桁まで計算してもなりません。無限桁計算してやっと 1,209,000 になります。さて、計算機も無限桁までなんか計算しません。適当なところで打ち切ります。 1,365,000÷1,785,000×1,581,000 (a) = 0.7647058×1,581,000 = 1,208,999.8 (8桁電卓の場合) (b) = 0.764705882×1,581,000 = 1,208,999.999(10桁電卓の場合) 事務用電卓は、自動そろばんだと思ってほぼ間違いありません。小数点の場所が真中に固定されたそろばんです。大きいそろばんなら、扱かえる最大数も大きくなり、小数点以下の桁も増えるという仕組みです。 ちなみに、関数電卓では (c) = 0.764705882353×1,581,000 = 1,209,000 この違いは事務用電卓と関数電卓では内部形式の違いです。が、興味はありませんよね
その他の回答 (8)
- knyi
- ベストアンサー率23% (5/21)
次のようなものを思い出しました。 (10÷3)=(3.333333・・・・) 両辺に3をかけると, (10÷3)×3=(3.333333・・・・)×3 3で割って3かけるれば元の数に戻るのが当然なので,左辺は「10」。つまり, 10=(3.333333・・・・)×3 だから 10=9.999999・・・・ 不思議ですね・・。 答えになってなくてごめんなさい。
お礼
今日、この話をしてました。書き込みがあるのは今知ったのですが。 ありがとうございます。
- 2718281828
- ベストアンサー率36% (66/181)
#6です。 > この違いは事務用電卓と関数電卓では内部形式の違いです。 これは間違いです。中途半端に訂正するとかえって誤解を招くので、全部嘘ということにして下さい。申し訳ありませんでした。 で、電卓の話しになってしまいますが、内部での計算のやり方(値の内部形式、補正のかけかた等)は、メーカーや機種のランクによってまちまちのようです、としかお答えできません。興味がありましたら参考 URLをご覧下さい。
お礼
2718281828さんの説明が、全員にすぐに分かってもらえ大変助かりました。 ありがとうございます
- poosann
- ベストアンサー率21% (14/65)
m-happy-tさんすいません、的外れな答えばっかり書いてしまったようで。 #6の方が理路整然とわかりやすく回答を出していらっしゃるので、きっとこういう回答を求めてらっしゃったのかなと思いました。 おかげで私もすっきりしてよく眠れそうです(笑) 申し訳ないついでに、ちょっとこの場を貸してくださいね。 >この違いは事務用電卓と関数電卓では内部形式の違いです。が、興味はありませんよね 2718281828さん、私ちょっと興味ありますが、むずかしいですか?
お礼
関連質問をしていただき、私にとっては良い勉強になりました。
- poosann
- ベストアンサー率21% (14/65)
この質問さっきの続きですよね。 私も浮動小数点数の演算誤差のことがもっとよく知りたかったので、別で質問しました。 そちらの方に、いいサイトを紹介する回答をもらっていますので、http://pc21.nikkeibp.co.jp/pc21/special/gosa/index.shtmlそれをご覧になれば良いのではないかと思います。 多分、さっきの質問を見ていない人はこの計算の何で悩んでるのかはわからないと思います。 ちなみに家のExcelでも、電卓でも、#3のかた同様端数は出ませんでした。 電卓は、小数点以下を切り捨ての設定にしておけば問題ないかと思うのですが。
お礼
朝から、お付き合い頂ありがとうございます・ poosannさんの質問を今日、拝見して勉強してきました。
補足
ranxさん、gatyanさん、grapoさん、nabeyannさん、poosannさん。回答ありがとうございます 下記のURLが私が朝から質問したものです http://oshiete1.goo.ne.jp/kotaeru.php3?q=685942 1365000÷1785000×1581000=1209000の計算の場合は、電卓では扱えない小数点以下の数字により1208999.999…となりますよね。 poosannさんの言っている浮動小数点数の演算誤差を理解してもらえる人と理解してもらえない人がいるので、紙に計算過程を書いて理解してもらえる方法が、 知りたいのです。 つまらない、質問ですが、皆さんよろしくお願いします。
- nabeyann
- ベストアンサー率28% (49/169)
1581=3×527=3×17×31 1365=5×273=5×3×7×13 1785=5×357=5×3×119 =5×3×7×17 3×17×31×5×3×7×13 ――――――――――――― 5×3×7×17 ∴1581×1365÷1785=3×31×13 =1209
お礼
ありがとうございました 回答の内容が最初はわからず、悩んでしまいました。
- grapo
- ベストアンサー率28% (75/261)
どちらの式も私の計算機では「1209000.000…」となりましたが。。。 エクセルでも同じ結果でした。 簡単な式ですので手計算で算出してみるのが 一番の説明ではないでしょうか? 桁が大きいので面倒であれば 1581×1365÷1785=1209 1365÷1785×1581=1209 でもいいでしょう。
お礼
電卓、エクセルを使用すると、こういうことも、分からなくなるのですよね。 ありがとうございました
- gatyan
- ベストアンサー率41% (160/385)
結合則って言うんでしたっけ?(数式上は順番を入れ替えても計算結果には影響しないというやつ。) 電卓で計算するなら、下3桁がすべて0なので、 1581×1365÷1785を先に計算…(a) 1000×1000÷1000=1000…(b) なので、(a)*(b)でもいいと思いますが。
お礼
ありがとうございました
- ranx
- ベストアンサー率24% (357/1463)
計算自体は質問文のままで説明になっていると思いますし、 筆算で「すぐに理解」できると思います。 コンピュータで計算できない理由を説明したいという ことですか?
お礼
ありがとうございました。
お礼
朝、ここで質問するまでは、1209000が他人に違っていると言われ、何が正しいのかも理解できませんでした。 2718281828さんの言うことは、分かるのですが、私の説明が悪いので、全員に理解してもらえないのです。 ありがとうございます。 つまらない質問で、皆さんにご迷惑をおかけしました。