您的位置:首页 > 其它

产生随机数的三种方式

2018-03-03 13:27 169 查看
1. java.util.Random

  java.util.Random类提供了以下产生随机数的方法:



  (1) 通过Random() 构造方法实例化的对象产生随机数

    Random r=new Random(); 

   特点:每次运行产生的随机数都不一样。

  (2) 通过Random(long seed) 构造方法实例化的对象产生随机数

    Random r=new Random(long seed);

  特点:seed相同产生的随机数相同,不同seed之间产生的随机数也不同。

举例:

public void testRandom(){
Random r=new Random();
Random r5=new Random(5);
Random r10=new Random(10);
List<Integer> list=new ArrayList<Integer>();

list.clear();
System.out.println("1. 利用Random()构造函数产生的随机数:");
for(int i=0;i<10;i++) {
list.add(r.nextInt(100));
}
System.out.println(list);
System.out.println("");

list.clear();
System.out.println("2. 利用Random(5)构造函数产生的随机数:");
for(int i=0;i<10;i++) {
list.add(r5.nextInt(100));
}
System.out.println(list);
System.out.println("");

list.clear();
System.out.println("3. 利用Random(10)构造函数产生的随机数:");
for(int i=0;i<10;i++) {
list.add(r10.nextInt(100));
}
System.out.println(list);
}


运行结果:

第一次运行上述代码的结果如下:



第二次运行上述代码的结果如下:



第三次运行上述代码的结果如下:



由以上三次运行的结果不难发现:

  1) 利用Random() 构造函数实例化的对象产生的随机数每次都不一样。

  2) 利用Random(long seed) 构造函数实例化的对象产生的随机数每次都一样。

  3) seed即种子数,不同seed之间产生的随机数也不同。

由此可见:虽然说是随机数,但是也不是随机产生的,还是按照某种算法一步步执行产生的数,所以才会有种子数不变在不同时刻产生的值一样的结论。

2. Math.random()

  Math.random() 产生的是[0,1.0)的随机小数。

举例:

public void testMathRandom(){
System.out.println("利用Math.random()产生的随机数:");
for(int i=0;i<10;i++) {
System.out.println(Math.random());
}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: