浅析Java中产生随机数的方式
来源:互联网 发布:模拟炒股 mac 编辑:程序博客网 时间:2024/05/18 21:43
在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。下面是两种方法的使用过程:
1. java.lang.Math.random()
在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说明:
package com.luiszhang.test;public class RandomTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub//random()会自动产生一个0.0-1.0的双精度随机数double doubleRadomNum = Math.random();System.out.println(doubleRadomNum);//产生0-1000的双精度随机数doubleRadomNum = Math.random() * 1000;System.out.println(doubleRadomNum);//产生0-1000的整数随机数int intRandomNum = (int) (Math.random() * 1000);System.out.println(intRandomNum);}}
2. 创建java.util.Random对象
package com.luiszhang.test;import java.util.Random;public class RandomTest {/** * @param args */public static void main(String[] args) {// 创建random对象Random random = new Random();//获取一个整型随机数int intNumber = random.nextInt();//获取一个浮点随机数(0-1)float floatNumber = random.nextFloat();//获取双精度随机数(0-1)double doubleNumber = random.nextDouble();//获取boolean随机数boolean booleanNumber = random.nextBoolean();System.out.println("intNumber:" + intNumber);System.out.println("floatNumber:" + floatNumber);System.out.println("doubleNumber:" + doubleNumber);System.out.println("booleanNumber:" + booleanNumber);}}
说明:
(1)我们可以通过System.currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦。(在循环中易产生重复值,不好用)
(2)Random random = new Random();不指定基数,此种方式将会返回随机的数字,每次运行结果不一样。当然我们也可以指定基数,例如:Random random=new Random(100);同一基数所产生的随机数序列是一样的。
下面我们将写测试程序对这些进行验证:
package com.luiszhang.test;import java.util.Random;public class RandomTest {/** * @param args */public static void main(String[] args) {// 以100为基数创建两个随机数Random randomNumber1 = new Random(100);Random randomNumber2 = new Random(100);// 验证同一基数生成的Random对象产生的随机数是否相等for(int i = 0; i < 5; i++) {System.out.print(randomNumber1.nextInt() + " ");System.out.print(randomNumber2.nextInt() + "\n");System.out.println("Is equal is " + (randomNumber1.nextInt() == randomNumber2.nextInt()));System.out.println("------------------------------");System.out.print(randomNumber1.nextDouble() + " ");System.out.print(randomNumber2.nextDouble() + "\n");System.out.println("Is equal is " + (randomNumber1.nextDouble() == randomNumber2.nextDouble()));System.out.println("------------------------------");System.out.print(randomNumber1.nextFloat() + " ");System.out.print(randomNumber2.nextFloat() + "\n");System.out.println("Is equal is " + (randomNumber1.nextFloat() == randomNumber2.nextFloat()));System.out.println("------------------------------");System.out.print(randomNumber1.nextBoolean() + " ");System.out.print(randomNumber2.nextBoolean() + "\n");System.out.println("Is equal is " + (randomNumber1.nextBoolean() == randomNumber2.nextBoolean()));System.out.println("------------------------------");}// 以当前时间自己生成随机数,随机数范围为1-32for(int i = 0; i < 5; i++) {System.out.print((System.currentTimeMillis()%32 + 1) + "\n");System.out.println("------------------------------");}}}
- 浅析Java中产生随机数的方式
- JAVA中产生随机数的方式
- java随机数产生的方式
- java产生随机数的方式
- JAVA中随机数的产生几种方式
- Java中随机数的产生方式与原理
- Java中产生随机数的几种常用方式
- java中随机数的产生
- java中随机数的产生
- Java中随机数的产生
- java 产生随机数的两种方式
- java产生随机数的几种方式
- java产生随机数的几种方式
- java产生随机数的几种方式
- java产生随机数的几种方式
- Java产生随机数的几种方式
- java产生随机数的几种方式
- java产生随机数的几种方式
- 4.1适配器模式(ADAPTER)
- ubuntu10.10搭建samba服务器
- SHELL DATE 命令详解
- 金山面试题目(c++经典收藏1)
- 库克苹果CEO一周年回顾:没改变世界 改变了苹果
- 浅析Java中产生随机数的方式
- Android 获取当前系统的语言环境及网络连接类型
- 随笔--为android模拟器配置图形加速器
- oracle数据库exp导出的dmp文件存放在哪儿
- 快速排序法 解析
- Hibernate中Criteria的完整用法
- Tarjan 算法
- 2011~2012提高班年度总结
- 并查集--学习详解