- ベストアンサー
単純な算数の問題です。
単純な算数の問題です。 どうでもいいようなバカな問題に悩んでいます。 10/3*3 言葉で言うなら「10わる3かける3」 です。 これって、数学の規則どおりに計算すると、 10? または9.999・・・(循環) どちらが正解なのでしょうか? 面白半分にですが、携帯電話の電卓を使って左から順番に押していくと、 10になる機種と9.999・・・ になる機種と二通りありました。 10になった携帯を眺めて「どうやってんだろう?」 と悩んだりしています。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No3です。 ご丁寧なお礼、ありがとうございます。 「9.999・・・(循環)と10は同じものなので」 これが、どちらが正解なのでしょうという疑問の回答なのですが、 もう少し詳しく書いてみます。 循環小数を分数に変換するには、以下の方法を使います。 3.333・・・(循環)の場合: これを10倍したものから、もとの数を引きます。 33.333・・・ - 3.333・・・ = 30 これはもとの数の9倍にあたるので、もとの数は30/9=10/3です。 同様に、 9.999・・・(循環)の場合: これを10倍したものから、もとの数を引きます。 99.999・・・ - 9.999・・・ = 90 これはもとの数の9倍にあたるので、もとの数は90/9=10です。 ということで、9.999・・・(循環)=10です。 そして、No1. のお礼に書かれてある1)、2)は両方とも正解、 というか、同じことを言っているのがご理解できると思います。
その他の回答 (4)
- DIooggooID
- ベストアンサー率27% (1730/6405)
こちらを、ご一読なされると良いのかなぁと思ったしだいです。 http://ja.wikipedia.org/wiki/0.999...
- petertalk
- ベストアンサー率69% (156/225)
面白い質問ですね。 数学的には、9.999・・・(循環)と10は同じものなので、どちらも正解です。 とはいえ、表示枠いっぱいに9を並べたところで、循環小数を表わしたことにはならないので、 電卓としては、10と表示しなければ間違いです。 また、実際にいくつかの機種の電卓機能を試して、違いがあったというのは興味深いですね。 推測になりますが、この差は、直前の演算結果の内部の保持形式の違いによるものと思われます。 10/3 の時点で、3.333・・・(有限)と保持すれば、3倍すれば9.999・・・(有限)になるし、 例えば、分子10、分母3のように、分数で保持すれば、3倍すれば10になります。 このように、表示形式とは別に内部の保持形式を用意することで、 除算の切捨てによる誤差は、簡単に減らせます。 式を最初から全部記憶しておくような方式は採用しないでしょう。 計算が=なしでどこまで続くかわからないですから。
お礼
どうもありがとうございます。 お礼の意味を含めましてANO1さんに返信させて頂きましたので、よろしければそちらもご蘭頂ければと思います。 「9.999・・・(循環)と10は同じものなので」 ??? これでまた悩みが増えてしまいました(笑 某有名大学の難関学部卒業の友人曰く 「3分割したものを3倍したら元に戻るでしょ!」 という答えが返ってきたのですが100%スッキリとはしませんでした・・・トホホです。
- tanpopotanpopo
- ベストアンサー率28% (226/800)
あははは(^^)。面白いですね~。 数学って、こんなことがあるから楽しいですね。 でも、悩み事は楽しく解決しましょうね。 >数学の規則どおりに・・・ 規則どおりだと10になると思います。3.333・・・の3倍は、規則どおりだと10ですよ。 循環の3.333・・・は10わる3だから。 電卓って、実はコンピューターなんです。その昔、インテル社が電卓を開発している時、いろんな機能をどんどんつけようとしたらそれまでの単純なICでは無理・・・って事でプログラムを自由に作れるICを開発しました。 そうしたら、それが今で言うCPUだったんです。開発はハードからソフトの技術に変わっていったんです。 そのプログラムの作り方が、開発者によって違うものになりました。 10になるのは、10÷3をひとつのメモリに入れ、3をそのメモリの内容と乗算する・・・としたと思います。 9.999・・・になるのは、10÷3の”答え”を、表示できる範囲内で四捨五入してひとつのメモリに入れ、3をその四捨五入した値と乗算したと思います。 10になるのは、先読みではなく後残しと言った感じです。次に=を押すのか他の計算をまだ続けるのかわからないから、とりあえず残して後でまとめて計算したほうが消費電力が少ない等のメリットがあると考えたんでしょう。(携帯の売りは、省エネもありますから) 9.999・・・になるのは、ひとつづつ計算するプログラムのようですね。試しに、3+4*5と操作してみてください。数学上は4*5を先に行うから3+20になり、答えは23です。その電卓は35になりませんか? 横道にそれますが、’人間の頭脳=紙と鉛筆’を超える計算機は、まだ当分現れないと思います。
お礼
どうもありがとうございます。 お礼の意味を含めましてANO1さんに返信させて頂きましたので、よろしければそちらもご蘭頂ければと思います。 結局いまだにその計算規則がわかっていないのですが・・・(泣
- DIooggooID
- ベストアンサー率27% (1730/6405)
どのように計算しても、 こたえは 10です。 もし仮に、 10より小さくなるような場合は、 有効桁数を適当なところで、制限してしまって、 ある値以降の数値の切捨てをしています。
お礼
どうもありがとうございます。 残念ながら”どのように計算しても”というところが私の不徳の至りで理解できませんでした。 質問のしかたもはっきりとしなかった私がいけませんでした。 結局携帯電話の電卓の結果はどっちでもよくて、わからなかったところはというと、 掛け算と割り算の混在した項について数学の計算ルールとしては、 1)左から順に計算しろ(だったら9.999・・・が正解?) 2)どっちからでもいい (だったら10も9.999・・・もどっちも正解?) 3)ひとつの項について計算順序みたいな時系列を意識してはいけない、例えば1)も2)もダメで同時に存在すべきものとして計算しろ(出来るだけ分数の計式に変換してから計算しろみたいな感じ) いったいどれが数学上の計算規則としての正解なのでしょうか?というのが真の悩みなのでした。 小学校で教えられた記憶からすると、確か1)だった気がします。 だとすると、質問の答えは9.999・・・であって、問題式をちょこっとイタズラした 10-10/3*3 の答えはというと、 1/∞ (∞は無限大) になるのかな? とも考えました。 そしてこれは0に限りなく近い最小の数ではないか、とも考えました。 でも分数式にしてしまうと、これは0になってしまうし、いったい計算規則ってどうなってるんでしょうか? という疑問でした。 もともとの発端は消費税計算からでした。 消費税(国税)の計算式は小数式なのに、地方消費税計算はというと分数式になってます。 これがコンピュータの世界では結構やっかいで、小数にしても分数にしても10進数では余りのないはずの例えば0.05なんていう数値は、2進数では循環してしまいます。 そこでCOBOLでは内部で整数化しているとマニュアルにも書いてありました。 cでは安易に計算式どおりにプログラミングして申請すると誤差が大き過ぎるとかで国税局から怒られちゃうかもですね。 友人などは割り算はなるべく一番最後に持ってくるようプログラミングして出来るだけ誤差を少なくしようと苦労しているのを見て、「それって、数学のルール(消費税の計算式)に反していないか?」という疑問が沸いてきたのです。 せっかく回答頂きましたところですが、いまだスッキリしていないのが本心です。 本件はもう少し追いかけてみたいと思います。 お時間を割いて回答頂きました全ての方にも、この場を借りまして併せてお礼申し上げます。
お礼
ANo.3様 目からうろこです。 思い出しました。循環小数を分数に直すのを習いました。 分数に直した時に9.999・・・のようにたまたま割り切れる数になる場合があるので、 数学上での答えはというと、9.999・・・(循環)でも、あるいは 10 でも、同値なんだからどっちでもいいということなんですね。 コンピュータのプログラミングとしては、計算途中で循環するかしないかの判断はどうする?という疑問もついてきますが、だいたいの近似値が出れば世の中なんとかなりそうなので、これ以上追求するのはやめときます。 また、ある有名私立中学の入試問題ではえらく長い多項(12.5、1.25、0.125とかが入り混じった乗除算)がありました。全部125に置き換えるか、または1/8のn培に置き換える能力があるかどうかを問いているものでした。正直に左から計算した結果、例えば9.999・・・(循環)って解答したら得点をもらえるかどうかはわかりませんが(笑 それにしても大変ご丁寧な解説ありがとうございました。 重ねて御礼申し上げます。