您的位置:首页 > 编程语言 > Java开发

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);

 目前就了解到这三种常用的随机数生成方法,欢迎鄙视~如果有其他什么冷僻的好玩的怪异的个性的方法,也请不吝赐教~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java random math 百度