Cómo encontrar las soluciones integrales de ecuación usando un programa C / C ++ de manera eficiente, donde A, B, C, D y E son enteros, sabiendo que solo tiene una solución en enteros

¿Cuál es la restricción para [matemáticas] A, B, C, D [/ matemáticas] y [matemáticas] E [/ matemáticas]?

Si se permiten números enteros, entonces hay infinitas soluciones, que son bastante aburridas de resolver usando un programa. Esta es la forma más trivial.

[matemáticas] A = 0, B + C = – (D + E) [/ matemáticas]

Si deben ser números positivos, entonces, pongamos esta restricción:

[matemáticas] A> = B> = C> = D> = E> = 1 [/ matemáticas]

Esto significa que [matemáticas] A [/ matemáticas] es el número más grande. Podemos ver que cuando [math] A [/ math] es 2 y todas las demás variables son 1, el lado izquierdo ya es 8, mientras que el lado derecho es solo 6. El aumento del valor de cualquier variable solo conducirá a una mayor disparidad.

Por lo tanto, la restricción se convierte en:

[matemáticas] 2> A> = B> = C> = D> = E> = 1 [/ matemáticas]

Esto dejó solo [matemáticas] A = B = C = D = E = 1 [/ matemáticas], lo cual no es una solución.

Otra posible restricción es que las variables deben ser distintas de cero. En este caso, una parte del argumento anterior aún se mantiene. Pongamos esta restricción:

[matemáticas] | A | > = | B | > = | C | > = | D | > = | E | > = 1 [/ matemáticas]

Si el valor absoluto de [matemática] A [/ matemática] es 2 o más, el valor absoluto del lado derecho seguirá siendo siempre menor que el lado izquierdo. Sin embargo, ahora tenemos una restricción más flexible:

[matemáticas] 2> | A | > = | B | > = | C | > = | D | > = | E | > = 1 [/ matemáticas]

Lo que significa

[matemáticas] | A | = | B | = | C | = | D | = | E | = 1 [/ matemáticas]

Es decir, cada variable es 1 o -1.

Ahora solo hay 32 permutaciones de este valor, que se pueden buscar fácilmente utilizando cualquier tipo de bucle.

Un ejemplo del código:

#include

int main () {
para (int i = 0; i <32; i ++) {
int A = (i >> 0)% 2? 1: -1;
int B = (i >> 1)% 2? 1: -1;
int C = (i >> 2)% 2? 1: -1;
int D = (i >> 3)% 2? 1: -1;
int E = (i >> 4)% 2? 1: -1;

if ((A * B * C * D * E) * (A * B * C * D * E) * (A * B * C * D * E) == A + B + C + D + E) printf (“A:% d, B:% d, C:% d, D:% d, E:% d \ n”, A, B, C, D, E);
}

devuelve 0;
}

Verá relativamente rápido que aumentar demasiado una de las variables conducirá a un aumento en el lado izquierdo que superará muy rápidamente el lado derecho.

Dicho esto, basta con utilizar cinco bucles anidados sobre las variables.

Si este problema fuera mayor, trataría de crear una solución de programación dinámica que utilice de alguna manera que las variables tengan el mismo efecto. Probablemente pudo reducir el número de estados a través de la agregación significativamente. Si estoy interesado, puedo profundizar en este tema.

Para encontrar la solución aquí de una manera rápida (en cuanto al esfuerzo), sugiero escribir esos bucles.

¿Qué hay de las soluciones: (-1; -1; -1; 1; 1), (-1; -1; 1; 1; 1) y (0; 0; 0; 0; 0) (En realidad con las permutaciones hace 21 variantes ya) que está lejos de ser una solución entera única.

More Interesting

¿Es justo decir que las matemáticas, la informática y la programación se encuentran en la intersección de todas las materias?

Cómo salir de la culpa de buscar la solución del problema

¿Hay ramas de las matemáticas y las ciencias que no se han descubierto, o hemos agotado todo el conocimiento que requerimos sobre estos dos?

Cómo escribir un programa que calcule 'b' elevado a power 'n' usando solo suma e iteración

¿Cuál es la complejidad computacional de un problema de clasificación? ¿Es P o NP?

¿Por qué las matemáticas discretas se llaman 'discretas'?

¿Cuál es la diferencia entre datos continuos y discretos?

¿Se conocieron y / o trabajaron juntos Alan Turing (1912-1954) y John von Neumann (1903-1957)?

¿Puede un desarrollador web beneficiarse de la CS teórica? ¿Cómo puede ser eso?

¿Qué tipo de matemática debo esperar para ingresar a una especialización en informática?

Cómo trabajar en unidades donde c = 1

¿Por qué los informáticos / programadores usan la notación big-O en lugar de la función de tiempo de ejecución real?

¿El aumento del nivel de las competiciones de matemáticas ha resultado en un aumento de las capacidades en las ciencias del mundo real?

¿Cuál es el mejor enfoque para estudiar matemáticas discretas para alguien que considera que es un tema realmente difícil?

Si [matemática] f (5) = 12 [/ matemática] y [matemática] f (10) = 18 [/ matemática] ¿qué significa [matemática] f (20) =? [/ Matemática] Cuándo (a) [matemática] f [/ math] es una función exponencial y (b) [math] f [/ math] es una función de potencia?