Soy Novata en Java y me pidieron este metodo y no se xq no anda.
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