Java产生随机数
前言:
每一门程序设计语言基本都具有一个随机函数,而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产生随机数的更多相关文章
- java产生随机数的几种方式
java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...
- JAVA获取随机数
在Java中我们能够使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,各自是Random()和Random(long seed).Random()使用当前时间即Sy ...
- java 获取随机数的三种方法
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...
- Java获取随机数的几种方法
Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...
- java设置随机数教程
java作为程序猿开发人员都在使用的一款编程语言,许多入门的朋友都陷入了一个简单的问题就是,使用java开发时随机数要怎么设置?java怎么设置随机数?经常会有地方需要用到随机数,不用着急,一起来看看 ...
- java生成随机数方法
java生成随机数方法: String random = String.valueOf(new Random().nextInt(9000)); String timestamp = String.v ...
- Java中随机数的产生方式与原理
查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以 ...
- JAVA生成随机数
java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100 ...
- Java基础(9):Java生成随机数一定范围内的数的一个典型例子
题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...
随机推荐
- uva146 ID codes
Description It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In or ...
- 百度搜索--jquery
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 对于大量left join 的表查询,可以在关键的 连接节点字段上创建索引。
对于大量left join 的表查询,可以在关键的 连接节点字段上创建索引. 问题: 大量的left join 怎么优化 select a.id,a.num,b.num,b.pcs,c.num, c. ...
- jquery.validate.min.js 用法方法示例
页面html 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- sublime快捷键<转>
写在前面的话:平时做项目中在用eclipse和vs,但是对于一些小项目,感觉没有必要搞那么大的一个工具使用,比如写个小微商城,搞个小脚本了什么,所以就一直在用Sublime Text,界面清新简洁,没 ...
- Splay整理
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入.查找和删除操作.(来自百科) 伸展树的操作主要是
- netcore web.config ConnectionStrings AppSettings
new ConfigurationBuilder().Build().GetSection("ConnectionStrings") new ConfigurationBuilde ...
- python 测试驱动开发的简单例子
一.需求分析 需求:一个类 MyClass,有两个功能:add, sub 1.先功能设计 # myclass.py class MyClass(object): # 加法 def add(self): ...
- ubuntu mysql 更改IP导致mysql无法启动
bind-address = 127.0.0.1 => bind-address= 136.129.20.168 IP要这么改 这么改远程连不上,那么需要把这行整行注释掉,重启MYSQL,tel ...
- Linux下SVN安装与基本操作
1.安装svn linux下通过yum安装svn yum -y install subversion 本地Windows系统安装TortoiseSVN 2.配置 建立版本库目录 mkdir /home ...