Java 使用BigInteger时如何选择范围内的随机数

Java 使用BigInteger时如何选择范围内的随机数,java,biginteger,Java,Biginteger,介于2和bigInteger-2之间的范围 您可以在闭合范围[x1,x2]中生成如下所示的随机双精度: 使用范围介于2和bigInteger-2之间的大小数: double f = Math.random()/Math.nextDown(1.0); double x = x1*(1.0 - f) + x2*f; 好的,您可以使用类似于new biginger(biginger.subtract(biginger.valueOf(4)).bitCount(),new Random()).add(

介于2和bigInteger-2之间的范围

您可以在闭合范围[x1,x2]中生成如下所示的随机双精度:

使用范围介于2和bigInteger-2之间的大小数:

double f = Math.random()/Math.nextDown(1.0);
double x = x1*(1.0 - f) + x2*f;

好的,您可以使用类似于
new biginger(biginger.subtract(biginger.valueOf(4)).bitCount(),new Random()).add(biginger.valueOf(2))
-只需看看JavaDoc。这是否回答了您的问题?
double f = Math.random()/Math.nextDown(1.0);
double x = x1*(1.0 - f) + x2*f;
double f = Math.random()/Math.nextDown(1.0);
BigDecimal.valueOf(2).multiply(BigDecimal.valueOf(1.0 - f)).add(new BigDecimal(bigInteger.subtract(BigInteger.valueOf(2))).multiply(BigDecimal.valueOf(f))).toBigInteger()