java - 如何获得范围内为负数的随机数?

标签 java random

<分区>

考虑以下代码:

int rand = new Random().nextInt((30 - 20) + 1) + 20

它将返回 30 到 20 之间的随机数。但是,我需要它的范围包括负数。我如何在生成中包含负数?

我曾尝试使用可能为负的数学运算,但这导致了错误。简单地减去或添加负数不会产生所需的值。


对不起,我才半醒。正确的代码是 int rand = new Random().nextInt((30 - 20) + 1) + 20;

最佳答案

使用 minmax 获取设定范围内的随机数:

int number = random.nextInt(max - min) + min;

它也适用于负数。

所以:

random.nextInt(30 + 10) - 10;
// max = 30; min = -10;

将产生一个介于 -10 和 30(不含)之间的随机整数。

它也适用于 double 。

关于java - 如何获得范围内为负数的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976857/

相关文章:

random - Lisp 偏置数字生成器

java - tomcat中简单的SESSION操作,内存占用持续增长

java - Bouncy CaSTLe 问题和 Triple DES

java - 如何递归连接字符串元素列表

java - Apache Ignite 方法 HibernateRegionFactory.start; V 是抽象的

Python - 骰子和硬币游戏

java - 在 Java 中生成随机数时出错。 (包括代码和错误)

BBC MicroBit 上的 Ada 随机数生成器

c++ - 所有类型的矢量化随机数生成

java - 作业: "Exception in thread "main"java. lang.NullPointerException”