3 numeros aleatorios no repetidos
Hola, estoy intentando generar en el array correctas 3 numeros <= 6 aleatorios diferentes, pero esto no está funcionando ya que en algunos casos genero numeros repetidos, alguna sugerencia?Gracias de antemano
correctas = new int[3];
correctas[0] = (int) (Math.random() * 6.0);
correctas[1] = (int) (Math.random() * 6.0);
correctas[2] = (int) (Math.random() * 6.0);
if (correctas[0] == correctas[1]) //evitar que sean coincidentes
correctas[1] = (correctas[1] + 1) % 6;
if (correctas[1] == correctas[2]) //evitar que sean coincidentes
correctas[2] = (correctas[2] + 1) % 6;
if (correctas[0] == correctas[2]) //evitar que sean coincidentes
correctas[2] = (correctas[2] + 1) % 6;
correctas = new int[3];
correctas[0] = (int) (Math.random() * 6.0);
correctas[1] = (int) (Math.random() * 6.0);
correctas[2] = (int) (Math.random() * 6.0);
if (correctas[0] == correctas[1]) //evitar que sean coincidentes
correctas[1] = (correctas[1] + 1) % 6;
if (correctas[1] == correctas[2]) //evitar que sean coincidentes
correctas[2] = (correctas[2] + 1) % 6;
if (correctas[0] == correctas[2]) //evitar que sean coincidentes
correctas[2] = (correctas[2] + 1) % 6;
Ahora si esta arriba el FORO..
Con este codigo se puede utilizar cualquier lista de datos y luego obtener alguno al azar...
import java.util.ArrayList;
import java.util.Random;
public class GeneradorAleatorios {
private static ArrayList valores = new ArrayList();
private static Random rnd = new Random();
public GeneradorAleatorios() {
valores.add("1");
valores.add("2");
valores.add("3");
valores.add("4");
valores.add("5");
valores.add("6");
}
public String getValor() {
if (valores.size()==0) return (null);
int n = getRandomNumber();
String valor = (String)valores.get(n);
valores.remove(n);
return valor;
}
private int getRandomNumber() {
int max = valores.size();
int n = rnd.nextInt(max);
return (n);
}
/**
*
* @param args
*/
public static void main(String[] args) {
GeneradorAleatorios gen = new GeneradorAleatorios();
System.out.println("Valor 1: " + gen.getValor());
System.out.println("Valor 2: " + gen.getValor());
System.out.println("Valor 3: " + gen.getValor());
}
}
Con este codigo se puede utilizar cualquier lista de datos y luego obtener alguno al azar...
import java.util.ArrayList;
import java.util.Random;
public class GeneradorAleatorios {
private static ArrayList valores = new ArrayList();
private static Random rnd = new Random();
public GeneradorAleatorios() {
valores.add("1");
valores.add("2");
valores.add("3");
valores.add("4");
valores.add("5");
valores.add("6");
}
public String getValor() {
if (valores.size()==0) return (null);
int n = getRandomNumber();
String valor = (String)valores.get(n);
valores.remove(n);
return valor;
}
private int getRandomNumber() {
int max = valores.size();
int n = rnd.nextInt(max);
return (n);
}
/**
*
* @param args
*/
public static void main(String[] args) {
GeneradorAleatorios gen = new GeneradorAleatorios();
System.out.println("Valor 1: " + gen.getValor());
System.out.println("Valor 2: " + gen.getValor());
System.out.println("Valor 3: " + gen.getValor());
}
}
