Java的Random类详解
2017-07-14 17:27
344 查看
Random类 (java.util)
Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
Random对象的生成
Random类包含两个构造方法,下面依次进行介绍:a、public Random()
该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。
b、public Random(long seed)
该构造方法可以通过制定一个种子数进行创建。
Random random = new Random(); Random random1 = new Random(10); System.out.println("random:" + random); System.out.println("random1:" + random1);
Random类中的常用方法
Random类中的方法比较简单,每个方法的功能也很容易理解。需要说明的是,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的。a、public boolean nextBoolean()
该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。
b、public double nextDouble()
该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。
c、public int nextInt()
该方法的作用是生成一个随机的int值,该值介于int的区间。
d、public int nextInt(int n)
该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。
e、public void setSeed(long seed)
该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同。
其他问题
a、相同种子数Random对象问题前面介绍过,相同种子数的Random对象,相同次数生成的随机数字是完全相同的。
b、关于Math类中的random方法
其实在Math类中也有一个random方法,该random方法的工作是生成一个[0,1.0)区间的随机小数。
通过阅读Math类的源代码可以发现,Math类中的random方法就是直接调用Random类中的nextDouble方法实现的。
只是random方法的调用比较简单,所以很多程序员都习惯使用Math类的random方法来生成随机数字。
参考资料:http://www.cnblogs.com/Fskjb/archive/2009/08/29/1556417.html
相关文章推荐
- Java RandomAccessFile文件操作详解
- Java的Random类详解
- JAVA的Random类的用法详解
- java中Random()详解
- java的Random类详解
- JAVA的Random类的用法详解
- java Random类详解(转)
- java初学笔记之<Random详解>
- Java RandomAccessFile的用法详解
- java Random类详解
- java中Random详解以及和Math.random()
- 关于java.util.Random的实现原理详解
- java的RandomAccessFile的使用详解
- java反射详解
- JAVA正则表达式详解
- Java动态图片处理技术详解
- java枚举使用详解
- 浏览器渲染原理详解视频教程 百度云免费下载_柳哥Java
- 深入理解JAVA I/O系列四:RandomAccessFile
- Eclipse Java注释模板设置详解