Foros del Web » Programación para mayores de 30 ;) » Java »

Generar Random 4 random y comprobar

Estas en el tema de Generar Random 4 random y comprobar en el foro de Java en Foros del Web. Hola muchachos, necesito comprobar 4 random distintos para que no se repitan. Lo hice mediante un while y tambien con do while pero no funciona ...
  #1 (permalink)  
Antiguo 02/08/2013, 22:04
 
Fecha de Ingreso: febrero-2012
Mensajes: 19
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Generar Random 4 random y comprobar

Hola muchachos, necesito comprobar 4 random distintos para que no se repitan. Lo hice mediante un while y tambien con do while pero no funciona les paso el codigo para que lo miren.

Esto debo realizarlo mediante programación estructurada.

Código:
         while (ranResA == ranResB || ranResA == ranResC || ranResA == ranResD || ranResB == ranResC || ranResB == ranResD || ranResC == ranResD ){
 
            ranResA = rnd.nextInt(3)+1;
            ranResB = rnd.nextInt(3)+1;
            ranResC = rnd.nextInt(3)+1;
            ranResD = rnd.nextInt(3)+1;
    };
        
        
        JOptionPane.showMessageDialog(null,"Pregunta: " + matrizPreguntas[nivel][numeroPregunta][0]+"\n "
                + "Respuesta A:"+matrizPreguntas[nivel][numeroPregunta][ranResA]
                + "\n Respuesta B:"+matrizPreguntas[nivel][numeroPregunta][ranResB]
                + "\n Respuesta C:"+matrizPreguntas[nivel][numeroPregunta][ranResC]
                + "\n Respuesta D:"+matrizPreguntas[nivel][numeroPregunta][ranResD]
                );
  #2 (permalink)  
Antiguo 03/08/2013, 10:06
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Pregunta Respuesta: Generar Random 4 random y comprobar

Hola,

Cita:
Iniciado por juanpablosolari Ver Mensaje
Hola muchachos, necesito comprobar 4 random distintos para que no se repitan.
Posiblemente te es de alguna ayuda,

http://www.forosdelweb.com/f45/crear...6/#post3538757
http://www.forosdelweb.com/f45/relle...6/#post3124298

Saludos,
  #3 (permalink)  
Antiguo 03/08/2013, 21:56
 
Fecha de Ingreso: febrero-2012
Mensajes: 19
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Generar Random 4 random y comprobar

Hola HackmanC, primero te agradezco tu cordial respuesta.

Vi los post con anterioridad pero no pude comprender el codigo de comprobacion. Trate de decifrarlo y adaptarlo a mi caso pero no puede hacer que funcione.

Podrias explicarme un poco mas sobre eso?

Gracias!
  #4 (permalink)  
Antiguo 03/08/2013, 23:19
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Generar Random 4 random y comprobar

Hola,

Cita:
Iniciado por juanpablosolari Ver Mensaje
...
Podrias explicarme un poco mas sobre eso?
...
Código:
    public int[] obtenerAleatorio() {
        int i = 0, j = 0, k = 0;
        int rand[] = new int[4];
        while (i < 4) rand[i] = ++i; // Nota 1
 
        for (i = 0; i < 4; i++) { // Nota 2
            j = (int) (Math.random() * 4);
            k = rand[i]; rand[i] = rand[j]; rand[j] = k;
        }

        return rand;
    }
Nota 1:
En ese momento se ponen los valores del 1 al 4 en el arreglo "rand", es una forma optimizada de llenar un arreglo, usando una estructura de control simple, incrementando el valor de la variable "i" de una forma pre-fija (antes de usar la variable) al asignar el valor. También se podría hacer un "for" u otros de una manera mas clara.

Nota 2:
En ese ciclo "for", el arreglo "rand" se "desordena", moviendo 4 veces los números entre si, de forma que solamente cambian de posición. El indice a donde se mueve va en orden, el índice que se mueve es el que se genera aleatoriamente. En decir, 4 veces se genera un número del 1 al 4 para saber que indice del arreglo mover a otra posición.

La función la podrìas usar de esta forma,

Código:
int[] valores = obtenerAleatorio();

ranResA = valores[0];
ranResB = valores[1];
ranResC = valores[2];
ranResD = valores[3];

Saludos,
  #5 (permalink)  
Antiguo 06/08/2013, 17:17
 
Fecha de Ingreso: febrero-2012
Mensajes: 19
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Generar Random 4 random y comprobar

Mil gracias. Funciono perfecto! Solucionado!

Etiquetas: programa, random
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:04.