gpt4 book ai didi

java - 在大于 Integer.MAX_VALUE 的范围内选择随机整数?

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:00 25 4
gpt4 key购买 nike

我知道还有另一个关于范围内随机的问题,但他们的答案都没有完成我正在尝试做的事情。实际上他们有和我一样的错误。我编写了这个简单的函数来生成具有范围的随机数。

Random m_random = new Random();
...
public int RandomWithRange(int min, int max) {
return m_random.nextInt(max - min + 1) + min;
}

如果范围大于 Integer.MAX_VALUE,它会抛出 IllegalArgumentException:n 必须为正数。我知道它溢出并变成负数。我的问题是如何处理?

示例范围;

  • [0, Integer.MAX_VALUE]
  • [整数.MIN_VALUE, 整数.MAX_VALUE]
  • [-100, Integer.MAX_VALUE]

注意:最小值和最大值必须包含在内。

最佳答案

在这种情况下你不能使用 int。您需要使用 BigInteger .以下构造函数执行您想要的操作(当然需要根据您的需要进行一些调整):

BigInteger(int numBits, Random rnd) 

Constructs a randomly generated BigInteger, uniformly distributed over the range 0 to (2numBits - 1), inclusive.

关于java - 在大于 Integer.MAX_VALUE 的范围内选择随机整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com