Skip to content
Little GolemMake your next move.

Zero to the power of zero

Public forum discussion.

#1 · Marius Halsor

16 May 2014

We had a discussion about this here at work, and I'd like to hear my fellow LG players view on this. Some think that 0^0 should be defined to be 1. In fact, many computer programs actually does this. Others think it should be indeterminate (NaN), since 0^a = 0 for a not 0, whereas b^0 = 1 for b not 0. And functions certainly exist such that lim (f^g) is not 1, when both lim (f) and lim (g) is 0. Does anyone here have any opinion on this? Looking around the web, it seems like there is some disagreement out there...

#2 · Tellmarch

16 May 2014

It is common to take the definition 0^0 = 1, but in no way mandatory.
It's a matter of convention. If nothing is said, 0^0 is indeterminate.

#3 · Carroll

16 May 2014

The limits of 0^(1/x) are quite interesting...

#4 · Marius Halsor

16 May 2014

I was a bit imprecise: 0^a = 0 for any a>0 only, it's inf for a Sorry about that :-)

#5 · Art Duval

16 May 2014

Most mathematicians prefer to define it as 1. I'll try to find more time later today to give several reasons why. Here's one to start, similar to a point you raised in your initial post, Marius. Consider x^y, for all values of x and y (maybe just non-negative x). Look at the limit as x and y approach 0. If you do it along the line x=0, you get a limit of 0, if you do it along the line y=0, you get 1. But if you do it along any other line (y=kx, k<>0), the limit is again 1.

More later.

#6 · Tasmanian Devil

16 May 2014

You can find functions f(x), g(x) such that f(0) = g(0) = 0 and lim_x->0 f(x)^g(x) takes any value you like, but the convention is that 0^0 = 1.

#7 · richyfourtytwo

16 May 2014

As pointed out already it's just a convention. But one that I like actually.

Without any fancy limits one could argue 0^0 must be 0, because no matter how often you multiply zero with itself, surely you can never get anything but 0. That reasoning breaks though, simply because you have to use zero zeros in the multiplication. So in computing 0^0, there is not a single 0 involved! :-)

#8 · Florian Jamain

16 May 2014

The main definition of a^b is the following:

a^b is the number of functions from a set containing b elements to a set containing a elements.

There is one function from the empty set to the empty set, the identity.

Then 0^0=1

#9 · Martyn Hamer

16 May 2014

I always thought it was undefined. 0 to any other power is 0, but any other number to the power 0 is equal to 1. It makes some sense to define it as 1, but as already pointed out you can argue the case for any answer.

#10 · ypercube

16 May 2014

One reason for choosing 1 (if one is determined to assign a value) is that it does not break the usual properties:

a^x * b^x = (a*b)^x (is ok as a^0 * 0^0 = (a*0)^0 i.e. 1*1=1)

and (for x>0):

a^x * a^y = a^(x+y) is ok as 0^x * 0^0 = 0^(x+0) i.e. 0*1=0

#11 · FatPhil

17 May 2014

If you don't take 0^0 as 1, then lots of things get really messed up.
If you do take 0^0 as 1, then lots of things make perfect sense.

Take your own pick, I know which one I prefer.

#12 · William Fraser

17 May 2014

I like 0^0 = NaN, but I'm intrigued by Florian's argument. I don't know what it means to talk about functions from the empty set (and I'm certain that I don't like the term "identity function" applied to one).

On the other hand, I find ypercube's somewhat circular, as it also works for 0^0=0:

The first one becomes (1*0 = 0) and the second becomes (0*0=0).

#13 · Tim Shih

17 May 2014

Let us attempt to find the value from calculas.

Consider f(x) = x^0, where x is a very small (but finite) number, such as 0.0000000001. The reciprocal of x, even though very large, remains finite.

Hence, df/dx = 0*x^(-1)= 0* finite number = 0. ----- Eq. (1)

By definition of a derivative, we obtain

df/dx = [ f(0+dx) - f(0)]/dx = [1 - f(0)]/dx.

According to Eq. (1), we further obtain

0 = 1 - f(0).

Consequently, f(0) = 1.

I think that the key is whether Eq. (1) is legitimate or not. If it is, then 0^0 = 1. If it is not, then inconvenience follows. Mathematicians must instruct the world when d(x^n)/dx = n*x^(n-1) is invalid. The instruction could be: x and n cannot be zero concurrently.

In other words, 0^0 = 1 if and only if d(x^n)/dx = n*x^(n-1). (I think :) )

