生成指定范围内的随机数

    public static void main(String[] args) {
        Integer MAX = 100000;
        Integer MIN = 1;
        Random rand = new Random();
        for (int i = 0; i < 1000; i++) {
            // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
            int randNumber = rand.nextInt(MAX - MIN + 1) + MIN;
            System.out.println(randNumber);
        }
    }

### Java 中使用 `Math.random()` 生成指定范围内随机数 `Math.random()` 方法返回一个介于 `[0, 1)` 的伪随机浮点数[^1]。为了生成指定范围内随机数,可以通过简单的算术运算将其映射到所需的区间。 假设需要生成一个在 `[min, max)` 范围内的随机整数,则可以按照以下方式实现: ```java public class RandomNumberGenerator { public static int getRandomNumberInRange(int min, int max) { if (min >= max) { throw new IllegalArgumentException("Max must be greater than min"); } return (int)(Math.random() * (max - min)) + min; // 将 [0,1) 映射到 [min,max) } public static void main(String[] args) { int min = 10; int max = 20; System.out.println(getRandomNumberInRange(min, max)); } } ``` 上述代码通过 `(Math.random() * (max - min)) + min` 实现了将 `[0,1)` 转换为 `[min, max)` 的功能。需要注意的是,由于 `Math.random()` 返回的值永远不会等于 1,因此最大值不会被包含在结果集中。 如果希望生成双精度类型的随机数而不是整数,只需移除强制类型转换部分即可: ```java public static double getRandomDoubleInRange(double min, double max) { return Math.random() * (max - min) + min; // 对应双精度数值的计算 } ``` 尽管 `Math.random()` 提供了一种简单的方式来生成随机数,但它并不是真正的随机数发生器[^2]。实际上,它依赖于底层算法产生的伪随机序列[^3]。对于大多数应用来说,这种伪随机性已经足够;但在安全性要求较高的场景下(如加密),建议改用更安全的随机数生成机制,例如 `SecureRandom` 类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值