Random类及其方法使用

本文深入解析 Java 中的 Random 类,包括其构造方法、成员方法及有参与无参构造的区别。通过实例演示如何生成随机数,并展示不同构造方式下随机数序列的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仅供个人学习,如有侵权请联系删除。

    Random类的概述
            * 此类用于产生随机数如果用相同的种子创建两个 Random 实例,
            * 则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
    构造方法
            * public Random()
            * public Random(long seed)
    成员方法
            * public int nextInt()
            * public int nextInt(int n)

其中Random有参构造和无参构造的区别如下:

无参构造每次使用nextInt都不一样。使用的函数和当前的时间有关。

有参构造每次使用nextInt。使用的函数和传入的参数有关。第一次使用的结果一样,第二次使用的结果也一样。

将下列代码刷新之后,循环十次的代码变化,剩下两次的结果不变。

public static void main(String[] args) {
		Random r = new Random();
		/*int x = r.nextInt();
		
		System.out.println(x);*/
		
		for(int i = 0; i < 10; i++) {
			//System.out.println(r.nextInt());
			System.out.println(r.nextInt(100));			//要求掌握,生成在0到n范围内的随机数,包含0不包含n
		}
		
		/*
		 * -1244746321
			1060493871
			
			-1244746321
			1060493871

		 */
		Random r2 = new Random(1001);
		
		int a = r2.nextInt();
		int b = r2.nextInt();
		
		System.out.println(a);
		System.out.println(b);
	}

 

`np.random` 是 NumPy 库中的一个模块,用于生成随机数和执行随机抽样操作。以下是一些常用的 `np.random` 方法及其使用方法: 1. **生成随机数**: - `np.random.rand(d0, d1, ..., dn)`:生成一个形状为 `(d0, d1, ..., dn)` 的数组,数组中的元素是 `[0, 1)` 区间内的随机浮点数。 - `np.random.randn(d0, d1, ..., dn)`:生成一个形状为 `(d0, d1, ..., dn)` 的数组,数组中的元素是标准正态分布(均值为0,标准差为1)的随机浮点数。 - `np.random.randint(low, high, size)`:生成一个形状为 `size` 的数组,数组中的元素是 `[low, high)` 区间内的随机整数。 2. **随机抽样**: - `np.random.choice(a, size=None, replace=True, p=None)`:从一维数组 `a` 中随机抽样,`size` 是抽样结果的形状,`replace` 表示是否有放回,`p` 是每个元素被抽中的概率。 - `np.random.permutation(x)`:返回数组 `x` 的一个随机排列。 3. **设置随机种子**: - `np.random.seed(seed)`:设置随机数生成的种子,使得每次生成的随机数序列相同。 4. **随机打乱**: - `np.random.shuffle(x)`:随机打乱数组 `x` 的元素顺序。 以下是一些示例代码: ```python import numpy as np # 设置随机种子 np.random.seed(42) # 生成随机浮点数 print(np.random.rand(2, 3)) # 生成一个2x3的数组,元素在[0, 1)区间内 # 生成标准正态分布的随机浮点数 print(np.random.randn(2, 3)) # 生成一个2x3的数组,元素服从标准正态分布 # 生成随机整数 print(np.random.randint(0, 10, (2, 3))) # 生成一个2x3的数组,元素在[0, 10)区间内的随机整数 # 随机抽样 print(np.random.choice(['a', 'b', 'c'], size=5, replace=True)) # 从列表中随机抽样 # 随机打乱 arr = np.arange(10) np.random.shuffle(arr) print(arr) # 随机打乱后的数组 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值