Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Why can't we divide by zero? (www.math.utah.edu) similar stories update story
37 points by jwilliams | karma 5438 | avg karma 3.27 2008-09-28 16:42:25 | hide | past | favorite | 52 comments



view as:

because the math police will come after us.

Suppose 5/0 = infinity. What does it buy you?

At the very least, one would expect that 5/0 = infinity implies that 5 = 0 * infinity, but that is not the case. And if you insist that it is, does 4/0 = infinity then imply that 4 = 0 * infinity, and hence 4 = 5?


Infinity is not a number... its a concept.

Say you were to count every integer, you would count to infinity. Now what if you were to count every number between 0 and 1? Would it still be infinity?

I've always thought in degrees of infinity, but either way its still not a number.

If you kept the degrees of infinity separate, you could divide 5 by zero and it would not be the same as dividing 4 by zero.

If you wanted to play with limits, you could say the limit of 5/x as x approaches 0 is infinity, but we don't really have a name for what x/0 would be. Someone did come up with nullity, but that's not good enough.

Plus, you can't have Zero of something. Having implies a positive net, thus it's not correct to say that you have zero of something... you could say you don't have something, but they're semantically different. Zero is just another concept.


Take a look at Cantor's work, if you're interested in this stuff.

The number of integers is known as a countable infinity.

The number of numbers between 0 and 1 is called an uncountable infinity.

