Foros del Web » Programación para mayores de 30 ;) » Java »

[B]Ayuda con Metodo de los Cuadrados del Medio de Von Neumann[/B]

Estas en el tema de [B]Ayuda con Metodo de los Cuadrados del Medio de Von Neumann[/B] en el foro de Java en Foros del Web. Bueno el tema es que tengo q presentar un programa para la Facultad para generar numeros pseudo aleatorios con el Metodo de los cuadrados del ...
  #1 (permalink)  
Antiguo 11/09/2009, 17:00
 
Fecha de Ingreso: agosto-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 9 meses
Puntos: 1
Pregunta [B]Ayuda con Metodo de los Cuadrados del Medio de Von Neumann[/B]

Bueno el tema es que tengo q presentar un programa para la Facultad para generar numeros pseudo aleatorios con el Metodo de los cuadrados del medio.

El metodo consite en: partiendo de una semilla de cuatro digidos, generar n numeros pseudoaleatorios elevando la semilla al cuadrado, esto genera un numero de 8 digitos, de los cuales se debe descartar los 2 de la izquierda y los dos de la derecha y tomar los cuatro centrales como nueva semila y repetir la operacion N veces. Una vez finalizado devolver un array con los valores.

El problema que tengo es el siguiente: si en un momento dado tomo los 4 del medio y el ultimo digito es 0 se empieza a hacer todo cero las posteriores semillas.
Este me trae un error. Quisiera saber si me pueden ayudar.

Aqui esta mi codigo.

Código:
	
public int[] generarNA() {

      /*arreglo para generar numeros pseudoaleatorios enteros */		
      int arrayNA[]= new int[n]; 

       /*arreglo para almacenar la semilla y sus posteriores potencias*/
       char arraySemilla[]= new char[8];		
		
       for (int i = 0; i < arrayNA.length; i++) {
			
       //elevo la semila al cuadrado y la convierto en string para sacar los cuatro del  medio*****//
        int intSemCuadr = (int) Math.pow(semilla, 2);
        String strSemCuad = String.valueOf(intSemCuadr);//lo paso a string 
			
       //********Cereo Vector***************//
      arraySemilla= this.cerearArray(arraySemilla);
			
      //*************convierto el string a un array de caracteres y lo guardo en   arraySemilla************//
			
      arraySemilla= strSemCuad.toCharArray();
				
			 
     //-*****guardo los cuatro del medio***esto me genera un problem cuando no tengo el nº [5]*****///
			
String strNuevaSem = Character.toString(arraySemilla[2])+Character.toString(arraySemilla[3])+Character.toString(arraySemilla[4])+Character.toString(arraySemilla[5]);

      System.out.println("ns"+strNuevaSem);
      int nuevaSem = Integer.valueOf(strNuevaSem);
      arrayNA[i]= nuevaSem;
      semilla= nuevaSem;
			
}//termina de generar los n elementos
		
return arrayNA;//devueve el array con los elementos generados
}	

//************metodo para cerear el Array*************no se si funcina bien
public char[] cerearArray(char p_charArray[]){
         for (int i = 0; i < p_charArray.length; i++) {
	p_charArray[i]= '0';			
         }		
         return p_charArray;		
}

Última edición por AdvancedWeb; 11/09/2009 a las 17:07 Razón: titulo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:15.