Java Random的参数的作用

本文通过实例探讨了Java中随机数生成器的功能,包括整型最大值与最小值之间的随机数生成,以及随机数生成器初始化参数的影响。通过代码演示,展示了随机数在指定范围内的生成过程。
用事实来说话: 
Random rand =new Random();
rand.nextInt();   

看看这样得出的结果是什么:
package test;

public class Random {
    public Random() {
    }
    
    public static void main(String[] args) {
           java.util.Random random =new java.util.Random();
           System.out.println("Integer Max:"+Integer.MAX_VALUE);
           System.out.println("-------------------------------");
         for(int i=0;i<10;i++){
             System.out.println(random.nextInt());
         }
         System.out.println("-------------------------------");
         System.out.println("Integer Min:"+Integer.MIN_VALUE);
       }
}

结果如下:

Integer Max:2147483647
-------------------------------
2013044148
1926459619
1860587051
787541552
-1923937766
-573613010
-655315899
-1392871582
826019786
-169246156
-------------------------------
Integer Min:-2147483648


看看随即数值是不是在Integer.MAX_VALUE---Integer.MIN_VALUE值之间再看一个测试:

Random rand =new Random(25); 

public class Random {
    public Random() {
    }
    
    public static void main(String[] args) {
           java.util.Random random =new java.util.Random(25);
           System.out.println("-------------------------------");
         for(int i=0;i<10;i++){
             System.out.println(random.nextInt());
         }
         System.out.println("-------------------------------");
       }
}

运行结果如下:

-------------------------------
-1152791334
-222412840
230749894
-5655819
-1523272502
939553597
319875191
1391492874
26074393
1190133908
-------------------------------

可以看出随即的结果仍然在Integer.MAX_VALUE---Integer.MIN_VALUE值之间
初始化值 25并没有作用 只是随机数生成器初始化的种子

继续下一个测试:
rand.nextInt(100);
package test;

public class Random {
    public Random() {
    }
    
    public static void main(String[] args) {
           java.util.Random random =new java.util.Random(70);
           System.out.println("-------------------------------");
         for(int i=0;i<10;i++){
             System.out.println(random.nextInt(100));
         }
         System.out.println("-------------------------------");
       }
}

运行结果如下:
-------------------------------
46
90
30
15
41
94
94
64
65
99
-------------------------------

可以看出 Random rand =new Random(25); 初始化时 25并没有起直接作用rand.nextInt(100); 中的100是随机数的上限 产生的随机数为0-100的整数 不包括100

转自百度知道 http://zhidao.baidu.com/question/87159986.html




                
### Java 中 `Random` 类的使用方法 #### 创建 `Random` 对象实例 为了生成随机数,首先需要创建一个 `Random` 类的对象。这可以通过调用无参构造函数来完成。 ```java import java.util.Random; public class RandomExample { public static void main(String[] args) { // 实例化 Random 对象 Random randomGenerator = new Random(); } } ``` #### 生成不同类型的随机数值 ##### 整型随机数 (`nextInt`) 可以利用 `nextInt()` 方法获取下一个伪随机整数。如果不带参数,则返回的是整个 int 范围内的值;如果带有正整数 n 参数,则会得到 [0, n) 的均匀分布整数[^1]。 ```java // 获取介于 0 到 Integer.MAX_VALUE 之间的随机整数 int randomInt = randomGenerator.nextInt(); System.out.println("A random integer value between 0 and MAX_INT: " + randomInt); // 获取指定范围内 (比如 1 至 10) 的随机整数 int rangeMin = 1; int rangeMax = 10; int boundedRandomInt = randomGenerator.nextInt(rangeMax - rangeMin + 1) + rangeMin; System.out.println("A random integer within a specified range [" + rangeMin + ", " + rangeMax + "]: " + boundedRandomInt); ``` ##### 浮点型随机数 (`nextDouble`, `nextFloat`) 对于浮点数而言,有专门的方法用于生成双精度和单精度浮点数形式的随机数: - `nextDouble()` 返回 [0.0, 1.0) 区间内均匀分布的 double 值。 - `nextFloat()` 同样作用但是返回 float 类型的结果。 ```java double randomDouble = randomGenerator.nextDouble(); float randomFloat = randomGenerator.nextFloat(); System.out.println("A random double precision floating-point number: " + randomDouble); System.out.println("A random single precision floating-point number: " + randomFloat); ``` #### 随机布尔值 (`nextBoolean`) 有时也需要模拟抛硬币的情况,这时就可以借助 `nextBoolean()` 来实现真/假两种状态之一的概率事件发生。 ```java boolean coinTossResult = randomGenerator.nextBoolean(); if (coinTossResult) { System.out.println("The result was heads."); } else { System.out.println("The result was tails."); } ``` #### 设置种子 (`setSeed`) 通过设置相同的种子可以让每次运行程序时都获得相同序列的“随机”数,这对于调试非常有用。 ```java long seedValue = 42L; // 可以是任意 long 类型常量 randomGenerator.setSeed(seedValue); for (int i = 0; i < 5; ++i) { System.out.print(randomGenerator.nextInt(100) + " "); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值