______________________________________________________________________________________________________________________
Solución:
La salida de este programa da casos repetidos, en los cuales los catetos intercambian su valor. A cambio de eso el programa es totalmente a base de fuerza bruta y bastante sencillo. En este ejercicio, debibo a la gran cantidad de lineas (774) que arroja el ejecutable, tal vez le convenga Redireccionar la salida
El siguiente código debe guardarse con el nombre UsaDeitel_5_21.java
public class UsaDeitel_5_21 { // Abre clase public static void main(String args[]) { // Abre main //Se crea un objeto de tipo Deitel_5_21 Deitel_5_21 miObjeto = new Deitel_5_21(); // Se llama a metodo Pitagoras miObjeto.Pitagoras(); } // Cierra main } // Cierra clase UsaDeitel
El siguiente código debe guardarse con el nombre Deitel_5_21.java
public class Deitel_5_21 { // Abre clase Deitel_5_21 public int Tamano = 500; public void Pitagoras() { // Abre metodo Pitagoras System.out.print("\nEste programa prueba e imprime todas las ternas"); System.out.printf(" pitagoricas para numeros no mayores que %d ", Tamano); System.out.print(" mediante la fuerza bruta.\n"); for ( int i = 1; i <= Tamano; i++ ) for ( int j = 1; j <= Tamano; j++ ) for ( int k = 1; k <= Tamano; k++ ) { // Abre for if ( i*i == j*j + k*k ) System.out.printf("%3d\t%3d\t%3d\n", i, j, k); } // Cierra for } // Cierra metodo Pitagoras } // Cierra clase Deitel_5_21
Un análisis muy interesante sobre las tripletas pitagóricas viene en la introducción del Ebook "Teoría de números" de Carlos Ivorra Castillo (lo puedes descargar desde su sitio). Creo que te resultará muy interesante revisarla y ver si se puede programar algo al respecto.
ResponderEliminarBuena tarde :)
Buen ejemplo de la Fuerza Bruta!
ResponderEliminarAsí es. Es un bonito ejemplo. Muchos saludos.
ResponderEliminarMuy buenos ejemplos y ayudas...Muchas gracias por subirlos.
ResponderEliminarQué bueno que te están sirviendo. ¡Gracias!
EliminarGracias :)
ResponderEliminarporfa tendrás el capitulo 8 para adelante :/
ResponderEliminarFaça um programa que imprima todas as triplas Pitagóricas
ResponderEliminar
formadas
por números entre e 1000.
Mi código me arroja 772 tripletas. ¿Cual puede ser la diferencia?
ResponderEliminarimport java.util.Scanner;
public class Pitagoras {
public static void main (String args[])
{
int i,j,k,contador=0;
for (i = 1 ; i <= 500; i++)
{
for(j = 1 ; j <= 500; j++)
{
for(k = 1; k <= 500; k++)
{
if ( (Math.pow(k, 2)) + (Math.pow(j, 2)) == (int)(Math.pow(i,2)) )
{
System.out.printf("%d %d %d\n",i,j,k);
contador++;
}
}
}
}
System.out.println(contador);
}
}