double valor1 = Math.random()

Anuncio
APUNTES JAVA
NÚMEROS ALEATORIOS
Considere el siguiente enunciado:
double valor1 = Math.random();
La función random de la clase Math genera un valor double entre 0 y 1, random produce valores al
azar, todos los valores de dicho intervalo tienen la misma oportunidad (o probabilidad) de ser escogidos
cada vez que se invoca random.
El intervalo de valores que random produce directamente a menudo es diferente del que se necesita en
una aplicación específica. Por ejemplo. Un programa que simula el lanzamiento de una moneda podría
requerir sólo 0 para “cara” y 1 para “cruz”. Un programa que simula el lanzamiento de un dado ordinario
requeriría enteros aleatorios dentro el intervalo de 1 a 6.
Las siguientes instrucciones generan los siguientes resultados:
(int)(Math.random() * 2) //produce los enteros 0 y 1
(int)(Math.random() * 3) //produce los enteros 0 , 1 y 2
(int)(Math.random() * 6) //produce los enteros 0 a 5
1 + (int)(Math.random() * 6) //produce los enteros 1 a 6
5 + (int)(Math.random() * 6) //produce los enteros 5 a 10
Como demostración de random, crearemos un programa para simular 20 lanzamientos de un dado e
imprimiremos el valor de cada tirada.
class Aleatorio
{
public static void main(String args[])
{
int con=0;
while (con<20)
{
//genera un número entre 1 y 6
int r=1+(int)(Math.random()*6);
//mostramos en pantalla el número generado
System.out.println(r);
con++;
}
}
}
Ejercicios
Ejercicio 1. Programa que llena un vector con 10 valores (0 y 1) generados aleatoriamente, y
posteriormente visualice los datos del vector.
class Generar10
{
public static void main(String args[])
{
int v[ ]=new int[10];
for(int i=0;i<10;i++)
v[i]=(int)(Math.random()*2);
for(int i=0;i<10;i++)
System.out.println(v[i]);
}
}
Ejercicio 2. Programa que genera 20 números aleatorios entre el rango de A y B, (A y B por teclado).
Por ejemplo si A=5 y B=20, entonces se deben generar 20 números generados aleatoriamente entre 5 y
20
import java.util.*;
class generar20
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
int A=en.nextInt();
int B=en.nextInt();
int v[ ]=new int[20];
for(int i=0;i<20;i++)
v[i]=A+(int)(Math.random()*(B-A+1));
for(int i=0;i<20;i++)
System.out.println(v[i]);
}
}
Descargar