我知道在一个范围内还有另外一个关于随机的问题,但他们的答案都没有完成我想要做的事情.实际上他们有同样的错误.我写了这个简单的函数来生成随机范围.
Random m_random = new Random();
...
public int RandomWithRange(int min, int max) {
return m_random.nextInt(max - min + 1) + min;
}
Run Code Online (Sandbox Code Playgroud)
如果range大于Integer.MAX_VALUE,则抛出IllegalArgumentException:n必须为正数.我知道它溢出并转向负数.我的问题是如何处理?
示例范围;
注意:min和max必须包含在内.
在这种情况下,您不能使用int.你需要使用BigInteger.以下构造函数执行您想要的操作(当然需要根据您的需要进行调整):
BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)
构造一个随机生成的BigInteger,均匀分布在0到(2numBits - 1)的范围内,包括0和(2numBits - 1).
归档时间: |
|
查看次数: |
1437 次 |
最近记录: |