前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java产生随机数

Java产生随机数

作者头像
云海谷天
发布2022-08-09 14:01:50
9280
发布2022-08-09 14:01:50
举报
文章被收录于专栏:技术一点点成长

前言:

  每一门程序设计语言基本都具有一个随机函数,而Java当中产生随机数的方式不拘一格。而且其中的Random工具类还有着更深入的应用,但本文仅对比3种产生随机数的方式,就不深入扩展分析其内部工具类了。

1)System.currentMillis()函数返回基于当前时间的Long整型随机数;

2)Math.random()返回0到1之间的浮点数,而且属于左闭右开:[0,1);

3)通过New Random().nextInt()实例化对象并利用函数产生一个int类型的随机数。

三种不同方式的代码实现如下:

代码语言:javascript
复制
 1 package random;
 2 
 3 import java.util.Random;
 4 
 5 import org.junit.Test;
 6 
 7 public class RandomTest {
 8 
 9     public static void main(String[] args) {
10         new RandomTest().testRandom1();
11         new RandomTest().testRandom2();
12         new RandomTest().testRandom3();
13     }
14 
15     /*
16      * 根据当前的标准时间,返回单个long类型的随机数
17      */
18     @Test
19     public void testRandom1() {
20         System.out.println(System.currentTimeMillis());
21     }
22 
23     /*
24      * 采用Math类产生随机数,其返回浮点类型,区间为:[0,1)
25      */
26     @Test
27     public void testRandom2() {
28         for(int i=0;i<10;i++)
29             System.out.println(Math.random());
30     }
31 
32     /*
33      * 利用Randoml工具类,产生10个随机数 当种子seed一样时,产生的2个序列相同
34      */
35     @Test
36     public void testRandom3() {
37         Random random1 = new Random(1);
38         for (int i = 0; i < 10; i++) {
39             System.out.print(random1.nextInt()+" ");
40         }
41         System.out.println();
42         Random random2 = new Random(1);
43         for (int i = 0; i < 10; i++) {
44             System.out.print(random2.nextInt()+" ");
45         }
46     }
47 }

另外,考虑到有些情况下我们需要批量产生随机数,故写了下面的程序。其功能是实现批量产生N个[0,MAX)范围内的随机数并写入txt文件:

代码语言:javascript
复制
 1 package random;
 2 
 3 import java.io.File;
 4 import java.io.PrintWriter;
 5 
 6 public class RandomFactory {
 7 
 8     final static int N=1000000;    //产生的随机数的个数
 9     final static int MAX=10000;        // 产生随机数的范围:[0,MAX)
10     final static String PATH="D:/random100w.txt";  //生成的文件路径
11     public static void main(String[] args) throws Exception{
12         
13         PrintWriter output = new PrintWriter(new File(PATH));
14         for(int i=0;i<N;i++){
15             int x=(int)(Math.random()*1e4);
16             output.println(x);
17         }
18         //记得关闭字符流
19         if(output!=null){
20             output.close();
21         }
22         System.out.println("--End--");
23     }
24 
25 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)System.currentMillis()函数返回基于当前时间的Long整型随机数;
  • 2)Math.random()返回0到1之间的浮点数,而且属于左闭右开:[0,1);
  • 3)通过New Random().nextInt()实例化对象并利用函数产生一个int类型的随机数。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档