How to calculate Maximum or Minimum of two numbers without using if?

How to to calculate the maximim or minimum of two numbers without using "if" ( or something equivalant to that manner)?

The above question is often asked in introductory computer science courses and is answered using this method.

Now although it is not obvious, but using absolute value is also equivalant to using an if statement e.g. defining Max(a,b) = a if a>b else b;

Besides using limits, is there another way of finding the maximum or minimum of two numbers?


Solution 1:

If you let $a$ and $b$ be any two numbers then,

$$\max (a,b) = \frac{1}{2}( a + b + |a-b| )$$.

Solution 2:

If $a$ and $b$ are both positive, then $$ \max(a,b) = \lim_{n\to\infty} \left(a^n+b^n\right)^{1/n}. $$

Solution 3:

Whether you need an if statement to take an absolute value depends on the format in which your numbers are stored. If you're using IEEE floating point numbers, you can take the absolute value by masking out the sign bit.

Solution 4:

$$ a = \frac{a + b + (a-b)((2(a-b)+1) mod 2)}{2}, a > b$$ or $$b$$ equals the same, if $$ b > a$$ Maximum