Empecemos con $2$ números. La mejor manera de ver esto es imaginar los números en la recta numérica.
Encontramos el punto medio de la $2$ números: $\frac{a+b}{2}$ .
A continuación, podemos encontrar la mitad de la distancia del $2$ números: $\frac{|a-b|}{2}$
Sumándolos, tenemos $\max(a, b)=\frac{a+b}{2}+\frac{|a-b|}{2}$ .
La fórmula que tiene para $3$ se encuentra expandiendo $\max(a, \max(b, c))$ .
Se puede continuar con cualquier número de variables, si queremos encontrar el máximo de $a_1, a_2, a_3, \dots, a_n$ Podemos evaluarlo lentamente:
$$\max(a_1, \max(a_2, \max(a_3, \dots\max(a_{n-1}, a_n)\dots)))$$
Dado que este post podría ocupar demasiado espacio si añadiera demasiadas expresiones, escribiría la expresión para $n=5$ :
$\frac{a_{1}}{2}+\frac{1}{2}\left(\frac{a_{2}}{2}+\frac{1}{2}\left(\frac{a_{3}}{2}+\frac{1}{2}\left(\frac{a_{4}}{2}+\frac{1}{2}\left(a_{5}\right)+\frac{1}{2}\left|a_{4}-a_{5}\right|\right)+\frac{1}{2}\left|a_{3}-\frac{a_{4}}{2}-\frac{1}{2}\left(a_{5}\right)-\frac{1}{2}\left|a_{4}+a_{5}\right|\right|\right)+\frac{1}{2}\left|a_{2}-\frac{a_{3}}{2}-\frac{1}{2}\left(\frac{a_{4}}{2}+\frac{1}{2}\left(a_{5}\right)+\frac{1}{2}\left|a_{4}-a_{5}\right|\right)-\frac{1}{2}\left|a_{3}+\frac{a_{4}}{2}-\frac{1}{2}\left(a_{5}\right)-\frac{1}{2}\left|a_{4}+a_{5}\right|\right|\right|\right)+\frac{1}{2}\left|a_{1}-\frac{a_{2}}{2}-\frac{1}{2}\left(\frac{a_{3}}{2}+\frac{1}{2}\left(\frac{a_{4}}{2}+\frac{1}{2}\left(a_{5}\right)+\frac{1}{2}\left|a_{4}-a_{5}\right|\right)+\frac{1}{2}\left|a_{3}-\frac{a_{4}}{2}-\frac{1}{2}\left(a_{5}\right)-\frac{1}{2}\left|a_{4}+a_{5}\right|\right|\right)-\frac{1}{2}\left|a_{2}+\frac{a_{3}}{2}-\frac{1}{2}\left(\frac{a_{4}}{2}+\frac{1}{2}\left(a_{5}\right)+\frac{1}{2}\left|a_{4}-a_{5}\right|\right)-\frac{1}{2}\left|a_{3}+\frac{a_{4}}{2}-\frac{1}{2}\left(a_{5}\right)-\frac{1}{2}\left|a_{4}+a_{5}\right|\right|\right|\right|$
Aquí incluyo el programa C++ utilizado para generar la expresión en $\LaTeX$ .
#include <cstdio>
#include <algorithm>
using namespace std;
/**
Prints out the maximum of the variables
a_{printed+1}...a_n
sign is used to switch the + and - signs.
**/
void printMax(int n, int printed, int sign) {
if (printed+1 == n) {
printf("a_{%d}", n);
return;
}
char p = '+', m = '-';
if (sign < 0) p = '-', m = '+';
printf("\\frac{a_{%d}}{2}%c\\frac{1}{2}\\left(", printed+1, p);
if (printed<n) printMax(n, printed+1, 1);
printf("\\right)%c\\frac{1}{2}\\left|a_{%d}%c", p, printed+1, m);
if (printed<n) printMax(n, printed+1, -1);
printf("\\right|");
}
int main(void) {
//freopen("maxClosedFormOut.txt", "w", stdout);
int N;
scanf("%d", &N);
printf("$");
printMax(5, 0, 1);
printf("$");
return 0;
}
2 votos
Tenga en cuenta que $\max(a_1,a_2,\ldots,a_n) = \max(\max(a_1,a_2,\ldots,a_{n-1}),a_n)$ así que si tienes una fórmula para $n=2$ entonces se puede crear una fórmula para cualquier número entero $n$ utilizando la fórmula anterior. La utilidad de esta fórmula es otra cuestión.