La solución de Telcontar:

Me complace confirmar que la respuesta de Nazgul2 es completamente correcta, hecha además de un razonamiento completamente diferente al mío. Felicidades Nazgul2 y esperemos que te asignen una cátedra en la UAN como desfacedor de entuertos, que en cuento a mi me conformo con la diversión de ver vuestras evoluciones, aunque tu no has necesitado ninguna ayuda por mi parte, así que para que ser humilde cuando no debes serlo.

Yo lo hice mediante fuerza bruta con un programa que me hice en C++,
ahora lo he rehecho en Java.


Básicamente me sacaba todas las parejas que cumplían las dos condiciones.
Para ello eliminaba probaba todas las combinaciones posibles de números y
sacaba Suma  y Producto. Depués:


1) Descartaba las parejas cuya S o P solo se formaban de una manera.


2) Descomponía S y eliminaba las parejas formadoras de S cuyo producto solo se pudiera hacer de una manera.


3) Con las parejas que que quedaran, descomponía P en sus parejas generadoras (llamémosle conjunto GP, cuya cardinalidad debía ser siempre
mayor que uno por haber pasado la condición primera), hallaba la suma S'
para cada miembro de GP, hallaba las parejas generadoras de S' y con cada
una de esas parejas hallo P', si P' solo se puede hallar de una manera es
que la solución no es ese miembro de GP, lo elimino de GP. Si después de
revisados todos los miembros de GP, GP me queda de cardinalidad 1, esa es
una posible solución.

Con este algoritmo que es mas difícil de explicar que de comprender sobre un papel me salen las parejas

1+6=7
1+8=9
2+7=9
4+5=9
3+8=11
4+7=11
2+11=13
4+9=13
5+8=13
6+7=13

Como solo hay una pareja que sume distinta que las demás, esa es la solución.

Por cierto, tu solución es sin duda mas elegante, pero que quieres que le
haga, soy informático.

Ahí va el código fuente que he rehecho en Java para quien lo quiera, no incluyo la clase pareja que simplemente sirve para contener una pareja de números, por cierto, aborrezco los comentarios y la programación clara:



package proyecto;

import java.util.Vector;

public class Problema {

public Problema(){
}
public Vector buscarParejasGeneradorasSuma(int numero){
Vector v=new Vector();
Pareja p;
for (int i=1;i<(numero-i);i++){
if (i<26&&(numero-i)<26){
p=new Pareja(i,numero-i);
v.add(p);
}
}
return v;
}
public Vector buscarParejasGeneradorasProducto(int numero){
Vector v=new Vector();
Pareja p;
for (int i=1;i<(numero/i);i++){
if (numero%i==0 && i<26&&(numero/i)<=25){
p=new Pareja(i,numero/i);
v.add(p);
}
}
return v;
}
public boolean descartarPareja(int x,int y){
int s=x+y;
int p=x*y;
Problema problema=new Problema();
Vector v1=problema.buscarParejasGeneradorasSuma(s);
Vector v2=problema.buscarParejasGeneradorasProducto(p);
if (v1.size()==1 || v2.size()==1){
return false;
}
else
return true;
}

public static void main(String[] args) {
Problema problema=new Problema();
for (int i=1;i<25;i++){
for (int j=i+1;j<26;j++){
int s=i+j;
int p=i*j;
boolean bol=problema.descartarPareja(i,j);
if (bol){
boolean bol2=true;
Vector vs=problema.buscarParejasGeneradorasSuma(s);
for(int cont=0;cont<vs.size();cont++){
Pareja pareja1=(Pareja)vs.elementAt(cont);
int p2=pareja1.x*pareja1.y;
Vector vp=problema.buscarParejasGeneradorasProducto(p2);
if (vp.size()==1)
bol2=false;
}
if (bol2){
Vector vp1=problema.buscarParejasGeneradorasProducto(p);
int tamanyo=vp1.size();
for (int cont=0;cont<vp1.size();cont++){
Pareja pareja1=(Pareja)vp1.elementAt(cont);
int s2=pareja1.x+pareja1.y;
Vector vs1=problema.buscarParejasGeneradorasSuma(s2);
if (vs1.size()==1)
tamanyo--;
else{
boolean bol3=false;
for (int cont2=0;cont2<vs1.size();cont2++){
Pareja pareja2=(Pareja)vs1.elementAt(cont2);
int p3=pareja2.x*pareja2.y;
Vector vp2=problema.buscarParejasGeneradorasProducto(p3);
if (vp2.size()==1)
bol3=true;
}
if (bol3)
tamanyo--;
}
}
if (tamanyo==1)
System.out.println(i+" "+j);
}
}
}
}

byte[] b=new byte[10];
try{
System.in.read(b);
}catch(java.io.IOException e){
System.out.println(e.getMessage());
}
}

}

Telcontar

Volver al Problema

Volver al Departamento de Matemática

Librarse del dolor de cabeza

 
UAN, IX Edad