📅  最后修改于: 2023-12-03 15:40:49.884000             🧑  作者: Mango
在 Java 中生成特定范围内的随机数是一个常见的需求。比如,我们可能需要在一个给定的范围内随机选择一个整数,或者在一个数组中随机选择一个元素等等。在这篇文章中,我们将介绍如何在 Java 中生成特定范围内的随机数。
在 Java 中,我们可以使用 java.util.Random
类来生成随机数。这个类提供了多个方法可以生成不同类型的随机数,比如 nextInt()
方法可以生成一个随机的整数。但是,如果我们需要生成一个在特定范围内的随机数,就需要进行一些计算了。
假设我们需要在区间 [min, max]
内生成一个随机的整数,我们可以使用如下的代码:
import java.util.Random;
public class RandomNumberGenerator {
public static int generate(int min, int max) {
Random random = new Random();
return random.nextInt(max - min + 1) + min;
}
}
在这个代码中,我们通过 nextInt()
方法生成了一个范围在 [0, max - min]
的随机整数,然后加上了 min
来获得最终结果。注意,我们要对 max - min + 1
进行加一操作,是因为 nextInt()
方法生成的随机数是不含上界的,所以需要加上一来包含上界。
为了测试上面的代码,我们可以编写一个简单的测试程序:
public class TestRandomNumberGenerator {
public static void main(String[] args) {
int min = 1;
int max = 10;
int[] counts = new int[max - min + 1];
for (int i = 0; i < 10000; i++) {
int number = RandomNumberGenerator.generate(min, max);
counts[number - min]++;
}
for (int i = 0; i < counts.length; i++) {
System.out.printf("%d: %d\n", i + min, counts[i]);
}
}
}
这个测试程序会生成 10000 个在 [min, max]
内的随机整数,并按照每个数字的出现次数逐行输出(应该是大致均匀分布的)。
通过上面的介绍,我们学习了如何在 Java 中生成特定范围内的随机数。希望本文能够帮助到你。