lunes, 19 de mayo de 2014

UNIDAD 4: Análisis de Algoritmos

En esta unidad utilizamos
Double inicio = System.currentTimeMillis();
Double Fin = System.currentTimeMillis() – inicio;
Estas funciones sirven para establecer el momento en el cual debe comenzar a tomar el tiempo.
Luego vuelve a tomar el tiempo y lo resta con el tiempo de inicio dando como resultado el tiempo final en mili-segundos.
Esto solo sirve para saber el tiempo que el programa tarda en calcular los meses establecidos y no el tiempo total que le tomo a todo el programa en ejecutarse, netbeans nos dice el tiempo total.
Para imprimir el tiempo utilizaremos las siguientes funciones para mili-segundos y segundos respectivamente:
System.out.println("El tiempo transcurrido es " + fin + " mili-segundos"); 
System.out.println("El tiempo transcurrido es " + fin/1000 + " segundo");

Utilizaremos el programa del conejo para probar las funciones anteriores, este programa utiliza la función de  Fibonacci de recursividad, este programa trata de calcular el número de veces que se puede reproducir  una pareja de conejos cada mes y seguir multiplicando el resultado cada mes continuamente, según el número de meses que uno haya establecido.




package conejos;

import javax.swing.JOptionPane;

public class conejos {
    double i, s, n, t;
   
    public conejos(){
        String suma = JOptionPane.showInputDialog(null, "Escribe número de meses");
        n=Integer.parseInt(suma);
        // conversión de string a entero
    }
   
    public static void main(String[] args){
        double inicio = System.currentTimeMillis();
        //Toma el tiempo en mili-segundos, antes de iniciar la operación
       
        conejos d = new conejos();
        d.t=1;
       
        for (d.i=2; d.i<=d.n; d.i++){
            d.t=d.t*2;
            System.out.println ("Número total de parejas de conejos: "+d.t);
        }
        d.s = d.t * 2;
       
        System.out.println ("\n Numero total de parejas de conejos " + "\n en el mes número " + d.n + ". Es igual: " + d.t);
        System.out.println ("\n El total de conejitos en el los " + d.n + " meses es: " + d.s + " C: ");
       
        double fin = System.currentTimeMillis() - inicio;
        //vuelves a tomar el tiempo y le restas el inicio
       
        System.out.println("El tiempo transcurrido es " + fin + " mili-segundos");
        //Informas el resultado en mili-segundos
       
        System.out.println("El tiempo transcurrido es " + fin/1000 + " segundo");
        //o en segundos
    }
}


Resultado de 24 meses:
run:
Número total de parejas de conejos: 2.0
Número total de parejas de conejos: 4.0
Número total de parejas de conejos: 8.0
.
.
.
Número total de parejas de conejos: 8388608.0

Número total de parejas de conejos
 En el mes número 24.0. Es igual: 8388608.0

El total de conejitos en el los 24.0 meses es: 1.6777216E7 C:
El tiempo transcurrido es 4105.0 mili-segundos
El tiempo transcurrido es 4.105 segundos
BUILD SUCCESSFUL (total time: 5 seconds)

No hay comentarios.:

Publicar un comentario