《Java语言程序设计》 Java随机数获取方法
在Java中,可以使用java.util.Random类来生成随机数生成器。 构造函数有两种格式:随机(和随机)长序列。 Random (是当前时间System.currentTimeMillis ) )用作生成器的种子,random (long seed )使用指定的seed作为生成器的种子。
随机数发生器(Random )对象发生后,通过调用不同的method:nextInt (、nextLong )、nextFloat (、nextDouble ) )等来获取不同类型的随机数。
1生成随机数
Random random=new Random (;
随机随机=新随机(100; //指定种子数100
random调用不同的方法来获取随机数。
如果两个Random对象使用相同的种子,并且按相同的顺序调用相同的函数,则返回值完全相同。 两个Random对象的输出完全相同,如下例所示
import java.util.*;
class TestRandom {
publicstaticvoidmain (字符串[ ] args ) {
随机随机1=新随机(100;
system.out.println (random1. nextint ();
系统. out.println (random1. next float ();
系统. out.println (random1. next boolean ();
随机随机2=新随机(100;
system.out.println (random2. nextint ();
系统. out.println (random2. next float ();
系统. out.println (random2. next boolean ();
}
}
指定2范围内的随机数
随机数控制在某个范围内,使用模量运算符%
import java.util.*;
class TestRandom {
publicstaticvoidmain (字符串[ ] args ) {
Random random=new Random (;
for(intI=0; i 10; I ) {
system.out.println (math.ABS (random.nextint () )
}
}
}
得到的随机数有正负之分,在Math.abs中将取得数据范围设为负以外
3获取指定范围内的不重复随机数
import java.util.*;
class TestRandom {
publicstaticvoidmain (字符串[ ] args ) {
int [ ] Interrent=new int [6];
int intRd=0; //保存随机数
int count=0; //记录生成的随机数的数量
int flag=0; //是否已经生成标志
wile (计数6 ) {
random RDM=new random (system.current time millis ();
intrd=math.ABS(RDM.nextint () )2 1;
for(intI=0; I
if(intret[I]==intrd ) {
flag=1;
布雷克;
}else{
flag=0;
}
}
if(flag==0) {
intRet[count]=intRd;
出局;
}
}
for(intt=0; t6; t ) {
系统. out.println (t '-' intret [ t ] );
}
}
}
介绍Java随机数系Random
Java实用程序类库中的类java.util.Random提供了一种生成各种类型的随机数的方法。 可以生成随机数,如int、long、float、double和Goussian。 这也是与java.lang.Math方法Random ()的最大区别,后者只产生双精度随机数。
类Random的方法非常简单,只有两种构造方法和六种常用方法。
构建方法:
(1)公共随机) )。
)2)公共随机(长序列)。
Java需要基值seed才能生成随机数。 在第一种方法中,缺省情况下,基值将系统时间设置为seed。
常用方法:
(1)公共同步语音设置(长序列) ) )。
该方法设置基础值seed。
)2)公共int nextint () )。
这个方法是生成整数随机数。
(3)公共长下一个) ) ) )。
该方法是生成long型随机数。
(4)公共浮动下一个浮动) ) ) )。
该方法是生成浮点型随机数。
(5)公共双下一个双) ) ) )。
此方法是生成双精度随机数。
(6) publicsynchronizeddoublenextgoussian ) )
此方法是生成双精度型的Goussian随机数。
例2 RandomApp.java。
//import java.lang.*;
import java.util.Random;
公共类随机应用程序{
publicstaticvoidmain (string args [ ] ) {
Random ran1=new Random (;
random ran2=新random (12345;
制作了两个Random类的对象。
system.out.println (the1 stsetofrandomnumbers : );
system.out.println (integer : ) ran1.nextint );
system.out.println(long: ) ran1.nextlong );
system.out.println (' float : ' ran1. next float ) );
system.out.println (双精度: ) ran1. next双精度);
system.out.println (Gaussian : ) ran1.nextGaussian );
//产生各种类型的随机数
system.out.print (the2ndsetofrandomnumbers : );
for(intI=0; i5; I ) {
system.out.println (ran2. nextint () ');
if(I==2) System.out.println );
//产生相同类型的不同随机数。
System.out.println (;
}
}
}
Random random=new Random (;
random.nextInt (;
有多种基本类型,如nextFloat
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 ) );