Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Generar números aleatorios en Java: Guía práctica con Random y Math.random

En este tutorial conciso aprenderás a producir valores aleatorios en Java usando los dos enfoques más comunes: java.util.Random y Math.random(). Ambos son parte del JDK, pero cada uno sirve casos de uso ligeramente diferentes y ofrece características únicas.

Generación de números aleatorios con java.util.Random

La clase Random puede producir valores int, long, float, double y boolean. Instánciala una vez y reutiliza el mismo objeto para evitar sobrecarga de rendimiento.

A continuación se muestra un ejemplo completo que genera diez enteros aleatorios entre 0 y 99 (inclusive). Si necesitas que el límite superior sea inclusivo, suma uno al argumento.

import java.util.Random;
public class NumerosAleatorios {
    public static void main(String[] args) {
        Random rng = new Random();
        for (int i = 0; i < 10; i++) {
            int numeroAleatorio = rng.nextInt(100); // 0-99
            System.out.println("Número aleatorio: " + numeroAleatorio);
        }
    }
}

Salida típica:

Número aleatorio: 17
Número aleatorio: 57
Número aleatorio: 73
Número aleatorio: 48
Número aleatorio: 68
Número aleatorio: 86
Número aleatorio: 34
Número aleatorio: 97
Número aleatorio: 73
Número aleatorio: 18

Como Random es thread-safe para la mayoría de usos, puedes compartir la misma instancia entre múltiples hilos si es necesario. Para secuencias reproducibles, pasa una semilla: new Random(42).

Generación de números aleatorios con Math.random()

Cuando solo necesitas un double rápido en el rango [0.0, 1.0), Math.random() es conveniente. Internamente delega en una única instancia Random, por lo que es eficiente para cargas de trabajo pequeñas.

Ejemplo: generar diez valores double.

public class DemoAleatorio {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(Math.random());
        }
    }
}

Salida típica:

0.46518450373334297
0.14859851177803485
0.5628391820492477
0.6323378498048606
0.1740198445692248
0.9140544122258946
0.9167350036262347
0.49251219841030147
0.7426056725722353

Para generar enteros o doubles en un rango diferente, combina Math.random() con aritmética. Por ejemplo, para obtener un int aleatorio entre 1 y 10 inclusive: (int)(Math.random() * 10) + 1.

Conclusiones clave

Java

  1. Despliegue de aplicaciones Java EE en Microsoft Azure: guía paso a paso
  2. Interfaz List en Java: Visión general, implementaciones y métodos clave
  3. Java TreeMap: Domina Mapas Ordenados con Ejemplos Prácticos
  4. Dominando los Algoritmos de Colecciones de Java: Ordenación, Mezcla y Más
  5. Crear un array de objetos en Java: Guía paso a paso
  6. Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
  7. Dominando el método compareTo() de Java String: Sintaxis, casos de uso y ejemplos prácticos
  8. Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos
  9. Convertir Char a String en Java – Ejemplos Prácticos y Mejores Prácticas
  10. Invertir una Cadena en Java Usando Recursión – Guía Paso a Paso
  11. Java 8 Streams: Enfoque Declarativo para Procesamiento de Datos