3 numeros aleatorios no repetidos

alejandra006
24 de Mayo del 2006
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;

Jorge Avalos
24 de Mayo del 2006
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());

}
}

invitado
24 de Mayo del 2006
int i =0;
while(i<3){
int n = Math.random()*6
if(!estaEnArray(n)){
correctas[i]=n;
i++;
}
}

// el metodo que comprueba si ese numero esta en el array

boolean estaEnArray(int n){
for(int i=0;i<correctas.length;i++){
if(correctas[i]==n){
return true;
}
return false;
}