ページ 11

何故 0 で割ると計算出来ないの?

Posted: 2009年10月13日(火) 16:47
by ホワイト
数字をゼロでわるのはなぜいけないのですか?

(管理人によりタイトルが変更されました)

Re:無題

Posted: 2009年10月13日(火) 16:49
by バグ

Re:無題

Posted: 2009年10月13日(火) 17:22
by softya
算数で習ったはずですが。
算数的に簡単に言うと、物を0個には分割できないんで答えが無いってことです。
ヨウカンを3人で分けましょうって出来るけど、ヨウカンを0人で分けましょうって意味が分からないでしょう?
答えが無い計算は、エラーにするしかないってのが今のコンピュータの考え方です。

Re:回答

Posted: 2009年10月14日(水) 13:49
by イーグル
皿にヨウカンが、3つあります。0にんでわけます。
ヨウカンは誰のものでもありません。
ということでどうでしょう。

Re:回答

Posted: 2009年10月14日(水) 14:16
by softya
>皿にヨウカンが、3つあります。0にんでわけます。
>ヨウカンは誰のものでもありません。
>ということでどうでしょう。

誰のものでもないってことは、分けるって目的から既に逸脱してると思いますが。

Re:回答

Posted: 2009年10月14日(水) 14:19
by
個人的な解釈ですが…

私も ヨウカン3つを0人で分ける=誰にも分けない→そのままの状態にしておく だと思います。
しかし、C言語ではプログラムによって一意な命令を与えなければいけません。
Youkan を X で割りなさい と命令すれば、Xが100でも0でも同様に割ろうとします。

一行目の「そのままの状態に…」はあくまで、
「0で分けるのだから」という条件を解釈した上での、言わば特別な行動です。

そのため、プログラムにも「Xが0ならそのままにしておけ」という命令を追加したり、
そもそも0で割らないようにするのだと思います。

Re:回答

Posted: 2009年10月14日(水) 14:46
by たかぎ
> 数字をゼロでわるのはなぜいけないのですか?

数字(という記号)を割るというのが何を意図しているのかわかりませんが...

数をゼロで割るということであれば、数学上の設定しだいでは可能です。
たとえば、仮に 1/0 を z という記号で表すと決め、あたかも複素数のように、それを用いた体系を定義すれば済むことです。

質問内容からは、数学の話なのか、プログラミングの話なのか、それ以外なのか判断がつきません(添付ファイルを見ても意図がわかりません)ので、一般的な話しかできません。

Re:回答

Posted: 2009年10月14日(水) 17:50
by sizuma
昔、頭のいい人が0ってものを考え出して、
またある人が
「0で割り算することは出来ない」
と決まりを定めた

からでは?

Cの言語設計したひとが、0割算はエラーとしたから、Cではエラーになるので。
他の言語では0で割ったら0になる、とかいう設計もありましたよ。

Re:回答

Posted: 2009年10月14日(水) 18:36
by たかぎ
> Cの言語設計したひとが、0割算はエラーとしたから、Cではエラーになるので。

/演算子と%演算子の第2オペランドが0の場合の動作は未定義です。エラーになるとは限りません。
例えば、多くの処理系では、1.0/0.0は無限大になります。

Re:回答

Posted: 2009年10月14日(水) 20:05
by Dixq (管理人)
大学受験の時、ある計算をしていて、こんな結果になりました。
確か数IIIの極限の計算をしていた時でしょうか?
自分としてはこの考え方が一番しっくりきます。

2をxで割った数がyだとしましょう。

2/x = y

両辺にxをかけると

2 = xy

になりますよね?この時、もしx=0ならば、yに何を入れたら式を満たすでしょうか?

2 = 0*y

これですね。
0って何をかけても必ず0になる数値です。
ところが、0に何をかけたら2になりますか?
と聞いているのです。ここで矛盾が生まれますよね?
つまり式を満たさない、計算できない値なのです。

Re:回答

Posted: 2009年10月14日(水) 20:30
by Dixq (管理人)
>「0で割り算することは出来ない」と決まりを定めたからでは?

誰かが定めたからそうなったわけではなく、数学的に計算上そうなるからだと思います。
もう少し余計な話をしてみます。

0 ÷ 2 って「0」ですよね?
でも
2 ÷ 0 って「値なし」です。何故かというと、上の式も先ほどの式に代入すればわかります。

x/2 = y

両辺に2をかけて

x = 2y

x=0の時

0 = 2y

この時yに何を入れたら式を満たしますか?と聞かれたらy=0ですよね?
ですから、こちらには答えがちゃんとあるわけです。
では、

0÷2は「0」だということがわかりました。
2÷0は「値なし」だということがわかりました。
では

0÷0はどうなるんだ?

と思いますよね。結果どちらになるのでしょう。
これも先ほどと同じ式に当てはめてみます。

x/y = a

という式があったとし、両辺にyをかけます。

x = ay

になりました。ここで、x=0,y=0を代入してみましょう。

0 = a*0

この式を満たすaの値は何ですか?
0は何をかけても0になります。
つまり、aに何が入っても式を満たします。

つまり答えは・・・・「なんでもいい」ということになります。
嘘みたいな話ですが、大学受験に問題が出たらそう書いて大丈夫です(ナンデモイイとは書かず、「全ての数」みたいな書き方になるでしょうけど)。
まとめると

0÷2は 0
2÷0は 値なし
0÷0は ナンデモイイ

ということになります。

Re:回答

Posted: 2009年10月14日(水) 20:59
by lbfuvab
定義の仕様がないので手っ取り早く「それはタブー」としただけです。

説明としては
10 / 1 = 10
10 / 0.1 = 100
10 / 0.01 = 1000
と分母を正の数を取りながら0に近づけると、どんどん大きくなります ・・・①

ところが

10 / (-1) = -10
10 / (-0.1) = -100
10 / (-0.01) = -1000

と分母を負の数を取りながら0に近づけると、どんどん小さくなります ・・・②

①、②よって0で割った時は定義できないのです。

何故 0 で割ると計算出来ないの?

Posted: 2009年10月15日(木) 12:46
by ホワイト
みなさん詳しく教えてくださってありがとうございます。

あと、間違えてファイルを添付してしまったので、混乱させてしまいすいませんでした

Re:何故 0 で割ると計算出来ないの?

Posted: 2009年10月15日(木) 14:49
by parapara
高校の範囲だと、理解は出来ません。lim→+-0の話が近いですが-∞+∞
大学の範囲で中堅以下は飛ばされてしまうことが多いい解析学の中のεで
無限と0について書かれています。

Re:何故 0 で割ると計算出来ないの?

Posted: 2009年10月15日(木) 18:20
by たいちう
> 誰かが定めたからそうなったわけではなく、
> 数学的に計算上そうなるからだと思います。

私たちにとって常識的な「数学的な計算」の体系も、
誰かが定めたものです。
他の体系と比較して圧倒的にポピュラーなので、
普段は意識すらしませんけど。

0での除算を定義できる体系もあったはずです。