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` 实例,然后使用其方法生成不同类型的随机数。示例代码如下: ```java import java.util.Random; public class RandomExample { public static void main(String[] args) { // 创建Random实例 Random random = new Random(); // 生成0到9的随机整数 int num = random.nextInt(10); // 生成[0,1)之间的随机小数 double decimal = random.nextDouble(); // 生成随机布尔值 boolean flag = random.nextBoolean(); System.out.println("随机整数: " + num); System.out.println("随机小数: " + decimal); System.out.println("随机布尔值: " + flag); } } ``` #### 生成指定范围随机数 可以通过一定的数学变换生成指定范围的随机数。示例代码如下: ```java import java.util.Random; public class RandomRangeExample { public static void main(String[] args) { Random random = new Random(); // 生成[5,15)范围的随机数 int rangeNum = 5 + random.nextInt(10); // 生成[20,30]闭区间随机数 int closedRange = 20 + random.nextInt(11); // 生成1到100的随机偶数 int evenNum = 2 * (1 + random.nextInt(50)); System.out.println("[5,15)范围的随机数: " + rangeNum); System.out.println("[20,30]闭区间随机数: " + closedRange); System.out.println("1到100的随机偶数: " + evenNum); } } ``` ### 核心原理:种子与算法 #### 种子机制揭秘 使用固定种子创建 `Random` 对象,会生成可预测的随机序列。示例代码如下: ```java import java.util.Random; public class RandomSeedExample { public static void main(String[] args) { // 使用固定种子 Random seededRandom = new Random(12345L); // 生成可预测序列 System.out.println(seededRandom.nextInt(100)); System.out.println(seededRandom.nextInt(100)); } } ``` ### 其他常用方法 - `public int nextInt(int n)`:生成一个随机的 `int` 值,该值介于 `[0,n)` 的区间,也就是 0 到 n 之间的随机 `int` 值,包含 0 而不包含 n [^2]。 - `public void setSeed(long seed)`:重新设置 `Random` 对象中的种子数。设置完种子数以后的 `Random` 对象和相同种子数使用 `new` 关键字创建出的 `Random` 对象相同 [^2]。 - `public float nextFloat()`:用于从该随机值生成器生成介于 0.0 和 1.0 之间的下一个伪随机浮点值 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值