前言:

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

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

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

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

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

 package random;

 import java.util.Random;

 import org.junit.Test;

 public class RandomTest {

     public static void main(String[] args) {
new RandomTest().testRandom1();
new RandomTest().testRandom2();
new RandomTest().testRandom3();
} /*
* 根据当前的标准时间,返回单个long类型的随机数
*/
@Test
public void testRandom1() {
System.out.println(System.currentTimeMillis());
} /*
* 采用Math类产生随机数,其返回浮点类型,区间为:[0,1)
*/
@Test
public void testRandom2() {
for(int i=0;i<10;i++)
System.out.println(Math.random());
} /*
* 利用Randoml工具类,产生10个随机数 当种子seed一样时,产生的2个序列相同
*/
@Test
public void testRandom3() {
Random random1 = new Random(1);
for (int i = 0; i < 10; i++) {
System.out.print(random1.nextInt()+" ");
}
System.out.println();
Random random2 = new Random(1);
for (int i = 0; i < 10; i++) {
System.out.print(random2.nextInt()+" ");
}
}
}

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

 package random;

 import java.io.File;
import java.io.PrintWriter; public class RandomFactory { final static int N=1000000; //产生的随机数的个数
final static int MAX=10000; // 产生随机数的范围:[0,MAX)
final static String PATH="D:/random100w.txt"; //生成的文件路径
public static void main(String[] args) throws Exception{ PrintWriter output = new PrintWriter(new File(PATH));
for(int i=0;i<N;i++){
int x=(int)(Math.random()*1e4);
output.println(x);
}
//记得关闭字符流
if(output!=null){
output.close();
}
System.out.println("--End--");
} }

Java产生随机数的更多相关文章

  1. java产生随机数的几种方式

    java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...

  2. JAVA获取随机数

    在Java中我们能够使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,各自是Random()和Random(long seed).Random()使用当前时间即Sy ...

  3. java 获取随机数的三种方法

    方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...

  4. Java获取随机数的几种方法

    Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...

  5. java设置随机数教程

    java作为程序猿开发人员都在使用的一款编程语言,许多入门的朋友都陷入了一个简单的问题就是,使用java开发时随机数要怎么设置?java怎么设置随机数?经常会有地方需要用到随机数,不用着急,一起来看看 ...

  6. java生成随机数方法

    java生成随机数方法: String random = String.valueOf(new Random().nextInt(9000)); String timestamp = String.v ...

  7. Java中随机数的产生方式与原理

    查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以 ...

  8. JAVA生成随机数

    java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100 ...

  9. Java基础(9):Java生成随机数一定范围内的数的一个典型例子

    题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...

随机推荐

  1. script和href

    src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置:在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素. < ...

  2. 表单 - Validatebox - 表单参数校验

    $("input[name='username']").validatebox({ required: true,//必填 validType:'email'//要求用户名必须是一 ...

  3. js禁止用户右键等操作

    <script type="text/javascript">    document.oncontextmenu=function(){return false};  ...

  4. php数组函数,字符串,linux命令

    1>> Linux常用命令一. 文件目录操作命令1. ls命令    命令格式:ls [选项] [目录名]    命令功能:列出目标目录中所有的子目录和文件.2. 命令格式:cd [目录名 ...

  5. redis 学习笔记(4)-HA高可用方案Sentinel配置

    上一节中介绍了master-slave模式,在最小配置:master.slave各一个节点的情况下,不管是master还是slave down掉一个,“完整的”读/写功能都将受影响,这在生产环境中显然 ...

  6. 纯html的table打印注意事项

    1. 在firefox下,每页均会打印重复thead(表头),tfoot(表尾)的内容:IE8下无效(其它IE版本未测试) 2. 分页的处理 @media print {     .page-brea ...

  7. TinyFrame升级之一:框架概览

    由于之前的TinyFrame多于简单,并且只是说明原理,并无成型的框架出来,所以这次我把之前的知识进行了汇总,然后做出了这一版的TinyFrame框架. 整个框架的结构如下: TinyFrame.Da ...

  8. 【干货分享】JPager.Net MVC超好用轻量级分页控件

    JPager.Net  MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象. JPager.Net  MVC好用的轻量级分页控件,实现非常简单,使用也非常简单. JPager.Net  M ...

  9. 用c#操作Mongodb(附demo)

    因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...

  10. Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载

    相必大家在看加快网站响应速度方面的文章时,都提过这么一条:动静分离.那怎样实现动静分离呢,这里笔者就亲自搭建相关服务实现动静分离. 动静分离是一种架构,就是把静态文件,比如JS.CSS.图片甚至有些静 ...