7 votos

Una fórmula que da el máximo de una serie de números

Esta fórmula da el máximo de 3 números:

$$\frac{a}{2} + \frac{b}{4} + \frac{c}{4} + \frac{|b-c|}{4} + \frac{1}{2}\left|a -\frac{b}{2} - \frac{c}{2} - \frac{|b-c|}{2}\right| = \max(a,b,c)$$

He encontrado esto en internet, no tengo ni idea de cómo se puede desarrollar una fórmula así, y me pregunto cómo. ¿Cómo sería para 4 números? y 5 etc. ¿Es posible tener una fórmula que dé el máximo de una serie de $n$ ¿números?

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.

4voto

Element118 Puntos 2090

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;
}

0 votos

Sí, por supuesto. Sólo tengo curiosidad por saber si la forma expandida se vería bien.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X