numeros aleatorios
hola a todos.
necesito ayuda una vez mas. tengo que hacer un metodo que le asigne 6 valores aleatorios en un arreglo de enteros, hasta ahora se como usar el Math.random() y como manipular el rango de numeros que puede dar el metodo, pero no he podido hacer que estos numeros no se repitan y necesito eso para hacer un juego de azar.
espero que me puedan ayudar, gracias
necesito ayuda una vez mas. tengo que hacer un metodo que le asigne 6 valores aleatorios en un arreglo de enteros, hasta ahora se como usar el Math.random() y como manipular el rango de numeros que puede dar el metodo, pero no he podido hacer que estos numeros no se repitan y necesito eso para hacer un juego de azar.
espero que me puedan ayudar, gracias
Hola:
Lo que tienes que hacer es guardar los números en un array de 6 posiciones. Cada vez que generes un número lo comparas con los generados anteriormente a ver si coincide con alguno. Si es así, lo desechas y calculas otros.
El pseudocodigo puede ser algo como esto
aleatorios[6]
contador=0;
while (contador < 6)
{
generar aleatorio
compararlo en array desde 0 hasta contador
si no coincide con ninguno
guardarlo en array e incrementar contador
}
Se bueno
Lo que tienes que hacer es guardar los números en un array de 6 posiciones. Cada vez que generes un número lo comparas con los generados anteriormente a ver si coincide con alguno. Si es así, lo desechas y calculas otros.
El pseudocodigo puede ser algo como esto
aleatorios[6]
contador=0;
while (contador < 6)
{
generar aleatorio
compararlo en array desde 0 hasta contador
si no coincide con ninguno
guardarlo en array e incrementar contador
}
Se bueno
Buenas, creo que tu problema basicamente está en que en varias ejecuciones obtienes los mismos números aleatorios.
Mi premisa es correcta???
Si es asi lo que te aconsejo es que utilices la clase Random donde existe un constructor donde le indicas la semilla a partir de la cual se van a generar los números aleatorios.
Una tecnica muy común y que evita el problema que tu comentas es pasarle como semilla la hora del sistema.
Luego con la operación next() puedes obtener los números aleatorios.
Saludos
Mi premisa es correcta???
Si es asi lo que te aconsejo es que utilices la clase Random donde existe un constructor donde le indicas la semilla a partir de la cual se van a generar los números aleatorios.
Una tecnica muy común y que evita el problema que tu comentas es pasarle como semilla la hora del sistema.
Luego con la operación next() puedes obtener los números aleatorios.
Saludos
mi hermano haz el metodo del random te doy in tip bajate el juego del ahorcado ahi viene el metodo esta facil
Como te recomiendan en un post, utiliza la clase Random. Pero yo te recomiendo que utilices una colección que implemente la interfaz java.util.Set, que garantiza que todos los elementos son diferentes. De este modo, el método para obtener un array de enteros, sería así:
Set<Integer> conjunto=...
int nroValores=6;
...
while(conjunto.size()<nroValores){
conjunto.add(/*método de clase Random*/);
}
...
Luego sólo tienes que recorrer la colección con un Iterator, con un bucle for, o utlizar el método toArray para obtener el array de elementos no repetidos.
Set<Integer> conjunto=...
int nroValores=6;
...
while(conjunto.size()<nroValores){
conjunto.add(/*método de clase Random*/);
}
...
Luego sólo tienes que recorrer la colección con un Iterator, con un bucle for, o utlizar el método toArray para obtener el array de elementos no repetidos.