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]); } }