In any case, Marius raised an interesting question. :)

#14 · mtbikesman

17 May 2014

0^0 = 0^n/o^n therefore 0^0 = 0/0

Using limits 0/0 should be 1 but it isn't.
Using second grade math if I have zero friends (which happens to be true in real life) and I want to give each of them zero cookies, how many cookies can I give each of them. There is no real answer therefore we call it undefined.

That's what I teach my students and that's what my calculator says as well.

#15 · ypercube

17 May 2014

You caught me @William ;)

Now can someone find the other flaw in my previous post?

#16 · Dustin

17 May 2014

I was taught that you can choose to use whatever value makes the most sense for the problem at hand. It is not a matter of right and wrong, just one of convenience.

#17 · Tim Shih

17 May 2014

Dear mtbikesman,

Unfortunately, I am much less intelligent than your students in southern California are.

Coould you kindly elaborate your first statement, namely, 0^0 = 0^n/o^n?

#18 · Art Duval

17 May 2014

Everyone seems to have come up with almost all the examples I had of why it makes more sense to define it to be 1 than 0. (I have one more, below.) But the bigger issue is pretty close to what Dustin and FatPhil said just above. In math, more or less, we can define things the way we like (really!) as long as we're consistent once we define it. But if you pick a "bad" definition, then you won't be able to prove any nice theorems about it. Put another way, pick your definitions to match the hypotheses or conclusions of interesting theorems so that the theorems are easier to state. (Not because we're lazy, but because that means it's an interesting condition you've identified.) In cases where there might be more than one possible good definition, then you may start your exposition with saying which definition you are choosing.

This sounds a little strange at first: Shouldn't we just think of the definition, and then apply it the same way we first thought of it forever? That might make sense if the goal of mathematics were to be rigorous just for the sake of being rigorous. But the goal is really to find interesting implications (theorems), and changing (over time) what you think of as the "right" definition lets you do this better, as you discover more interesting theorems. (Three good examples of definitions that changed over time: polyhedron, to fit Euler's formula; function; and what it means for a function to be continuous.)

At the risk of opening more cans of worms, here are two simpler examples. Draw a perfect square. Now, ask yourself, "Is this a rectangle?" When we are first learning shapes, we would say, "no, it's not a square, because it's a rectangle." But later, when you get to say high school geometry, it turns out to be much more convenient to say that square is *also* a rectangle, because then theorems about rectangles do not need to have special cases for squares. Example: If you draw two different diameters across a circle, then the 4 points where they intersect the circle form the vertices of a rectangle. If squares didn't count as rectangles, then we'd have to say "draw two different diameters *that* *are* *not* *perpendicular*".

Second simpler example: Why do we say that 1 is not prime? Because we like the Fundamental Theorem of Arithmetic which says that every number has a unique factorization into primes (unique up to not worrying about the order of the factors). If 1 were prime, then, 15 would have infinitely many factorizations: 3 x 5, 1 x 3 x 5, 1 x 1 x 3 x 5, etc.

Finally, here's my one last reason for saying 0^0=1. The binomial theorem says that (x+y)^n = sum_{i=0}^n (n choose i) x^i y^(n-i). If we put in x=0, then the theorem is only true if 0^0=1 (for the i=0 term). Also the same sort of reasoning explains why (warning: more worms) we usually take 0!=1; it makes the binomial theorem work.

#19 · Art Duval

17 May 2014

Let me try to re-typeset the binomial theorem so it's correct:

(x+y)^n^ = sum_(i=0)^n (n choose i) x^i y^(n-i)

#20 · Art Duval

17 May 2014

Let me try to re-typeset the binomial theorem so it's correct:

(x+y)^n^ = sum_(i=0..n) (n choose i) x^i^ y^(n-i)^

#21 · Art Duval

17 May 2014

Let me try to re-typeset the binomial theorem so it's correct:

(x+y)^n^ = sum_(i=0..n) (n choose i) x^i y^(n-i)

#22 · erratic

17 May 2014

There is a difference between 0! = 1 which is a convention and the arguments of Art apply and 0^0 which is an indetermination since it can take any value.

What we are representing as 0 is something that converges to 0 at some rate and both functions do not necessarily converge at the same rate.

Take for example:

lim x ^ (1/log(x))
x->0

It is a form of 0^0 and the result is e. The value of x ^ (1/log(x)) is e for all x >= 0. Of course, changing the base of the logarithm we can return any value we want.

