Why is 0 divided by 0 an error?

前端 未结 18 788
耶瑟儿~
耶瑟儿~ 2021-02-05 07:20

I have come across this problem in a calculation I do in my code, where the divisor is 0 if the divident is 0 too. In my code I return 0 for that case. I am wondering, while div

18条回答
  •  情话喂你
    2021-02-05 08:15

    (Was inspired by Tony Breyal's rather good answer to post one of my own)

    Zero is a tricky and subtle beast - it does not conform to the usual laws of algebra as we know them.

    Zero divided by any number (except zero itself) is zero. Put more mathematically:

     0/n = 0      for all non-zero numbers n.
    

    You get into the tricky realms when you try to divide by zero itself. It's not true that a number divided by 0 is always undefined. It depends on the problem. I'm going to give you an example from calculus where the number 0/0 is defined.

    Say we have two functions, f(x) and g(x). If you take their quotient, f(x)/g(x), you get another function. Let's call this h(x).

    You can also take limits of functions. For example, the limit of a function f(x) as x goes to 2 is the value that the function gets closest to as it takes on x's that approach 2. We would write this limit as:

     lim{x->2} f(x) 
    

    This is a pretty intuitive notion. Just draw a graph of your function, and move your pencil along it. As the x values approach 2, see where the function goes.

    Now for our example. Let:

     f(x) = 2x - 2
     g(x) = x - 1
    

    and consider their quotient:

     h(x) = f(x)/g(x)
    

    What if we want the lim{x->1} h(x)? There are theorems that say that

     lim{x->1} h(x) = lim{x->1} f(x) / g(x) 
                    = (lim{x->1} f(x)) / (lim{x->1} g(x))  
                    = (lim{x->1} 2x-2) / (lim{x->1} x-1)
                    =~ [2*(1) - 2] / [(1) - 1]  # informally speaking...
                    = 0 / 0 
                      (!!!)
    

    So we now have:

     lim{x->1} h(x) = 0/0
    

    But I can employ another theorem, called l'Hopital's rule, that tells me that this limit is also equal to 2. So in this case, 0/0 = 2 (didn't I tell you it was a strange beast?)

    Here's another bit of weirdness with 0. Let's say that 0/0 followed that old algebraic rule that anything divided by itself is 1. Then you can do the following proof:

    We're given that:

     0/0 = 1
    

    Now multiply both sides by any number n.

     n * (0/0) = n * 1
    

    Simplify both sides:

     (n*0)/0 = n 
     (0/0) = n 
    

    Again, use the assumption that 0/0 = 1:

     1 = n 
    

    So we just proved that all other numbers n are equal to 1! So 0/0 can't be equal to 1.

    walks on back to her home over at mathoverflow.com

提交回复
热议问题