在Java中,可有三种选取随机数的方法,分别是:new Random() 、Math.random() 、currentTimeMillis()。
1.new Random():这个需要在程序的开头中,导入一个java包,借助java.util.Random类产生一个随机数生成器,也是比较常见的一种,类似的还有:java.util.Scanner,是用来从控制台获取键入内容的。
同时呢,有两种具体的构造函数:
1.1: Random() ------ 这是以当前的时间(格林尼治,GMT)为默认种子
1.2: Random(long seed) ------ 这是可以自行添入参数,以指定的种子值进行。其实也就是用Random()选取出来的数据范围进行(以种子值倍数)扩大。
所以说,种子是什么呢?种子就是生成器产生随机数所使用的第一个参数值,之后的随机数通过这样一个函数,将随机数均匀散布在选取空间内的任意一个点,前一个随机数会对后一个随机数产生影响,且随机数的取得有一定的可预见性。
Random rand = new Random(); int number = rand.nextInt();
e.g. : 获得指定位数的随机数
1.获得两位整数的随机数
rand.nextInt(90) + 10 ;
2.获得三位整数的随机数
rand.nextInt(900) + 100 ;
2.Math.random():这个实际上调用了Math类中的random()方法,返回的是位于区间[0.0,1.0)内的小数,可以将返回的随机值扩大10 ,100,1000等倍数,然后将值强制转换为整型值即可。如:要获得两位数字的整数,可使用:
int random = Math.random() * 100 + 10 ;
另外就是,Math类不需要重新导入一个包,可以直接调用。
3.currentTimeMilli():这种方法也是时间戳方法,通过返回格林尼治时间(GMT),自1970年1月1日0时0分0秒起算,返回值是一个long型的毫秒数,可以根据对相应数(如:10,100,1000)进行取模即可得到相应需要的随机数。如:想要获得数位为2的随机数。
int random = System.currentTimeMillis(); int number = random % 100 ;
此仅为个人学习笔记,师从他人,再行整理,或有不周,敬请原谅,感恩感谢。



