La clase aleatoria se utiliza para generar números pseudoaleatorios en java. Una instancia de esta clase es segura para subprocesos. Sin embargo, la instancia de esta clase es criptográficamente insegura. Esta clase proporciona varias llamadas a métodos para generar diferentes tipos de datos aleatorios, como float, double, int.
Constructores:
- Random() : Crea un nuevo generador de números aleatorios
- Aleatorio (semilla larga) : crea un nuevo generador de números aleatorios utilizando una sola semilla larga
Declaración:
public class Random extends Object implements Serializable
Métodos:
- java.util.Random.doubles(): Devuelve un flujo efectivamente ilimitado de valores dobles pseudoaleatorios, cada uno entre cero (inclusive) y uno (exclusivo)
Sintaxis:public DoubleStream doubles() Returns: a stream of pseudorandom double values
- java.util.Random.ints(): Devuelve un flujo efectivamente ilimitado de valores int pseudoaleatorios
Sintaxis:public IntStream ints() Returns: a stream of pseudorandom int values
- java.util.Random.longs(): Devuelve un flujo efectivamente ilimitado de valores largos pseudoaleatorios
Sintaxis:public LongStream longs() Returns: a stream of pseudorandom long values
- next(int bits): java.util.Random.next(int bits) Genera el siguiente número pseudoaleatorio
Sintaxis:protected int next(int bits) Parameters: bits - random bits Returns: the next pseudo random value from this random number generator's sequence
- java.util.Random.nextBoolean(): Devuelve el siguiente valor booleano pseudoaleatorio, uniformemente distribuido de la secuencia de este generador de números aleatorios
Sintaxis:public boolean nextBoolean() Returns: the next pseudorandom, uniformly distributed boolean value from this random number generator's sequence
- java.util.Random.nextBytes(byte[] bytes) : genera bytes aleatorios y los coloca en una array de bytes proporcionada por el usuario
Sintaxis:public void nextBytes(byte[] bytes) Parameters: bytes - the byte array to fill with random bytes Throws: NullPointerException - if the byte array is null
- java.util.Random.nextDouble(): Devuelve el siguiente valor doble pseudoaleatorio, uniformemente distribuido entre 0.0 y 1.0 de la secuencia de este generador de números aleatorios
Sintaxis:public double nextDouble() Returns: the next pseudo random, uniformly distributed double value between 0.0 and 1.0 from this random number generator's sequence
- java.util.Random.nextFloat(): Devuelve el siguiente valor flotante pseudoaleatorio, uniformemente distribuido entre 0.0 y 1.0 de la secuencia de este generador de números aleatorios.
Sintaxis:public float nextFloat() Returns: the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from this random number generator's sequence
- java.util.Random.nextGaussian(): Devuelve el siguiente valor doble pseudoaleatorio, gaussiano (“normalmente”) distribuido con media 0,0 y desviación estándar 1,0 de la secuencia de este generador de números aleatorios
Sintaxis:public double nextGaussian() Returns: the next pseudorandom, Gaussian ("normally") distributed double value with mean 0.0 and standard deviation 1.0 from this random number generator's sequence
- java.util.Random.nextInt() : Devuelve el siguiente valor int pseudoaleatorio, uniformemente distribuido de la secuencia de este generador de números aleatorios
Sintaxis:public int nextInt() Returns: the next pseudorandom, uniformly distributed int value from this random number generator's sequence
- java.util.Random.nextInt(int enlazado): Devuelve un valor int pseudoaleatorio, uniformemente distribuido entre 0 (inclusive) y el valor especificado (exclusivo), extraído de la secuencia de este generador de números aleatorios
Sintaxis:public int nextInt(int bound) Parameters: bound - the upper bound (exclusive). Must be positive. Returns: the next pseudorandom, uniformly distributed int value between zero (inclusive) and bound (exclusive) from this random number generator's sequence Throws: IllegalArgumentException - if bound is not positive
- java.util.Random.nextLong(): Devuelve el siguiente valor largo pseudoaleatorio, uniformemente distribuido de la secuencia de este generador de números aleatorios
Sintaxis:public long nextLong() Returns: the next pseudorandom, uniformly distributed long value from this random number generator's sequence
- java.util.Random.setSeed(semilla larga): Establece la semilla de este generador de números aleatorios usando una sola semilla larga
Sintaxis:public void setSeed(long seed) Parameters: seed - the initial seed
Métodos heredados de la clase java.lang.Object
- clon
- es igual
- finalizar
- obtenerClase
- código hash
- notificar
- notificar a todos
- Espere
Programa Java para demostrar el uso de la clase Random
// Java program to demonstrate // method calls of Random class import java.util.Random; public class Test { public static void main(String[] args) { Random random = new Random(); System.out.println(random.nextInt(10)); System.out.println(random.nextBoolean()); System.out.println(random.nextDouble()); System.out.println(random.nextFloat()); System.out.println(random.nextGaussian()); byte[] bytes = new byte[10]; random.nextBytes(bytes); System.out.printf("["); for(int i = 0; i< bytes.length; i++) { System.out.printf("%d ", bytes[i]); } System.out.printf("]\n"); System.out.println(random.nextLong()); System.out.println(random.nextInt()); long seed = 95; random.setSeed(seed); // Note: Running any of the code lines below // will keep the program running as each of the // methods below produce an unlimited random // values of the corresponding type /* System.out.println("Sum of all the elements in the IntStream returned = " + random.ints().count()); System.out.println("Count of all the elements in the DoubleStream returned = " + random.doubles().count()); System.out.println("Count of all the elements in the LongStream returned = " + random.longs().count()); */ } }
Producción:
4 true 0.19674934340402916 0.7372021 1.4877581394085997 [-44 75 68 89 81 -72 -1 -66 -64 117 ] 158739962004803677 -1344764816
Referencia:
Este artículo es una contribución de Mayank Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA