`
zhanglu0223
  • 浏览: 22719 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

浅析Java中产生随机数的方式

 
阅读更多

java中,我们可以通过两种方式来获取随机数(generatingarandomnumber)一种是大家熟悉的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()方法,这个方法返回一个从197011000秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦。(在循环中易产生重复值,不好用)

(2)Randomrandom=newRandom();不指定基数,此种方式将会返回随机的数字,每次运行结果不一样。当然我们也可以指定基数,例如:Randomrandom=newRandom(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-32
		for(int i = 0; i < 5; i++) {
			System.out.print((System.currentTimeMillis()%32 + 1) + "\n");
			System.out.println("------------------------------");
		}
	}
}


分享到:
评论

相关推荐

    java中产生随机数的两个方法

    Java 中产生随机数的两个方法 在 Java 语言中,产生随机数的需求非常常见,无论是在游戏开发、数据模拟还是其他应用场景中,随机数都是必不可少的。Java 中提供了两种方式来生成随机数:一是通过 Math.random() ...

    JAVA中的随机数产生和排序

    首先,让我们来看看如何在Java中生成随机数。Java提供了两种主要的类来生成随机数:`java.util.Random` 和 `java.security.SecureRandom`。`Random` 类是最常用的,适用于大多数非安全性敏感的场景。创建 `Random` ...

    在Java中产生随机数的两个方法

    ### 在Java中产生随机数的两种方法 在Java编程中,生成随机数是常见的需求之一。根据提供的文件信息,本文将详细介绍两种在Java中生成随机数的方法:通过`Math.random()`函数与`java.util.Random`类。这两种方法各...

    java产生随机数的几种方式

    以下将详细介绍Java中生成随机数的几种方式。 1. **Math.random() 方法** `Math.random()` 是Java中最常用的方式来生成随机数。它返回一个双精度浮点数,其值在0.0(包括)到1.0(不包括)之间。可以通过简单的...

    Java产生随机数的两种方式

    本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`java.lang.Math.random()`方法。这是一个静态方法,不需要实例化对象就可以直接调用。...

    java 求最大的随机数

    要找到“最大的随机数”,首先我们需要了解Java中生成随机数的方法。Java提供了`java.util.Random`类来生成随机数。下面我们将深入探讨如何在Java中生成随机数以及如何找到最大的随机数。 1. **创建Random对象**: ...

    Java产生随机数并存入文件

    利用JAVA语言产生某一特定范围的随机数,并且能够将随机数保存在具体的文件中。

    介绍java 产生随机数式

    - 对于更复杂的需求,例如产生符合特定概率分布的随机数(如正态分布、泊松分布等),可以使用Apache Commons Math库或Java 8引入的`java.util.stream.DoubleStream`配合`IntStream`生成。 总的来说,Java的`...

    Java生成32位随机数,8位随机数

    Java生成32位随机数,短位随机数工具类

    Java获取计算机信息和产生随机数

    主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了

    Java产生随机数代码 各种方法

    `Math.random()`函数是Java中最基本的随机数生成方式,它返回一个在0.0(包括)到1.0(不包括)之间的double类型随机数。若要生成整数,可以通过将结果乘以整数范围并取整得到。例如,生成0-9之间的整数: ```...

    浅谈java中的几种随机数

    本文将深入探讨Java中生成随机数的几种方法及其特点。 首先,最基本的随机数生成方法是使用`java.lang.Math.random()`。这个静态方法返回一个介于0.0(包括)到1.0(不包括)之间的双精度浮点数。要生成指定范围内...

    Java简易随机数生成

    Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }

    Keil C51 中产生随机数的方法

    在Keil C51开发环境中,生成随机数是嵌入式系统编程中常见的需求,尤其在游戏、加密算法、测试工具等领域。本文将详细介绍在Keil C51中如何使用标准库函数`rand()`和`srand()`来生成随机数,并通过实例代码进行演示...

    Java基础之Random随机数.docx

    在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成随机数的主要类,它提供了多种方法来生成随机数。下面是Random类的一些常用方法: * `nextInt()...

    java生成16位随机数

    java生成16位随机数

    使用tcl脚本产生随机数

    使用tcl脚本产生随机数

    混合同余法产生随机数和M序列产生方法(算例及matlab程序)

    根据给定文件的信息,本文将详细探讨混合同余法生成随机数的方法以及M序列的产生方式,包括如何基于M序列生成逆M序列及其相应的Matlab实现。 ### 一、混合同余法产生随机数 #### 1.1 原理介绍 混合同余法是一种...

Global site tag (gtag.js) - Google Analytics