Just like 0/0 it is indeterminate because it can take any value. These indeterminations are always treated as something reaching 0 to the power of something reaching 0 and depending on how we define "something", it can be anything, i.e. "indeterminate".

#23 · erratic

17 May 2014

(It was supposed to be)

lim x ^ (1/log(x))
x->0

(I just indented the "lim" and got the "smart" result.)

#24 · Marius Halsor

17 May 2014

I, too, think that there is a huge difference between saying that a certain function is 1 for a value where it would otherwise become 0^0, and saying that 0^0=1 in general.

1^1=1 because for ANY functions f and g, f^g = 1 if f and g is 1 (or approaches 1). This is not the case for 0^0, even though there are many cases where it "looks more like 1" than anything else. But problems arise when you DO calculate f^g, and it behaves rather nice, and approaches 2 when f and g approaches 0. And then, when f and g both ARE 0, it's suddenly 1.

#25 · mtbikesman

17 May 2014

0^n/0^n = 0^(n-n) = 0^0 which is also equal to 0/0
therefore 0^0 = 0/0

As 0/0 is undefined then so is 0^0. At least all my textbooks say so.

At least I hope they say that since I have never read any of them.

#26 · Tim Shih

18 May 2014

Dear mountain-bikes man,

Your first statement may be illegitimate.

In order for 0^n/0^n to be equal to 0^(n-n), we must multiply both numerator and denominator by 0^(-n), which is equal to either infinity or zero. Unfortunately, you should not show your students that a/b = a*infinity/(b*infinity) or a/b = a*0/(b*0).

#27 · mtbikesman

18 May 2014

0^(-n) is also undefined as it would be 1/(0^n) which would be undefined.

#29 · Dvd Avins

18 May 2014

Scanning above, I don't think anyone mentioned that lim(x->0; x^x) = 1, from either real direction. I think most any continuous expression one is likely to run into other than 0^x ( and when not specifically looking for exceptions) declaring it to be 1 will resolve the anomaly.

#30 · Marius Halsor

18 May 2014

Not true, Dvd. This actually happened to me in a real calculation, and it took a long time before I understood why I got such a weird answer. It turned out that f^g appeared in my calculation, and for some input, f and g was both 0. lim f^g was NOT 1, though, but that's the value my computer returned, rather than NaN.  The result became VERY wrong, and NaN would have made much more sense (I don't expect the computer to guess what the lim actally was, although I was able to calculate that by hand).

#31 · FatPhil

18 May 2014

In the integers, 0^0 can be determined to be 1 in order for simple assumptions that nobody wants to change to be true. (The set of functions from {} to {} is { {} }, as nearly stated above; the binomal theorem likewise; etc.) Absolutely no other definition makes sense, even that of saying it's undefined (as it's clearly possible to create a defintion that's entirely consistent and useful).

In the reals, it's more a matter of convention, but not breaking numerical equivalence with the integer case is a pretty convincing argument. Arguments based on limits I find specious in contexts like this, as there's absolutely *no* reason for behaviour of something at the limit to be related to its behaviour as you approach the limit. What's the length of an infinitesimally small-stepped staircase from (0,0) to (1,1)? All staircases have length 2 (across 1, up one), yet the limit, the diagonal, has length sqrt(2).

#32 · Dvd Avins

18 May 2014

Even in the Integer domain, 0 ^ x = 0. Having to say "except when x = 0 means that it's not "entirely consistent."

#33 · Art Duval

18 May 2014

@Dvd Avins: 1. I did mention lim (x->0) x^x.  Even more generally, lim(x->0) x^(kx).

2. No matter what, we're stuck with "not entirely consistent", because we have two "rules" (0^x=0; x^0=1) that are not consistent.  The question is which one gets the exception.

@Marius: I'm very curious to hear the application you had where you ran into a 0^0, and needed it to not be 1.  Would you be able to share it?

#34 · Marius Halsor

18 May 2014

It was ages ago, Dvd (I think more than ten years), but I'll see if I can find it. I don't remember the exact calculation now, nor what the functions f and g actually were, just that they became 0 at the same time, and that having f^g be 1 then really messed things up (oh, and that lim f^g was NOT 1).

#35 · Marius Halsor

18 May 2014

Oh, sorry, that should have been adressed to Art :-)

#36 · Hjallti

19 May 2014

This question is easy. You can only accept 0^0 as undefined. All other answers so be regarded as bad attempts to settle a unsettlable question.

