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

java random?

Estas en el tema de java random? en el foro de Java en Foros del Web. Hola, Tengo que obtener números de manera randomica entre -5 y 5. Como puedo hacer eso? Se que puedo obtener un numero randomico entre 0 ...
  #1 (permalink)  
Antiguo 02/12/2010, 07:15
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
java random?

Hola,

Tengo que obtener números de manera randomica entre -5 y 5.
Como puedo hacer eso?

Se que puedo obtener un numero randomico entre 0 y 5 si lo hago asi:

numero = randomNumbers.nextInt(6);

Pero en ese caso solo tomo 0, 1, 2, 3, 4, 5 pero no los negativos.
Como puedo incluir los negativos en esta selección?

Gracias!!!
  #2 (permalink)  
Antiguo 02/12/2010, 07:30
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 2 meses
Puntos: 8
Respuesta: java random?

Cita:
Iniciado por Jarkaos Ver Mensaje
Hola,

Tengo que obtener números de manera randomica entre -5 y 5.
Como puedo hacer eso?

Se que puedo obtener un numero randomico entre 0 y 5 si lo hago asi:

numero = randomNumbers.nextInt(6);

Pero en ese caso solo tomo 0, 1, 2, 3, 4, 5 pero no los negativos.
Como puedo incluir los negativos en esta selección?

Gracias!!!
Muy facil numero = randomNumbers.nextInt(11) -5;
  #3 (permalink)  
Antiguo 02/12/2010, 08:05
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
Respuesta: java random?

Gracias,
Pero como obtengo sus decimales? Ej: 3.45 , -4.90
  #4 (permalink)  
Antiguo 02/12/2010, 08:14
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
Respuesta: java random?

Quizas sea mas claro si coloco el código.
En pocas palabras el juego trata de un usuario que le lanza banas a un mono que esta a 100 metros de distancia cuando comienza el juego, por cada lanzamiento fallido el mono se acerca 10 metros al usuario. Si llega donde el usuario, pierde el juego.
El viento se calcula randomicamente y por cada lanzamiento disminuye su intensidad. El valor del viento esta entre -5 y 5.

Este es el codigo (se agradecen los puntos de vista):

Código PHP:
import java.util.Random;
import java.util.Scanner;
import static java.lang.Math.*;


public class 
MonkeyGame {
    public static 
void main(String args[]) {
        
double monkeyDistance 100;
        
double gravity 9.81;
        
double minAccuracymaxAccuracyspeedangleradianlaunchDistancewind;
        
int points 0;
        
int launches 1;

        
Scanner input = new Scanner(System.in);

        
//Obtener un valor randomico para el viento (con dos decimales)
        
Random randomWind = new Random();
        
wind randomWind.nextInt(11)-5;

        while (
launches <= 5) {

            
System.out.println("Distancia hasta el mono " monkeyDistance);
            
System.out.println("Intento: " launches);
            
System.out.println("Viento: " wind);
            
minAccuracy = - 1;
            
maxAccuracy = + 1;

            
            
//Pedir informacion al usuario
            
System.out.print("Velocidad: ");
            
speed input.nextDouble();

            
System.out.print("Angulo: ");
            
angle input.nextDouble();

            
//Convertor los angulos a radianes
            
radian toRadians(angle);

            
//Calular la distancia del lanzamiento
            
launchDistance speed speed cos(radian) * sin(radian) / gravity wind speed sin(radian) / gravity;

            
//Comprobar si el lanzamiento cae dentro de los parametros
            
if(launchDistance >= minAccuracy && launchDistance <= maxAccuracy) {
                
System.out.print("Blanco! 1 punto");
                
points++;
            }

            
// Si falla disminuye la distancia hasta el mono en 10 metros y se actualiza la cantidad de lanzamientos
            
System.out.println("Fallaste!!");
            
System.out.println();
            
monkeyDistance monkeyDistance 10;
           
            
launches++;
        }

        
//Se suman los puntos
        
if(points >= 5) {
            
System.out.println("Ganaste con " points " puntos.");
        } else {
            
System.out.println("Te ha comido!!");
        }

    }


  #5 (permalink)  
Antiguo 02/12/2010, 13:21
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 14 años
Puntos: 32
Respuesta: java random?

Hola:

Código JAVA:
Ver original
  1. wind = randomWind.nextInt(1100)-500;  // En centímetros
  2.  
  3. // De nuevo a metros: (wind/100)
  4. launchDistance = 2 * speed * speed * cos(radian) * sin(radian) / gravity - (wind/100) * speed * sin(radian) / gravity;

slds;

Nup_
  #6 (permalink)  
Antiguo 02/12/2010, 13:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: java random?

Cita:
Random r = new Random();
double b = (r.nextInt(2)==0?-1:1)*5*r.nextDouble();
El 0 tendrá el doble de posibilidades [0,-0] pero supongo que eso no es un gran problema.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 02/12/2010, 14:30
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
Respuesta: java random?

Gracias,

Random r = new Random();
double b = (r.nextInt(2)==0?-1:1)*5*r.nextDouble();

me funciona, solo que no entiendo que es lo que haces aqui? No comprendo "0?1:1"

/Americo
  #8 (permalink)  
Antiguo 03/12/2010, 01:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: java random?

Tremenda Xerelo :D me ha encantado

Saca el random, mira que int es el mas proximo (0 o 1)

0?-1:1 ==> Si es cero le asigna valor -1 // Si no, le deja 1 (if-else simplificada)

... el resto ya lo comprendiste :D
  #9 (permalink)  
Antiguo 03/12/2010, 08:22
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
Respuesta: java random?

Gracias por la aclaración.

Voy a intentar crear un método con esta formula para reutlizarla ya que he comprendido mal lo que se hace con este valor, en un principio pensaba que el valor debía bajar por cada lanzamiento pero en realidad se debe obtener un nuevo valor por cada lanzamiento.

Gracias!!
  #10 (permalink)  
Antiguo 03/12/2010, 10:04
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 22 años
Puntos: 2
Respuesta: java random?

Solucionado, movi el metodo random dentro del while y funciona

Etiquetas: 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 10:29.