On Wed, 25 Sep 2013 14:24:54 -0700 (PDT), Dan Christensen <Dan_Christensen@sympatico.ca> wrote:
>As taught in high schools and many university courses, 0^0 is undefined.
Does the phrase "beating a dead horse" mean anything to you?
> >In this school of thought, ^ is defined recursively for the natural numbers as: > >(1) x^0 = 1 for x=/=0 >(2) x^(y+1) = x^y * x > >Many designers of programming languages assume that 0^0=1. They define ^ recursively for the natural numbers as: > >(1) x^0 = 1 >(2) x^(y+1) = x^y * x > >But why 1? Why not have 0^0=/=0? Then you would define ^ for the natural numbers as: > >(1) 0^0=0 >(2) x^0 = 1 for x=/=0 >(3) x^(y+1) = x^y * x > >Note that the 0^0=0 definition agrees with the 0^0=1 definition everywhere except where the base and exponent are both 0. > >It can also be shown that all the usual Laws of Exponents for the natural numbers can be derived from the the 0^0=0 definition: > >(1) x^1 = x >(2) x^(y+z) = x^y * x^z >(3) (x^y)^z = x^(y*z) >(4) (x*y)^z = x^z * y^z > >This being the case, it seems there are at least two distinct binary functions on the natural numbers that satisfy the Laws of Exponents. How then are we to choose which one to use for a given application? You could pick one based on convenience as many have done. Or you could play it safe, as has been done for centuries, and leave 0^0 undefined in much the same way that x/0 has been left undefined. > >Dan >Download my DC Proof 2.0 software at http://www.dcproof.com