#37 · FatPhil

19 May 2014

"Even in the Integer Domain, 0 ^ x = 0."

If you're predicating your argument upon a false assertion, you'll be able to conclude anything you want.

#38 · Dvd Avins

22 May 2014

OK, in the Whole Number domain, 0 ^ x = 0.

#39 · Thomas Werner

22 May 2014

Hello all, this is a very interesting discussion. Most of the common aspects are covered in http://www.askamathematician.com/2010/12/q-what-does-00-zero-raised-to-the-zeroth-power-equal-why-do-mathematicians-and-high-school-teachers-disagree/ Having a doctoral degree in matematics, I agree with the things explained in this explanation on askamathematician.com A priori 0^0 is undefined -- in the same way as 0/0 is undefined. The expression lim_{(x,y)\to(0,0)} x^y leads to different results, depending on the chosen path. Rectilinear approaches have been discussed above. The whole discussion is very similar to lim_{(x,y)\to(0,0)} x/y Linear approach from different directions can be parametrized with a real parameters r,s such that x=rt and y=st and we replace lim_{(x,y)\to(0,0)} by lim_{t\to0} rt/st As long as s is not equal to zero, we obtain the value r/s as the limit. I hope that this example could show that 0/0 can not be determined by the means of limits, i.e. x/y is not continuous in the origin (x,y)=(0,0). The function x^y has the same problems. Last comment: When you do programming with functions, you need to catch exceptional cases. Blindly calculating f(x)^g(x) is bad style -- exactly as calculating f(x)/g(x). Calculating an average by the procedure "divide the sum of all values by the number of all values" is not correct, because divisions by zero are not caught by the algorithm. Thomas

#40 · Hjallti

26 May 2014

@ Dvd Avins Only in the whole numbers excluding 0 the result of 0^x = 0 On the other hand x^0 is in the same domain 1. Thus your argument is unusable to settle this problem with a number.

#41 · CanadianAce

26 May 2014

Yeah, the main problem is that x^y has a pretty ugly discontinuity at (0,0). This leads to several reasonable definitions of 0^0, each with their applications.   Of course,  there are also nonintuitive occurances of 0^0 as well.

One major problem with defining 0^0=1 is the logical ripple effect. For instance, it would imply that

0 x infinity = 0.

Having a fixed value for 0 × infinity causes far more mathematical crisis than 0^0=1 alone.

#42 · ypercube

26 May 2014

@CanadianAce actually the 0 x InfiniteNumber can be well defined in some areas (check Surreal Numbers and Games) and the multiplication keeping its nice properties - without any conflicts at all.

#43 · CanadianAce

27 May 2014

Interesting,  but that is not the number system that all educated people learn.   It's definitely not where the calculus that is vital to our understanding of our world is defined. Besides, one can use that line of argument with just about anything.

~If we remove the cases with conflicts, then we don't have any conflicts~ yep, I agree ;).

The point is that defining any indeterminate form to be a fixed number would collapse the theoretical structure on which calculus was carefully built.

#45 · The_Burglar

27 May 2014

raising whatever to the power of zero

the whatever will cease to exist, it has no power!!!!!!

#46 · David J Bush

27 May 2014

Marius, perhaps it would help to discuss the context within which 0^0 needs to have a defined value. Is this really necessary? What is at stake? If you're asking for a definitive answer that fits all cases, you're not likely to find one.

#47 · Marius Halsor

28 May 2014

Nothing is "at stake" here. It's purely a theoretical debate that started from a discussion about whether it was a good idea or not that MatLab calculates 0^0=1. Always. (This caused some problems for me, because I had expected to get some sort of error message if this happened, and it took me a long time to figure out why I got so strange results at certain points). And so the question really was: Should 0^0 really BE defined? And I don't mean for any specific function - I actually mean 0^0 for any and all contexts.

Personally, I don't see how it can be. For certain functions, certainly. No problem to make a function and have it be a specific value when 0^0 appears within it. But not in general. 0^0 has to be considered indeterminate, in my opinion. However, I noticed that not everyone agreed, and so I wanted to hear the opinion of my fellow LG players. And not surprisingly, here, too, there were different opinions about the matter :-)

#48 · FatPhil

28 May 2014

Matlab sucks if it really doesn't pay attention to the domain in which you're operating. Trust Henri Cohen for real mathematical sense: $ gp -q ? 0.^0. *** gpow: 0 to a non positive exponent. ? 0^0 1