Cómo utilizar JAVA para expresar el pensamiento lógico de cuatro parejas.
/** Este rompecabezas proviene de la escuela de Berlín, Alemania. del Pensamiento Lógico
* El título original es:
1. Hay cinco casas en cinco colores
2. Cada una de estas cinco personas tiene una nacionalidad diferente
3. Cada una de estas cinco personas solo bebe una marca de bebida y fuma solo una marca de cigarrillos. Las nacionalidades de estas cinco personas son todas diferentes
3. Cada una de estas cinco personas solo bebe una marca de bebida y fuma solo una marca de cigarrillos. Cada una de estas cinco personas solo bebe una marca de bebida, fuma solo una marca de cigarrillos y tiene un solo tipo de mascota
4. Nadie tiene la misma mascota, ni fuma la misma marca de cigarrillos, ni bebe la misma marca de bebidas
Expresiones condicionales conocidas:
1. Los británicos viven en una casa roja
2. Los suecos tienen un perro
3. El danés tiene un perro
4. El hombre que fuma cigarrillos pallmall tiene un pájaro
7. El dueño de la casa amarilla fuma cigarrillos dunhill
8. El hombre que vive en la casa del medio bebe leche
9. El noruego vive allí
10. El hombre que fuma cigarrillos mezclados vive al lado del hombre que cuida gatos
11. El hombre que cría caballos vive al lado del hombre que fuma cigarrillos Dunhill
12. El hombre que fuma Ramba bebe cerveza
13. El alemán que fuma cigarrillos Prince
14. El noruego que vive al lado de la casa azul
15. El hombre que fuma cigarrillos mezclados vive al lado de la casa amarilla
16.
15. El vecino de la persona que fuma cigarrillos mezclados bebe agua mineral
Pregunta: ¿Quién guarda pescado?
Se dice que sólo el 2% de las personas en el mundo pueden responderla.
Incluso el famoso Einstein quedó perplejo ante este problema.
*/
/*
* @autor cds
*
*
* TODO Para cambiar la plantilla para esta anotación de tipo generada, visite Ventana -
* Preferencias - Java - Estilo de código - Plantillas de código
*/
clase pública WhoFeedsFish {
int final estático público NATIONALITY_ENGLISH = 1;
int final estático público NATIONALITY_SWIDISH = 2
int final estático público NATIONALITY_DAMARK <; /p>
public static final int NATIONALITY_NORWAY = 4;
public static final int NATIONALITY_GERMAN = 5
private int[] nacionalidades = { 1, 2, 3, 4; , 5 };
int final estático público COLOR_RED = 1;
int final estático público COLOR_GREEN = 2
int final estático público COLOR_YELLOW = 3;
int final estático público COLOR_WHITE = 4;
int final estático público COLOR_BLUE = 5
int privado[] colores = { 1, 2, 3, 4; , 5 };
público estático final int PET _DOG = 1;
público estático final int PET_BIRD = 2
público estático final int PET_CAT = 3;
público estático final int PET_HORSE = 4;
público estático final int PET_FISH = 5
privado int[] mascotas = { 1, 2, 3, 4, 5 };
int final estático público DRINK_TEA = 1;
int final estático público DRINK_COFFEE = 2
int final estático público DRINK_MILK = 3;
public static final int DRINK_BEER = 4;
public static final int DRINK_WATER = 5
private int[] bebidas = { 1, 2, 3; , 4, 5 };
public static final int TOBACCO_PALLMALL = 1;
public static final int TOBACCO_ DUNHILL = 2
public static final int TOBACCO_BLUEMASTER = 3;
public static final int TOBACCO_PRINCE = 4;
public static final int TOBACCO_MIXED = 5
private int[] tabacos = { 1, 2, 3, 4, 5};
p
private int[][] clave = { nacionalidades, colores, mascotas, bebidas, tabacos };
private int[][] valores = { 1, 2, 3, 4, 5 }, { 1, 2, 3, 5, 4 },
{ 1, 2, 4, 3, 5 }, { 1, 2, 4, 5, 3 }, { 1, 2, 5, 3 , 4 },
{ 1, 2, 5, 4, 3 }, { 1, 3, 2, 4, 5 }, { 1, 3, 2, 5, 4 },
{ 1, 3, 4, 2, 5 }, { 1, 3, 4, 5, 2 }, { 1, 3, 5, 2, 4 },
{ 1, 3, 5, 4, 2 }, {1, 4, 2, 3, 5 }, { 1, 4, 2, 5, 3 },
{ 1, 4, 3, 2, 5 }, { 1, 4, 3, 5, 2 }, { 1, 4, 5, 5 2, 3 },
{ 1, 4, 5, 3, 2 }, { 1, 5 , 2 , 3, 4 }, { 1, 5, 2, 4, 3 },
{ 1, 5, 3, 2, 4 }, { 1, 5, 3, 4, 2 } , { 1, 5, 4, 2, 3 },
{ 1, 5, 4, 3, 2 }, { 2, 1, 3, 4, 5 }, { 2, 1, 3 , 5 , 4 },
{ 2, 1, 4, 3, 5 }, { 2, 1, 4, 5, 3 }, { 2, 1, 5, 3, 4 },
{ 2, 1, 5, 4, 3 }, { 2, 3, 1, 4, 5 }, { 2, 3, 1, 5, 4 },
{ 2. 3, 4, 1, 5 }, { 2, 3, 4, 5, 1 }, { 2, 3, 5, 1, 4 },
{ 2, 3, 5, 4 , 1 }, { 2, 4, 1, 3, 5 }, { 2, 4, 1, 5, 3 },
{ 2, 4, 3, 1, 5 }, {2, 4, 3, 5, 1 }, { 2, 4, 5, 1, 3 },
{ 2, 4, 5, 3, 1 }, { 2, 5, 1, 3, 4 }, { 2, 5, 1, 4, 3 },
{ 2, 5, 3, 1, 4 }, { 2, 5, 3, 4, 1 }, 2, 5, 4 , 1 , 3 },
{ 2, 5, 4, 3, 1 }, { 3, 1, 2, 4, 5 }, { 3, 1, 2, 5, 4 },
{ 3, 1, 4, 2, 5 }, { 3, 1, 4, 5, 2 }, { 3, 1, 5, 2, 4 },
{ 3, 1, 4, 2, 5 }, { 3, 1, 4, 5, 2 }, { 3, 1, 5, 2, 4 }.
{ 3, 1, 5, 4 , 2 }, { 3, 2, 1, 4, 5 }, { 3, 2, 1, 5, 4 },
{ 3, 2, 4, 1, 5 }, { 3, 2, 4, 5, 1 }, { 3, 2, 5, 1, 4 },
{ 3, 2, 5, 4, 1 }, { 3, 4, 1, 2, 5 }, {3, 4, 1, 5, 2}, {3, 4, 1, 5, 2}
, { 3, 4, 1, 5, 2 }, { 3, 4, 1, 5, 2 },.
{ 3, 4, 2, 1, 5 }, { 3, 4, 2, 5, 1 }, { 3, 4, 5, 1, 2 },
{ 3, 4, 5, 2, 1 }, { 3, 5, 1, 2, 4 }, { 3, 5, 1, 4, 2 },
{ 3, 5, 2, 1, 4 }, { 3, 5, 2, 4, 1 }, { 3, 5, 4, 1 },<
{ 3, 5, 4, 2, 1 }, { 4, 1, 2, 3, 5 }, { 4, 1, 2, 5, 3 },
{ 4, 1, 3, 2, 5 }, { 4, 1, 3, 5, 2 }, { 4, 1, 5, 2, 3 },
{ 4, 1, 5, 3, 2 }, { 4, 2, 1, 3, 5 }, { 4, 2, 1, 5, 3 },
{ 4, 2, 3, 1, 5 }, { 4, 2, 3, 5, 1 }, { 4, 2, 5, 1, 3 },
{ 4, 2, 5, 3, 1 }, { 4, 3, 1, 2, 5 }, { 4, 3, 1, 5, 2 },
{ 4, 3, 2, 1, 5 }, { 4, 3, 2, 5, 1 }, { 4, 3, 5, 1, 2 },
{ 4, 3, 5, 2, 1 }, { 4, 5, 1, 2, 3 }, { 4, 5, 1, 3, 2 },
{ 4, 5, 2, 1, 3 }, { 4, 5, 2, 3, 1 }, { 4, 5, 3, 1, 2 }, p>
{ 4, 5, 3, 2, 1 }, { 5, 1, 2, 3, 4 }, { 5, 1, 2, 4, 3 },
{ 5 , 1, 3, 2, 4 }, {5, 1, 3, 4, 2 }, { 5, 1, 4, 2, 3 },
{ 5, 1, 4, 3, 2 }, { 5, 2, 1, 3, 4 }, { 5, 2, 1, 4, 3 },
{ 5, 2, 3, 1, 4 }, { 5, 2 , 3, 4, 1 }, { 5, 2, 4, 1, 3 },
{ 5, 2, 4, 4, 1, 3 },
{ 5, 2, 4 , 3, 1 }, { 5, 3, 1, 2, 4 }, { 5, 3, 1, 4, 2 },
{ 5, 3, 2, 1, 4 }, { 5, 3, 2, 4, 1 }, { 5, 3, 4, 1, 2 },
{ 5, 3, 4, 2, 1 }, { 5, 4, 1, 2 , 3 }, { 5, 4, 1, 3, 2 },
{ 5, 4, 2, 1, 3 }, { 5, 4, 2, 3, 1 }, { 5, 4, 3, 1, 2 },
{ 5, 4, 3, 2, 1 }.};
public void printKey() {
for (int i = 0; i < 5; i++) {
print(" nacionalidad", clave[0][i]);
}
System.out.println();
for (int i = 0; i < 5; i++) {
print("color", clave[1][i]);
}
System.out.println();
for (int i = 0; i < 5; i++) {
print("mascota", clave[2][i]);
}
System.out. println();
for (int i = 0; i < 5; i++) {
print("bebida", clave[3][i]);
}
System.out.println();
for (int i = 0; i < 5; i++) {
print( "tabaco", clave[4][i]);
}
System.out.println();
}
public void print(Cadena elemento, int index) {
if (false ) {
} else if ("nacionalidad".equals(item)) {
switch (index) {
caso 1:
System.out.print("British (UK)");
break;
caso 2:
System.out.print("Suecos (Suecia)");
descanso;
caso 3:
System.out.print("Danes (Dinamarca)");
descanso;
caso 4:
System.out.print( "Danes (Dinamarca)");
descanso;