📜  特定范围内的 java 随机数 - Java (1)

📅  最后修改于: 2023-12-03 15:40:49.884000             🧑  作者: Mango

特定范围内的 Java 随机数 - Java

在 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 中生成特定范围内的随机数。希望本文能够帮助到你。