Java Random

java.util.Random类有两种方式构建方式:带种子和不带种子

 

1.不带种子

package testjava01;

public class Random {


    public static void main(String[] args) {
        java.util.Random r = new java.util.Random();
        for(int i = 0; i<2;i++){
            System.out.println(r.nextInt());
        }
    }

}

 

2.带种子

  返回结果都是一样

package testjava01;

public class RandomTest {

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

}

 

3.

random对象的nextInt(),nextInt(int n)方法的说明:

  int nextInt()

  返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

  int nextInt(int n)

  返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。

 

### 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) + " "); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值