Java获取随机数的3种方法和总结
- 格式:docx
- 大小:54.19 KB
- 文档页数:23
Java中获取随机数的方法在Java编程中,经常需要生成随机数。
随机数在游戏开发、密码学、模拟实验等领域有着广泛的应用。
Java提供了多种方法来生成随机数,本文将详细介绍这些方法的使用。
1. Math类的随机数方法Java的Math类提供了一些用于生成随机数的方法,这些方法使用起来非常简单。
1.1 Math.random()方法Math类的random()方法返回一个大于等于0.0且小于1.0的随机浮点数。
使用该方法可以生成一个0到1之间的随机数。
double randomNum = Math.random();System.out.println(randomNum);1.2 Math.random()方法生成指定范围的随机数如果需要生成指定范围内的随机数,可以通过以下公式进行转换:int randomNum = (int) (Math.random() * (max - min + 1) + min);上述代码将生成一个在[min, max]范围内的随机整数。
2. Random类的随机数方法Java还提供了Random类,用于生成更复杂的随机数。
2.1 Random类的nextInt()方法Random类的nextInt()方法生成一个随机整数。
可以通过传入参数来指定生成随机数的范围。
Random random = new Random();int randomNum = random.nextInt();System.out.println(randomNum);2.2 Random类的nextInt(int n)方法Random类的nextInt(int n)方法生成一个0到n-1的随机整数。
Random random = new Random();int randomNum = random.nextInt(10);System.out.println(randomNum);上述代码将生成一个0到9之间的随机整数。
文章标题:Java中随机生成三位整数的方法及其应用1. 前言作为一名开发者,我们经常需要在程序中生成随机的数字。
本文将主要介绍在Java中如何生成一个三位整数,并探讨其在实际应用中的意义和方法。
2. 随机生成三位整数的方法在Java中,我们可以借助Random类来生成随机数。
具体来说,我们可以使用nextInt()方法来获取一个范围内的随机整数。
以下是生成三位整数的具体方法:```javaimport java.util.Random;public class RandomNumberGenerator {public static void main(String[] args) {Random random = new Random();int min = 100;int max = 999;int randomNumber = random.nextInt(max - min + 1) + min;System.out.println("随机生成的三位整数为:" + randomNumber);}```通过上述方法,我们可以得到一个三位整数,并在控制台打印出来。
这样的方法可以被广泛应用在需要随机数的场景中,比如抽奖、密码生成等。
3. 随机生成三位整数的实际应用生成随机的三位整数在实际开发中有着广泛的应用。
在游戏开发中,我们经常需要随机生成怪物的属性或者道具的数量,这时候随机生成三位整数就可以满足我们的需求。
在网络安全领域,随机生成密码也是一项重要的任务。
我们可以结合随机生成三位整数的方法来生成密码的一部分,增加密码的复杂度。
4. 个人观点和理解作为一名Java开发者,我经常需要在项目中使用随机数。
随机生成三位整数的方法简单、易用,并且能够满足我在开发中的需求。
在实际应用中,随机生成的三位整数也能够为我提供很好的帮助,比如在测试和模拟数据等方面。
我认为掌握随机生成三位整数的方法对于Java开发者来说是非常重要的。
java从几个字母中随机取值的方法全文共四篇示例,供读者参考第一篇示例:在Java编程中,有时候我们需要从一组字母中随机取值,这在一些应用中非常常见,比如密码生成器、验证码生成器等。
那么在Java 中,如何实现从一组字母中随机取值呢?接下来我将分享几种方法供大家参考。
方法一:使用Random类在Java中,我们可以使用Random类来生成随机数,通过生成的随机数的范围来确定取哪个字母。
我们可以将所有的字母存储在一个数组中,然后通过随机数生成器生成一个0到数组长度-1之间的随机数,然后取该随机数对应的字母。
```javaimport java.util.Random;Random random = new Random();int index = random.nextInt(letters.length);char randomLetter = letters[index];System.out.println("随机取值的字母为:" + randomLetter);}}```方法二:使用Math.random()方法除了使用Random类外,我们还可以使用Math.random()方法来生成一个0到1之间的随机数,然后将该随机数乘以数组长度并取整,得到一个随机索引,最终取得对应的字母。
以上便是几种在Java中实现从一组字母中随机取值的方法,大家可以根据实际需要选择适合自己的方法来实现。
希望本文对大家有所帮助,谢谢阅读!第二篇示例:在Java编程中,有时候我们需要从一组字符中随机取值。
这样的需求可能因为业务场景的特殊性而存在,比如需要生成验证码、随机密码等。
本文将介绍几种在Java中实现从一组字符中随机取值的方法。
1. 使用Math.random()方法Math类是Java中的数学工具类,其中的random()方法可以生成一个介于0.0和1.0之间的伪随机double类型的数字。
java⽣成随机数的三种⽅式1、java.util.Random() 伪随机,如果不传⼊种⼦,以当前系统时间为种⼦,通过⼀系列计算得出随机值,种⼦相同的情况下,每次调⽤得到的随机值是固定的2、Math.random() public static double random() {return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();}private static final class RandomNumberGeneratorHolder {static final Random randomNumberGenerator = new Random();} Math内部也是通过java.util.Random()实现的3、java.security.SecureRandom() new SecureRandom(); SecureRandom.getInstance(""); SecureRandom.getInstanceStrong(); 可以使⽤以上三种⽅式⽣成对象,推荐使⽤new SecureRandom(),使⽤系统默认的算法并由系统⽣成种⼦ SecureRandom继承于Random类,其具体的实现类为SecureRandomSpi,与平台相关,以JDK版本jdk-8u251-linux-x64为例,在Linux系统下,其默认的实现类为NativePRNG,随机源为/dev/random以及/dev/urandom /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,使⽤这两个设备可以为应⽤提供不为空的随机字节流,两者的区别是/dev/random在系统噪声不⾜时,会产⽣阻塞,⽽/dev/urandom是/dev/random的⼀个副本,它会重复使⽤熵池中的数据以产⽣伪随机数据,因此不会有阻塞的问题 NativePRNG基于混合模式,为⽣成随机数与随机种⼦提供了不同的⽀持case MIXED:File var4 = null;URL var3;if ((var3 = NativePRNG.getEgdUrl()) != null) {try {var4 = SunEntries.getDeviceFile(var3);} catch (IOException var7) {;}}if (var4 != null && var4.canRead()) {var1 = var4;} else {var1 = new File("/dev/random");}var2 = new File("/dev/urandom");break; 对于随机数的⽣成,NativePRNG总是使⽤/dev/urandom作为随机源,⽽对于种⼦的⽣成,其随机源则取决于配置。
java 权重随机算法Java权重随机算法:从入门到实战在软件开发过程中,我们经常需要进行随机选择,而有时候需要按照特定的权重进行选择。
比如,从一个商品列表中按照销量进行推荐,或者从一个服务器列表中按照负载情况进行选取。
在Java中,我们可以使用权重随机算法来实现这种功能。
本文将介绍Java中的权重随机算法,包括实现原理、算法流程以及如何在实际项目中应用。
一、算法原理权重随机算法的核心思想就是根据某个元素的权重来进行随机选择。
权重可以理解为一个元素的引力大小,即引力越大,被选择的概率越大。
在Java中,一种常用的实现权重随机算法的方法是使用累积权重的方式。
具体来说,我们可以将所有元素按照其权重进行累加,然后生成一个随机数,根据这个随机数在累加权重上进行二分查找,找到对应的元素返回。
二、算法流程下面是权重随机算法的一个基本流程:1. 定义一个包含元素和对应权重的数据结构,比如使用一个List或者Map来存储。
2. 计算所有元素的权重累加值,得到一个总权重。
3. 生成一个0到总权重之间的随机数。
4. 使用二分查找法在累加权重上定位到随机数对应的元素。
三、实现示例现在让我们看看如何使用Java实现权重随机算法。
javaimport java.util.*;public class WeightedRandom {private final List<String> elements;private final List<Integer> weights;private final int totalWeight;private final Random random;public WeightedRandom(Map<String, Integer> items) { this.elements = new ArrayList<>(items.keySet());this.weights = new ArrayList<>(items.values());this.totalWeight = calculateTotalWeight();this.random = new Random();}private int calculateTotalWeight() {int sum = 0;for (Integer weight : weights) {sum += weight;}return sum;}public String nextElement() {int randomWeight = random.nextInt(totalWeight);int cumulativeWeight = 0;for (int i = 0; i < elements.size(); i++) {cumulativeWeight += weights.get(i);if (randomWeight < cumulativeWeight) {return elements.get(i);}}Should never reach here, but return null just in casereturn null;}public static void main(String[] args) {Map<String, Integer> items = new HashMap<>();items.put("item1", 5);items.put("item2", 3);items.put("item3", 2);WeightedRandom weightedRandom = new WeightedRandom(items);String randomElement = weightedRandom.nextElement();System.out.println("Random element: " + randomElement);}}上述示例代码定义了一个WeightedRandom类,它接受一个元素和对应权重的Map作为构造函数的参数。
1-0:Microsoft VC++产生随机数的原理:Srand ( )和Rand( )函数。
它本质上是利用线性同余法,y=ax+b(mod m)。
其中a,b,m都是常数。
因此rand的产生决定于x,x被称为Seed。
Seed需要程序中设定,一般情况下取系统时间作为种子。
它产生的随机数之间的相关性很小,取值范围是0—32767(int),即双字节(16位数),若用unsigned int 双字节是65535,四字节是4294967295,一般可以满足要求。
1-1:线性同余法:其中M是模数,A是乘数,C是增量,为初始值,当C=0时,称此算法为乘同余法;若C ≠0,则称算法为混合同余法,当C取不为零的适当数值时,有一些优点,但优点并不突出,故常取C=0。
模M大小是发生器周期长短的主要标志,常见有M为素数,取A为M的原根,则周期T=M-1。
例如:a=1220703125a=32719 (程序中用此组数)a=16807代码:void main( ){const int n=100;double a=32719,m=1,f[n+1],g[n],seed;m=pow(2,31);cout<<"设置m值为"<<m-1<<endl;cout<<"输入种子"<<endl; //输入种子cin>>seed;f[0]=seed;for(int i=1;i<=n;i++) //线性同余法生成随机数{f[i]=fmod((a*f[i-1]),(m-1));g[i-1]=f[i]/(m-1);cout.setf(ios::fixed);cout.precision(6); //设置输出精度cout<<i<<" "<<'\t'<<g[i-1]<<endl;}}结果分析:统计数据的平均值为:0.485653统计数据的方差为:0.3205761-2:人字映射递推公式就是有名的混沌映射中的“人字映射”或称“帐篷映射”,它的非周期轨道点的分布密度函数:人字映射与线性同余法结合,可产生统计性质优良的均匀随机数。
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数方法2获得随机数for (int i=0;i<30;i++){System.out.println((int)(1+Math.random()*10));}(int)(1+Math.random()*10)通过java.Math包的random方法得到1-10的int随机数公式是:最小值---最大值(整数)的随机数(类型)最小值+Math.random()*最大值方法3Random ra =new Random();for (int i=0;i<30;i++){System.out.println(ra.nextInt(10)+1);}通过java.util包中的Random类的nextInt方法来得到1-10的int随机数生成0到1之间的任意随机小数:生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。
[n1,n2]也就是 ra.nextDouble() * (n2-n1)+n1java产生随机数的几种方式一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me 的程序里经常用的一个取随机数的方法。
三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的对于方法二中的Random类有以下说明:java.util.Random类有两种方式构建方式:带种子和不带种子不带种子:此种方式将会返回随机的数字,每次运行结果不一样public class RandomTest {public static void main(String[] args) {java.util.Random r=new java.util.Random();for(int i=0;i<10;i++){System.out.println(r.nextInt());}}带种子:此种方式,无论程序运行多少次,返回结果都是一样的public static void main(String[] args) {java.util.Random r=new java.util.Random(10);for(int i=0;i<10;i++){System.out.println(r.nextInt());}}两种方式的差别在于(1) 首先请打开Java Doc,我们会看到Random类的说明:此类的实例用于生成伪随机数流,此类使用48 位的种子,该种子可以使用线性同余公式对其进行修改(请参阅Donald Knuth 的《The Art of Computer Programming, Volume 2》,第3.2.1 节)。
Java 从指定的数组中获取随机数的方法本文介绍了在 Java 中从指定的数组中获取随机数的几种方法,包括使用Random 类、使用 Math.random() 方法和使用 UniformRandomNumberGenerator 类等。
下面是本店铺为大家精心编写的5篇《Java 从指定的数组中获取随机数的方法》,供大家借鉴与参考,希望对大家有所帮助。
《Java 从指定的数组中获取随机数的方法》篇1在 Java 中,从指定的数组中获取随机数有多种方法。
以下是其中的几种方法:方法一:使用 Random 类Random 类是 Java 中生成随机数的一个常用类。
使用 Random 类,可以通过 nextInt() 方法从指定的数组中获取随机数。
以下是一个示例代码:```javaimport java.util.Arrays;import java.util.Random;public class GetRandomNumber {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5};Random random = new Random();int randomNumber = random.nextInt(arr.length);System.out.println("随机数为:" + arr[randomNumber]);}}```方法二:使用 Math.random() 方法Math.random() 方法可以生成一个 0 到 1 之间的随机数。
可以使用这种方法从指定的数组中获取随机数。
以下是一个示例代码: ```javaimport java.util.Arrays;public class GetRandomNumber {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5};double randomNumber = Math.random() * arr.length;int index = (int) (randomNumber);System.out.println("随机数为:" + arr[index]);}}```方法三:使用 UniformRandomNumberGenerator 类UniformRandomNumberGenerator 类可以生成指定范围内的随机数。
java中产生随机数的方法在Java中,我们可以使用几种方法来生成随机数。
下面介绍了三种常用的方法:1. 使用Math类的random()方法:Math类是Java中的一个内置类,它提供了许多数学运算相关的方法。
其中,random()方法可以用来生成一个0到1之间的随机浮点数。
我们可以通过对生成的浮点数进行适当的运算来获取我们想要的随机数范围。
示例代码:```double randomNum = Math.random();int randomInt = (int) (randomNum * range) + min;```在上面的代码中,range表示生成的随机数的范围(差值),min表示生成的随机数的最小值。
我们将随机浮点数乘以范围,并将结果转换为整型,再加上最小值,即可得到我们想要的随机整数。
2. 使用Random类:Random类是Java中提供的一个专门用于生成随机数的类,它的实例方法可以生成不同类型的随机数。
示例代码:```import java.util.Random;Random random = new Random();int randomInt = random.nextInt(range) + min;```在上面的代码中,range表示生成的随机数的范围(差值),min表示生成的随机数的最小值。
我们调用nextInt()方法来生成一个随机整数,通过设置范围和最小值,即可得到我们想要的随机整数。
3. 使用ThreadLocalRandom类:ThreadLocalRandom类是Java SE 7中引入的一个线程局部的随机数生成器,它提供了更高效和更安全的随机数生成。
示例代码:```import java.util.concurrent.ThreadLocalRandom;int randomInt = ThreadLocalRandom.current().nextInt(min, max);```在上面的代码中,min表示生成的随机数的最小值,max表示生成的随机数的最大值。
java获取十位随机数的方法摘要:1.引言2.获取十位随机数的方法a.使用java.util.Random类b.使用java.util.concurrent.ThreadLocalRandom类c.使用Math.random()方法3.示例代码4.总结正文:在Java编程中,获取随机数是非常常见的操作。
本文将介绍三种获取十位随机数的方法。
首先,我们可以使用java.util.Random类。
这个类提供了多种方法来生成随机数。
以下是一个使用Random类获取十位随机数的示例代码:```javaimport java.util.Random;public class RandomNumber {public static void main(String[] args) {Random rand = new Random();int randomNumber = rand.nextInt(9000000000) + 1000000000; // 生成一个十位随机数System.out.println("十位随机数: " + randomNumber);}}```其次,我们可以使用java.util.concurrent.ThreadLocalRandom类。
这个类是Java 7引入的,它提供了线程安全的随机数生成器。
以下是一个使用ThreadLocalRandom类获取十位随机数的示例代码:```javaimport java.util.concurrent.ThreadLocalRandom;public class RandomNumber {public static void main(String[] args) {int randomNumber =ThreadLocalRandom.current().nextInt(1000000000, 999999999); // 生成一个十位随机数System.out.println("十位随机数: " + randomNumber);}}```最后,我们还可以使用Math.random()方法。
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数方法2获得随机数for (int i=0;i<30;i++){System.out.println((int)(1+Math.random()*10));}(int)(1+Math.random()*10)通过java.Math包的random方法得到1-10的int随机数公式是:最小值---最大值(整数)的随机数(类型)最小值+Math.random()*最大值方法3Random ra =new Random();for (int i=0;i<30;i++){System.out.println(ra.nextInt(10)+1);}通过java.util包中的Random类的nextInt方法来得到1-10的int随机数生成0到1之间的任意随机小数:生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。
[n1,n2]也就是 ra.nextDouble() * (n2-n1)+n1java产生随机数的几种方式一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me 的程序里经常用的一个取随机数的方法。
三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的对于方法二中的Random类有以下说明:java.util.Random类有两种方式构建方式:带种子和不带种子不带种子:此种方式将会返回随机的数字,每次运行结果不一样public class RandomTest {public static void main(String[] args) {java.util.Random r=new java.util.Random();for(int i=0;i<10;i++){System.out.println(r.nextInt());}}带种子:此种方式,无论程序运行多少次,返回结果都是一样的public static void main(String[] args) {java.util.Random r=new java.util.Random(10);for(int i=0;i<10;i++){System.out.println(r.nextInt());}}两种方式的差别在于(1) 首先请打开Java Doc,我们会看到Random类的说明:此类的实例用于生成伪随机数流,此类使用48 位的种子,该种子可以使用线性同余公式对其进行修改(请参阅Donald Knuth 的《The Art of Computer Programming, Volume 2》,第3.2.1 节)。
如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
为了保证实现这种特性,我们为类Random指定了特定的算法。
为了Java 代码的完全可移植性,Java 实现必须让类Random 使用此处所示的所有算法。
但是允许Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。
Java Doc对Random类已经解释得非常明白,我们的测试也验证了这一点。
(2) 如果没有提供种子数,Random实例的种子数将是当前时间的毫秒数,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。
打开JDK的源代码,我们可以非常明确地看到这一点。
public Random() { this(System.currentTimeMillis()); }另外:random对象的nextInt(),nextInt(int n)方法的说明:int nextInt()返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int 值。
int nextInt(int n)返回一个伪随机数,它是从此随机数生成器的序列中取出的、在0(包括)和指定值(不包括)之间均匀分布的int值。
Java随机数总结随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字。
或者随即生成一个不定长度的数字、或者进行一个模拟的随机选择等等。
Java提供了最基本的工具,可以帮助开发者来实现这一切。
一、Java随机数的产生方式在Java中,随机数的概念从广义上将,有三种。
1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
2、通过Math.random()返回一个0到1之间的double值。
3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。
二、Random类API说明1、Java API说明Random类的实例用于生成伪随机数流。
此类使用48 位的种子,使用线性同余公式对其进行修改(请参阅Donald Knuth 的《The Art of Computer Programming,Volume 2》,第3.2.1 节)。
如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
为了保证属性的实现,为类Random 指定了特定的算法。
很多应用程序会发现Math 类中的random 方法更易于使用。
2、方法摘要Random()创建一个新的随机数生成器。
Random(long seed)使用单个long 种子创建一个新随机数生成器:public Random(long seed){ setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
protected int next(int bits)生成下一个伪随机数。
boolean nextBoolean()返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的boolean 值。
void nextBytes(byte[] bytes)生成随机字节并将其置于用户提供的字节数组中。
double nextDouble()返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在0.0 和 1.0之间均匀分布的double 值。
float nextFloat()返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在0.0 和 1.0 之间均匀分布的float 值。
double nextGaussian()返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的double 值,其平均值是0.0,标准偏差是1.0。
int nextInt()返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int 值。
int nextInt(int n)返回一个伪随机数,它是从此随机数生成器的序列中取出的、在0(包括)和指定值(不包括)之间均匀分布的int值。
long nextLong()返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的long 值。
void setSeed(long seed)使用单个long 种子设置此随机数生成器的种子。
三、Random类使用说明1、带种子与不带种子的区别Random类使用的根本是策略分带种子和不带种子的Random的实例。
通俗说,两者的区别是:带种子的,每次运行生成的结果都是一样的。
不带种子的,每次运行生成的都是随机的,没有规律可言。
2、创建不带种子的Random对象Random random = new Random();3、创建不带种子的Random对象有两种方法:1) Random random = new Random(555L);2) Random random = new Random();random.setSeed(555L);四、测试通过一个例子说明上面的用法import java.util.Random;public class TestRandomNum {public static void main(String[] args) {randomTest();testNoSeed();testSeed1();testSeed2();}public static void randomTest() {System.out.println("--------------test()--------------");//返回以毫秒为单位的当前时间。
long r1 = System.currentTimeMillis();//返回带正号的double 值,大于或等于0.0,小于 1.0。
double r2 = Math.random();//通过Random类来获取下一个随机的整数int r3 = new Random().nextInt();System.out.println("r1 = " + r1);System.out.println("r3 = " + r2);System.out.println("r2 = " + r3);public static void testNoSeed() {System.out.println("--------------testNoSeed()--------------"); //创建不带种子的测试Random对象Random random = new Random();for (int i = 0; i < 3; i++) {System.out.println(random.nextInt());}}public static void testSeed1() {System.out.println("--------------testSeed1()--------------"); //创建带种子的测试Random对象Random random = new Random(555L);for (int i = 0; i < 3; i++) {System.out.println(random.nextInt());}}public static void testSeed2() {System.out.println("--------------testSeed2()--------------");//创建带种子的测试Random对象Random random = new Random(); random.setSeed(555L);for (int i = 0; i < 3; i++) {System.out.println(random.nextInt()); }}}运行结果:--------------test()--------------r1 = 1227108626582r3 = 0.5324887850155043r2 = -368083737--------------testNoSeed()-------------- 8095034751585541532-645134204--------------testSeed1()---------------1367481220292886146-1462441651--------------testSeed2()---------------1367481220292886146-1462441651Process finished with exit code 0通过testSeed1()与testSeed2()方法的结果可以看到,两个打印结果相同,因为他们种子相同,再运行一次,结果还是一样的,这就是带种子随机数的特性。