JAVA_生成随机数的三种方法
2012-03-06 21:30
731 查看
每次需要生成随机数的时候都需要现百度一下,今天写篇学习笔记记录一下,下次再用到随机数,必须稳准狠!~静候批评与指正。
(1)java.util.Random类
无参构造:Random rd=new Random();(等价于 Random rd=new Random(System.currentTimeMillis()); )因为无参构造实质上的参数是系统时间,所以也带有随机性,所以最终生成的随机数是完全随机的。
有参构造: Random rd=new Random(1L); 因为Random类生成随机数的实质是使用线性同余公式,同一个参数算出的结果其实是一样的,所以相同的参数生成的是相同的随机数列。
rd.nextInt(); || rd.nextDouble(); ||…… 可以生成不同类型的随机数。
(2)java.lang.Math.random()
lang包的Math类的静态函数。使用起来较方便,究其实质,实现上仍然是使用了Random随机数生成器,所以只是换汤不换药。不足之处是只能生成[0,1)的double类型随机数,所以如果不需要double类型,就必须后续处理。
以下两处代码等价(生成1-100内的随机整数):
[1] Random rd=new Random();
int t=(int)(rd.nextDouble()*100+1);
[2] int t=(int)(Math.random()*100+1);
(3)System.currentTimeMillis();
这个方法返回的是当前系统时间与1970年1月1日00:00这个时间之间的时间差(ms),值是一个long型数据。由于系统时间本身就具有随机性,所以我们可以直接利用这个值来取得一个随机数~
如生成1-100内的随机整数:
int m=(int)(System.currentTimeMillis()%100+1);
目前就了解到这三种常用的随机数生成方法,欢迎鄙视~如果有其他什么冷僻的好玩的怪异的个性的方法,也请不吝赐教~
相关文章推荐
- 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)
- java生成随机数的三种方法
- php生成随机数的三种方法
- C#生成随机数的三种方法
- C#生成随机数的三种方法
- java生成多位随机数方法
- C#生成随机数的三种方法
- C#生成随机数的三种方法
- 浅谈iOS中三种生成随机数方法
- Java中生成随机数的方法
- C#生成随机数的三种方法
- C#生成随机数的三种方法
- C#生成随机数的三种方法
- JAVA生成随机数种子的方法
- 16-02-18 Java 方法应用 之 生成随机数
- java生成随机数方法大全(可指定范围、分布方式、类型、种子)
- java 获取随机数的三种方法
- JAVA 根据设置的概率生成随机数的方法
- 在java中生成随机数的方法
- (摘)C#生成随机数的三种方法