Pull to refresh

Why x^0 = 1 visually

Reading time3 min
Views1.1K

The traditional definition for the operation of exponentiation to a natural power (or a positive integer) had introduced approximately as follows:

Exponentiation is an arithmetic operation originally defined as the result of multiple multiplications a number by itself.

At first glance, this definition is difficult to generalize for integer powers less than one

    ...
x^3  = x*x*x
x^2  = x*x
x^1  = x
x^0  = ?????
x^-1 = ?????
    ...

but if we remember that the operation of multiplication has an inverse - division, then an extension arises for negative powers

    ...
x^3  = x*x*x
x^-3 = 1/(x*x*x) = 1/x/x/x
    ...

therefore

    ...
x^3  = x*x*x
x^2  = x*x
x^1  = x
x^0  = ?
x^-1 = 1/x
x^-2 = 1/x/x
x^-3 = 1/x/x/x
    ...

But the question still remains open for 0: on the one hand, in ? place 1 fits, but on the other hand, this definition remains not entirely symmetrical for positive and negative values...

Therefore, upon careful examination, it is quite natural to want to slightly modify and improve the original

    ...
x^3  = 1*x*x*x
x^2  = 1*x*x
x^1  = 1*x
x^0  = 1
x^-1 = 1/x
x^-2 = 1/x/x
x^-3 = 1/x/x/x
    ...

In this representation, the definition seems to acquire harmony coupled with completeness:

Raising a number X to an integer power N is an arithmetic operation defined as the result of multiple [N by mod times] multiplications or divisions one by number X.

Ход мыслей
The way of thinking

A slightly more general case* in programming language C#

static double Pow(double x, int pow, double seed = 1d)
{
    var value = seed;
    
    if (pow < 0)
        for (var i = 0; i > pow; i--) value /= x;
    else
        for (var i = 0; i < pow; i++) value *= x;
    
    return value;
}

* in a general case the seed may be different from 1

In this form, the definition can easily and naturally be extended to the case of 0^0, which has long been the subject of heated debate in the mathematical community.

It naturally follows from this that 0^0 = 1.

Indeed, if we never multiply one by zero, then the result will be the original 1, but if we multiply it even once, we will already get 0.


If you think about it carefully, it is impossible to strictly prove the identity X^0 = 1, and the reason is that we ourselves define functions in such a way that they have properties convenient for applied calculations.

That is, when trying to prove the identity X^0 = 1 using various methods, in fact, we are only demonstrating that we have defined the exponentiation function in precisely such a way as to have those specified useful properties through which the “proof” itself is carried out. That is, an implicit vicious circle arises.

To the question:

  • Why is X^0 = 1?

The honest answer is:

  • X^0 = 1 is by definition!

Here it is appropriate to ask:

  • But why was this definition chosen?

To which an acceptable answer:

  • Because it is harmonious in many ways (see illustrations above) and has a number of remarkable properties that are very relevant in practical calculations.

If, say, we define X^0 differently, then the property of multiplying powers with identical bases X^M * X^N = X^(M+N) (namely X^0 * X^N = X^N) will partially break down, which will only complicate calculations without any meaningful value.


Similarly, it is easy to consider the integer multiplication function through addition and subtraction with zero-based seed

    ...
x*3  = 0 + x + x + x
x*2  = 0 + x + x
x*1  = 0 + x
x*0  = 0
x*-1 = 0 - x
x*-2 = 0 - x - x
x*-3 = 0 - x - x - x
    ...
static double Mul(double x, int scale, double seed = 0d)
{
    var value = seed;
    
    if (pow < 0)
        for (var i = 0; i > scale; i--) value -= x;
    else
        for (var i = 0; i < scale; i++) value += x;
    
    return value;
}

Multiplying a number X to an integer number N is an arithmetic operation defined as the result of multiple [N by mod times] additions or subtractions one by number X.

The identity X*0 = 0 follows organically from the definition.

In fact, if you don’t add anything to zero and don’t subtract anything from zero, then 0 will eventually remain!

You can even look at the functions of addition and subtraction in a similar way through the functions of increment and decrement, but the number itself will act as the seed.

Addition

    ...
x +  3  = x + 1 + 1 + 1
x +  2  = x + 1 + 1
x +  1  = x + 1
x +  0  = x
x +(-1) = x - 1
x +(-2) = x - 1 - 1
x +(-3) = x - 1 - 1 - 1
    ...
static double Add(double x, int shift)
{
    var value = x;
    
    if (pow < 0)
        for (var i = 0; i > shift; i--) value -= 1;
    else
        for (var i = 0; i < shift; i++) value += 1;
    
    return value;
}

Subtraction

    ...
x -  3  = x - 1 - 1 - 1
x -  2  = x - 1 - 1
x -  1  = x - 1
x -  0  = x
x -(-1) = x + 1
x -(-2) = x + 1 + 1
x -(-3) = x + 1 + 1 + 1
    ...
static double Sub(double x, int shift)
{
    var value = x;
    
    if (pow < 0)
        for (var i = 0; i > shift; i--) value += 1;
    else
        for (var i = 0; i < shift; i++) value -= 1;
    
    return value;
}

And for completeness, we should remember the factorial function and redefine it for 0. With negative arguments it becomes more difficult, since infinite products arise from the general formula, for which traditional calculation methods are already largely undefined.

n!  = 1 * [(n - 0)(n - 1)(n - 2)...321]
    ...
3!  = 1 * (321)
2!  = 1 * (2*1)
1!  = 1 * (1)
0!  = 1
    ...

Thanks for reading!

Hope that considered examples will help to the reader become familiar with the identity X^0 = 1.


MIRRORS OF THE ARTICLE

EN: gitlab, habr

RU: gitlab, habr

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 5: ↑5 and ↓0+5
Comments0

Articles