¿Cómo podemos generar un número aleatorio muy grande en Java? Estoy hablando de algo así como 10000 dígitos. Sé que tenemos que usar BigInteger, pero ¿cómo podemos hacer esto? ¿Cuál es la forma más eficiente de hacer algo como esto? Por favor, brinde un pequeño ejemplo. Gracias.Generando números aleatorios muy grandes java
Respuesta
Bueno, una forma es ir a Random.org y descargar uno de los archivos binarios aleatorios. Los archivos se generan a partir del ruido atmosférico, por lo que es muy aleatorio. Lo usé para llaves Zobrist en mi motor de ajedrez.
Alternativamente, usted podría ir
BigInteger b = new BigInteger(256, new Random());
que le dará lo que quiere. En este ejemplo, un BigInteger que consta de 256 bits.
Combine Random.nextBytes(byte[])
con BigInteger(byte[])
.
import java.util.*;
import java.math.*;
class Test{
public static void main(String[]_){
int n = 16;
Random r = new Random();
byte[] b = new byte[n];
r.nextBytes(b);
BigInteger i = new BigInteger(b);
System.out.println(i);
}
}
+1: Posiblemente utilice mod() para obtener un número específico de dígitos. –
¿me puede explicar cómo funciona esto? Estoy más o menos confundido en la parte de bytes ... gracias –
Asigna una matriz de bytes, nextBytes lo llena con valores aleatorios, y luego BigInteger se inicializa como el número binario definido por esa secuencia de bytes. Pero creo que la solución de Jaco es más concisa. – Vlad
- 1. Generando números aleatorios no uniformes
- 2. Generando Números Aleatorios en Go
- 3. Generando REALMENTE grandes números primos
- 4. Cómo generar números aleatorios grandes C
- 5. números aleatorios en Java
- 6. Algoritmo para dividir números muy grandes
- 7. BigDecimal.movePointRight() se bloquea con números muy grandes
- 8. Cálculo de números enteros muy grandes
- 9. Generando números aleatorios en Objective C para iPhone SDK
- 10. ¿Por qué Haskell maneja números muy grandes fácilmente?
- 11. Problema con scipy.optimize.fmin_slsqp cuando se usan números muy grandes o muy pequeños
- 12. especial de números aleatorios
- 13. Generando UUID aleatorios en Linux
- 14. Generando enteros aleatorios con probabilidades dadas
- 15. Java Números aleatorios usando una semilla
- 16. de impresión muy grandes números de punto flotante
- 17. Números aleatorios no repetitivos
- 18. Java 7: ThreadLocalRandom que genera los mismos números aleatorios
- 19. Impresión BigIntegers muy grandes
- 20. Multiplicación rápida de enteros muy grandes
- 21. Números aleatorios usando C#
- 22. Haskell y números aleatorios
- 23. Números aleatorios en C
- 24. Probabilidad de números aleatorios
- 25. Números aleatorios y negativos
- 26. Análisis de números aleatorios
- 27. Generando resultados aleatorios por peso en PHP?
- 28. Generando palabras aleatorias en Java?
- 29. Resharper con archivos grandes o * muy * grandes
- 30. Crappy generador de números aleatorios
+1. Fueron cuatro constructores en la documentación, no lo vi: D. – Vlad
¡Sucede lo mejor de nosotros! –