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-sep-2009 a las 17:07 Razón: titulo