我需要生成0(包括)到n(不包括)范围内的任意大的随机整数.我最初的想法是调用nextDouble并乘以n,但是一旦n大于2 53,结果将不再均匀分布.
BigInteger 有以下构造函数可用:
public BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)
构造一个随机生成的BigInteger,均匀分布在0到(2 numBits - 1)的范围内,包括0和(2 numBits - 1).
如何使用它来获得0到n范围内的随机值,其中n不是2的幂?
在Java中,我需要在0和之间随机生成一个数字0.06.
我在这里看到另一个问题,下面的代码可以解决这个问题:
Random generator = new Random();
double number = generator.nextDouble() * .06;
Run Code Online (Sandbox Code Playgroud)
然而,这样做给了我很长的数字,0.007044013589130205而且0.03656588431980957,我认为这不是我的导师所期待的.
反正有没有生成0到0.06之间只有两位或三位小数的随机数?