positivos - Generando números aleatorios muy grandes java
metodo random java (2)
¿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.
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 podrías ir
BigInteger b = new BigInteger(256, new Random());
que te dará lo que quieres. 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);
}
}