在Java中,可以使用java.util.Random类来生成随机数生成器。 构造函数有两种格式:随机(和随机)长序列。 Random (是当前时间System.currentTimeMillis ) )用作生成器的种子,random (long seed )使用指定的seed作为生成器的种子。
随机数发生器(Random )对象发生后,通过调用不同的method:nextInt (、nextLong )、nextFloat (、nextDouble ) )等来获取不同类型的随机数。
生成随机数
Random random=new Random (;
随机随机=新随机(100; //指定种子数100
random调用不同的方法来获取随机数。
如果两个Random对象使用相同的种子,并且按相同的顺序调用相同的函数,则返回值完全相同。 两个Random对象的输出完全相同,如下例所示
1 import java.util.*; 2 classtestrandom {3publicstaticvoidmain (string [ ] args ) )4randomrandom1=newrandom(100 ); 5 system.out.println (random1. nextint (); 6 system.out.println (random1. next float (); 7 system.out.println (random1. next boolean (); 8随机随机2=新随机(100; 9 system.out.println (random2. nextint (); 10 system.out.println (random2. next float (); 11 system.out.println (random2. next boolean (); 12 }13 }
指定范围内的随机数
随机数控制在某个范围内,使用模量运算符%
1 import java.util.*; 2 classtestrandom {3publicstaticvoidmain (string [ ] args ) ) {4 Random random=newRandom; 5for(intI=0; i 10; I )6system.out.println (math.ABS (random.nextint () ) ) ) ) ) ) )。 7 }8 }9 }
得到的随机数有正负之分,在Math.abs中将取得数据范围设为负以外
获取指定范围内的不重复随机数
1 import java.util.*; 2 classtestrandom {3publicstaticvoidmain (字符串[ ] args ) {4 int[] intRet=new int[6]; 5 int intRd=0; //保存随机数
6输入计数=0; //记录生成的随机数的数量
7 Int标志=0; //是否已经生成标志
8 while (计数6 ({9random RDM=new random ) system.currenttimemillis ) ); 10intrd=math.ABS(RDM.nextint () )2 1; 11for(intI=0; i' intRet[t]; 26 }27 }28 }
附件:
介绍Java随机数系Random
Java实用程序类库中的类java.util.Random提供了一种生成各种类型的随机数的方法。 可以生成随机数,如int、long、float、double和Goussian。 这也是与java.lang.Math方法Random ()的最大区别,该方法只产生双精度随机数。
类Random的方法非常简单,只有两种构造方法和六种常用方法。
构建方法:
(1)公共随机) )。
)2)公共随机(长序列)。
Java需要基值seed才能生成随机数。 在第一种方法中,缺省情况下,基值将系统时间设置为seed。
常用方法:
)1) publicsynonronizedvoidsetseed (长序列)此方法是设置基础值seed。
(2)公共int nextint ) )该方法生成整数随机数。
(3)公共长下一个) )该方法生成长型随机数。
(4)公共浮点下一浮点)该方法生成浮点型随机数。
(5)双精度下一个双精度) )该方法是生成双精度型随机数。
(6) publicsynchronizeddoublenextgoussian ) )该方法生成双精度型goussian随机数。
1 RandomApp.java。 2 //import java.lang.*;
3 importjava.util.Random; 4
5 publicclassrandomapp {6publicstaticvoidmain (string args [ ] ) {7 Random ran1=newRandom ); 8随机随机随机存取存储器2=新随机存取存储器(12345; 9
制作了两个Random类的对象。
10 system.out.println (the1 stsetofrandomnumbers : ); 11 system.out.println (integer : ) ran1.nextint ); 12system.out.println(long: ) ran1.nextlong ); 13 system.out.println (' float : ' ran1. next float ) ); 14 system.out.println (双: ) ran1. next双) ); 15 system.out.println (Gaussian : ) ran1.nextGaussian ); 16 //产生各种类型的随机数
17 system.out.print (the2ndsetofrandomnumbers : ); 18for(intI=0; i5; I (({ 19 system.out.println (ran2. nextint () ) ) ) ) ) 652 20if(I==2 )。 21 //产生相同类型的不同随机数。
22 System.out.println (; 23 }24 }25 }
Math.random也可以
例如,假设你想要一个0到10之间的随机数
你可以这样写
(int ) ) Math.random ) *10 );
JAVA生成指定范围的随机数"
《JAVA产生指定范围的随机数》
生成机制:
生成最小-最大之间的数字
实现原理:
math.round(math.random () * ) * (最大最小(Min ) ) ) )。
龙腾; 不能设定为//int,必须设定为long
产生1000到9999的随机数
temp=math.round (math.random (* 89991000 ) );