The proof that these are not the same (Cantor's diagonalization argument) is my favorite proof - it's really neat. It's quite clear and maybe even obvious in retrospect (I like to explain it to friends who are curious about higher mathematics), but probably not something you would have come up with if you weren't Cantor!

You can ask if there's an infinity between these two, and that's actually unprovable. You can prove that, without adding more axioms to mathematics, it's impossible to prove one way or another whether there's an infinity between them.

Sometimes I really miss this stuff.


I never really accepted Cantor's idea. First off if you have a sequence ...1 and ...0 at infinity they are the same number so saying you flip the last bit does not demonstrate that the above number is not in your set.

Secondly, if you take the Integer set and say N = the sum of all numbers > 0 you have counted, then you will never reach N as you go to infinity.

PS: This is why I went to CS there is no way to verify that a given proof or program is accurate but that does not stop a program from being useful.

Edit: Restating the second argument: Start with all zero's, count in binary from the left, 1000.. > 0100.. > 1100.. > ... and the diagonal becomes 1111111 which is basically just a higher order of infinity like N = the sum of all prior numbers.


I never really accepted Cantor's idea. First off if you have a sequence ...1 and ...0 at infinity they are the same number so saying you flip the last bit does not demonstrate that the above number is not in your set.

It doesn't work like that. You want to show that you can't enumerate all reals, so what do you do? You start enumerating all reals. Then you build a new number, whose Nth bit is different from the Nth bit of the Nth real number. You can do that because you have enumerated them, and we have never talked about an infinite N so we are never flipping the last bit of the last number nor anything similar. We are only flipping the Nth bit of the Nth number. Number 819439243? We flip the 819439243th bit. That's all we do.

What do you do then? Well, you compare that new number you created, with the first number, the second number, and so on. And you see that this number is different to all the other numbers.

What does it mean? That it doesn't matter what your enumeration scheme is, there is at least one number that will always be out of your enumeration scheme, and so your enumeration scheme will fail (so this is an absurd also, as we were supposing that this specific enumeration scheme -that could be any enum scheme- was complete). So you don't have as many integers as reals, so QED.

Secondly, if you take the Integer set and say N = the sum of all numbers > 0 you have counted, then you will never reach N as you go to infinity.

As you see, it doens't matter, as in this proof you never need to do the sum of all numbers.


Countability is considered a one-to-one correspondence with the infinite set of natural numbers.

Well let's count the natural numbers in binary, ..0000, ..0001, ..0010, ..0011, etc.

Now take the first digit of the first number and flip it,1 and the send digit of the second number and flip it, 1, etc. This is 2^x - 1. Is it countable because the natural numbers are countable? It's the same type of number you created on Cantor's diagonal. But it's never in the set you have counted. However, the same thing is true of x + 1.

The problem when constructing such numbers is there is not a final number in the set. So saying go to Infinity and add one or take 2 to the power of that and subtract one has no meaning.

PS: I think people don't equate them because they assume there is a difference between making a number larger and making a fraction more precise. So, 0.1, 0.11, 0.111, 0.1111 means something different than 1, 11, 111, 1111 etc.


You aren't undestanding the proof well; the proof isn't flawed. The best way to see it is to read it on a math book with full symbols and so on. Then you can see that there is no flaw, as every step follows from the previous one and that there is no philosophical reasoning about it, only maths.

I think the problem with how you are understanding it is that you think that your enumeration is finite at any time. That's not true.

Let's suppose we are only wanting to enumerate numbers between 0 and 1. So, you have to enumerate them like this:

0 -> some real

1 -> some real

...

n -> some real

for all naturals, so that you have infinite reals in your enumeration scheme. Now, you build your new real number, let's call it R. R is such that its Nth digit after the point is different than the Nth digit after the point of the Nth number. Let's suppose our procedure goes like this:

0 -> 0.1

1 -> 0.11111

2 -> 0.0001

3 -> 0.10101010101010....

4 -> 0.111011

What is R? R is a real number. It has a well-defined value for every one of its digits, so why wouldn't it be a real number? So we have, a real number between 0 and 1, and an infinite enumeration of reals.

Let's see the value of R:

0 -> 0.1

1 -> 0.11111

2 -> 0.0001

3 -> 0.10101010101010....

4 -> 0.111011

so R is:

0.00110 and so on.

Is R 0.00110? R has more digits, is more like 0.00110abcdefg with abcdefg being some more digits we should calculate. R has infinite digits, not only those, and we could calculate all of them by a finite procedure, so we aren't doing anything magical here. What those digits' value is we don't mind, as you'll see.

What we mind about is this: R is different to the first number. How can we know? Because by construction, the first digit of R is different from the first digit of the first number. Now, let's see if R is in our countable set. If R was in our countable set, R would be in a place, for example in the position M of the enumeration. Now, in the position M of the enumeration we have the Mth number, and by construction, the Mth number is different to the R number, as they have at least a digit that is different between them (and we can even say: the Mth digit is different between them).

So, how could R be in the enumeration scheme if we can't place it at any M? Now, that's why we have an absurd here, and that's why every enumeration scheme for reals will be incomplete.

I wish this solves your doubts about it. Please only focus on the mathematical demonstration, we aren't saying nothing about countability, infinities, or very large numbers excepting when we have to.


Let's use your approach to define every other number the other uses the classic counting method.

Every other number will be the same as your number for N-1 digits. So at infinity your number is the same except for the last digit but two real numbers N and N + 1/infinity are the same.


Let's see if I understand it well:

You define a numbering scheme that goes like this:

- the first number is, say, 0

- the Nth number is so that, its Mth digit for M<N is different to the Mth digit in M

Do I understand you well?


If that's what you mean, then I define a new number, R, that is different to all numbers in the sequence. It's defined as usual.

How do I know that this R number is different to all numbers in your sequence? Well, I can take any M number from your sequence and compare it to R. However, the Mth number is different to R in its Mth digit.

About the limit in the infinite... it doesn't matter at all... You can't take a M value that's infinite, as we have only numbers that have a finite size (there are infinite numbers with finite size, that's the trick on this; there aren't integers with an infinite size for example). And if you take an M that's finite, then you have to say that such Mth element is different to my R.

And so on for any sequence you can build (even for sequences you can't build, like random sequences).

Edit: possibly the big thing that's confusing you is that you can't have an infinite number, even if there are infinite numbers. So, taking the limit of a function is something that has a very restrict meaning that is actually not directly related to the concept of infinity. If you check the definition of limit it doesn't talk about infinities but about deltas, and if you use such definition your proposed problem stops being a problem. http://en.wikipedia.org/wiki/Limit_(mathematics)#Formal_definition


possibly the big thing that's confusing you is that you can't have an infinite number, even if there are infinite numbers

Yep, that's new to me. So one followed by infinite zeros is not a rational number number. I have read otherwise, but I assume it was a sloppy definition of infinity that works when your not talking about countable numbers.


Real numbers can have infinite digits, but only after the point, such as pi. The size of any number, even if it's real, can't be infinitely big (a real is between two integer numbers, and integer numbers have to be finite). So yes, 1000(...)00000 with infinite 0s doesn't exist as a number.

Nice conversation anyway.


I took a couple of numerical analysis classes from this guy (Peter Alfeld) at the University of Utah and he is a very entertaining teacher.

The real number system is discontinuous over division.

Interestingly enough, you can divide by zero. But if you do, then you can't define integers.


For more on this, take a look at the http://en.wikipedia.org/wiki/Riemann_sphere

How does this relate to the original comment? What I want to know is how you can divide by 0, so that then you can't define integers.

I think DanielBMarkham is being rather loose with terminology here (or perhaps talking about something other than the Riemann sphere, but it sounds like that's what he's talking about).

The problem isn't that you "can't define integers" when you introduce an infinity. The problem is (as the article I linked to says) the resulting system does not form a field (i.e. the usual arithmetic operations don't behave like you would expect anymore). Follow the link to fields if you want to know more.


Oh, I thought he was saying something like you could have real numbers with division by zero as far as you didn't want to have a special class of numbers, the integer numbers. So I was very curious about that, as I studied fields and all that a long while ago and that sounded like a rare concept.

Wait, but the integers don't form a field anyway (not closed under division).

They form a field under multiplication and addition.

Not quite: The structure is called a "ring" when you don't have division.

http://en.wikipedia.org/wiki/Ring_%28mathematics%29


"Mostly" true, but if you accept this statement as-is, it's a little misleading.

The integers (with standard addition/multiplication operators) are indeed a ring, but a ring is a very loose definition that does not reveal say too much about the integers themselves. There are several stronger algebraic structures than integers that don't have division.

The integers themselves are an example of a general algebraic structure called a "domain," (or, more commonly, "integral domain") which is a commutative ring (that is, commutative under multiplication as well), has distinct additive and multiplicative identities, and has the property that if a and b are integers and a*b = 0, then either a or b must be zero.

When mathematicians in the past were studying divisibility in the integers, they have generally studied domains, because they essentially isolate the division property among different operations. Even an integral domain is not the strongest structure you can place on integers. There are even more specific subclasses of integral domains that the integers fall under, but that's best left for a class on algebraic structures and not a comment on HN.


Good point, I had forgotten about IDs.

Thanks for a very insightful comment.

Sure you can. The answer is called nullity.

I'm still not convinced that you can't just say that x/0 equals infinity. Certainly, infinity is not a number..but it has the same properties as a transcendental number in the sense that it is impossible to describe it accurately with finitely many digits. You wouldn't be able to use this definition to build other theories, but it would be nice to have a settled definition. Saying that x/0 is undefined still seems to me like a bit of a hack.

I agree that 0/0 should be undefined. There are infinitely many possibilities for what it could be, depending on the context.


Infinity is a much studied concept in mathematics; the problem is not that we don't know what infinity is but that we know it's not part of the set of integer numbers, real numbers, etc. But there are many ways to work with infinities, and even to include it in the number sets (for example, in the case of hyper-reals).

Is it at least true that (0 < |0/0| < Infinity); that is, that 0/0 is a finite, non-zero number?

No. 0/0 is completely undefined. For example, consider limit as x approaches 0 of (-x)/x. This approaches (-0)/0 = 0/0 but simplifying the limit given an answer of -1. So 0/0 is completely dependent on the characteristics of the convergence and had no meaning in isolation. In fact, the field of real (and complex) numbers does not even include 0 in the multiplicative group. Therefore, dividing by 0 is nonsensical as it has no inverse as it is not in the multiplicative field. According to the basic axioms of groups theory, given a field F with a the identity of the additive group in the field and b some element of the multiplicative group, it can be proven that mul(a,b) = a where mul is the multiplication operation. This explains why 0 times any other number is 0. If you would like a copy of the proof, just drop me an email.

Sorry for the rant, math major.


I'd love to see the proof. But you did not post your email address. Could you send it to mine?

oops. Sorry about that. Fixed.

PS. Your email address is not posted either.


Isn't it something like this?

0=a-a, for all a

(where a-a is actually, a+(-a))

so: mul(b,0)=mul(b,(a-a))=mul(b,a)-mul(b,a)=z-z=0


pretty much.


>Certainly, infinity is not a number..but it has the same properties as a transcendental number in the sense that it is impossible to describe it accurately with finitely many digits.

But other transcendental numbers can be used like regular numbers - infinity can not, I thought? Or at least not as easily as those other numbers are.


I'm still not convinced that you can't just say that x/0 equals infinity.

Certainly, there's nothing to stop you from saying that. We could quite easily define a number called Infinity (or, say, Frank) such that x/0 = Frank, the same way we defined a number i such that sqrt(-1) = i. People have thought about this for centuries, I'm sure, but the reason that it hasn't taken off the way i has is that positing the existence of "i" gets you a whole lot of new and useful mathematics (e.g. a new field of complex numbers which is closed under arbitrary roots) whereas positing the existence of Frank doesn't buy you much except trouble.

For instance, consider our new number system consisting of the reals plus Frank. We'll have to define operations on Frank now. Clearly, Frank + Frank = Frank and Frank * Frank = Frank. But what about Frank - Frank and Frank/Frank? You can't define them as 0 and 1 respectively, or else you find yourself with proofs like this:

Frank = Frank + Frank

Frank/Frank = Frank/Frank + Frank/Frank

1 = 2

which is undesirable. So you've still got undefined numbers in your number system, and your number system no longer has lots of the nice properties that you get when you have a field.

Also, Frank doesn't share all that many of the properties that are usually associated with what we now know about infinities -- e.g. the idea that there are "different sizes" of infinite sets which can't be mapped onto one another.


I explained this as: Take a number, e.g. 5. Then take a small number, like 0.1. Add 0.1 to itself, and repeat, you'll eventually reach 5.

But if you take 0, and keep adding 0 to it, you'll never reach 5. So no amount of 0's will go in to 5.

That logic breaks down if you do 0/0 though. My students never picked up on that one but they believed me!


Picturing the graphs of y = 1/x and y = cx/x worked for me. You can make the "reasonable" value at x=0 be Inf, -Inf, or anything in between.

There was a professor who tried to get around this a couple years ago by defining a special value called "nullity."

http://en.wikipedia.org/wiki/James_Anderson_%28computer_scie...


Which, when you look at it, is just another name for "undefined". It didn't solve anything, and seemed to me like a bad troll on the mathematical community.

Indeed. A little knowledge is a dangerous thing.

I think of it like that blank Scrabble piece - it can be anything until you define what it is, then it has to be that value from now on (in the calculation).

You just need to define the undefinable.

http://en.wikipedia.org/wiki/Hyperreal_number


Also, the naive perspective on the .999999999999_=1 debate happens because some people intuit the hyperreals. It's in the hyperreal number system that there can be an infinitely small difference between .99_ and 1, because that infinitesimal is defined to exist where it isn't defined in the real number system.

Ok, so why does 2+2=4?

Because if I had two apples and you gave me two oranges, I would have 4 fruits. If I asked you how many pair groups of apples you had, you'd say 2. If I asked you how many groups of no apples you had, you are free to choose any number, depending on how imaginative you were.

> Why can't we divide by zero?

By definition (of the division operation).


Because 0 is not a real number like the rest. It's like having a long row of cowboy boots and a pair of highheels in the middle. 0 is different from the rest.

A little off topic, but interesting practice for 0.

What are the mathematical ramifications of 0% capital reserves?

This is a good chance to remind the readers that the bailout bill contains a clause to accelerate a 2006 law to 10/01/2008, which allows the Federal Reserve to set reserve requirements for a bank to 0%.


I don't care how your define 1/0 as long as my program keeps running. I always found it to be inexcusable that a run-time environment would halt a program that tried to do N/0 as if it allowing it would cause a complete and utter loss of data and property. Is returning NaN, null, or undefined instead really so hard? Lazy frigging compilers, I hate you!

Legal | privacy