必威体育Betway必威体育官网
当前位置:首页 > IT技术

Java随机数

时间:2019-10-17 22:12:23来源:IT技术作者:seo实验室小编阅读:56次「手机版」
 

java随机数

在实际开发中产生随机数的使用是很普遍的,所以在程序中进行产生随机数操作很重要。在java中主要提供两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。

1、Math.random()方法

在Math类中存在一个random()方法,用于产生随机数字,这个方法默认生成大于等于0.0小于1.0的double型随机数,即0<=Math.random()<1.0,虽然Math.random()方法只可以产生0~1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围的随机数。

公式:(数据类型)(最小值+Math.random()*(最大值-最小值+1))

上述公式为产生的随机数,范围包含最小值与最大值。

1.1 产生随机整数

/**
 * 产生随机整数(包含起始与终止范围)
 * 
 * @author pan_junbiao
 * @param num1 起始范围参数
 * @param num2 终止范围参数
 * @return 随机整数
 */
public static int GetRandomNum(int num1, int num2)
{
	int result = (int) (num1 + Math.random() * (num2 - num1 + 1));
	return result;
}

public static void main(String args[])
{
	// 产生100至999的随机整数
	System.out.println("任意一个100值999的整数:" + GetRandomNum(100, 999));
}

1.2 产生随机字符

/**
 * 产生随机字符(包含起始与终止范围)
 * 
 * @author pan_junbiao
 * @param char1 起始范围参数
 * @param char2 终止范围参数
 * @return 随机字符
 */
public static char GetRandomChar(char char1, char char2)
{
	char result = (char) (char1 + Math.random() * (char2 - char1 + 1));
	return result;
}

public static void main(String args[])
{
	// 获取a~z之间的随机字符
	System.out.println("任意小写字符:" + GetRandomChar('a', 'z'));

	// 获取A~Z之间的随机字符
	System.out.println("任意大写字符:" + GetRandomChar('A', 'Z'));

	// 获取0~9之间的随机字符
	System.out.println("0到9任意数字字符:" + GetRandomChar('0', '9'));
}

执行结果:

2、Random类

除了Math类中的random()方法可以获取随机数之外,在Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。可以通过实例化一个Random对象创建一个随机数生成器

语法如下:

Random r=new Random();

其中,r是指Random对象。

在Random类中提供了获取各种数据类型随机数的方法,下面举例几个常用的方法。

方法 说明
public int nextint() 返回一个随机整数。
public int nextInt(itn) 返回大于等于0且小于n的随机整数。
public long nextLong() 返回一个随机长整型值。
public boolean nextBoolean() 返回一个随机布尔型值。
public float nextFloat() 返回一个随机浮点型值。
public double nextDouble() 返回一个随机双精度型值。
public double nextGaussian() 返回一个概率密度为高斯分布的双精度值。

示例:使用Random对象生成各种类型的随机数,并输出结果。

import java.util.Random;

/**
 * 使用Random对象生成各种类型的随机数
 * 
 * @author pan_junbiao
 *
 */
public class RandomTest
{
	public static void main(String args[])
	{
		// 实例化一个Random类
		Random r = new Random();

		// 随机产生一个整数
		System.out.println("随机产生一个整数:" + r.nextInt());

		// 随机产生一个大于等于0且小于10的整数
		System.out.println("随机产生一个大于等于0且小于10的整数:" + r.nextInt(10));

		// 随机产生一个布尔类型的值
		System.out.println("随机产生一个布尔类型的值:" + r.nextBoolean());

		// 随机产生一个双精度型的值
		System.out.println("随机产生一个双精度型的值:" + r.nextDouble());

		// 随机产生一个浮点型的值
		System.out.println("随机产生一个浮点型的值:" + r.nextFloat());

		// 随机产生一个概率密度为高斯分布的双精度值
		System.out.println("随机产生一个概率密度为高斯分布的双精度值:" + r.nextGaussian());
	}
}

运行结果:

相关阅读

Java获取今天是几号

System.out.println(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));

JavaScript中textContent、innerText和innerHTML的用

目录 0.码仙励志 1.textContent的用法 1.设置标签中的文本内容 2.获取标签中的文本内容 2.innerText的用法 1.设置标签中的文本内

线索二叉树原理及前序、中序线索化(Java实现)

本文转自:https://blog.csdn.net/UncleMing5371/article/details/54176252 一、线索二叉树原理  前面介绍二叉树原理及特殊二叉

JAVA 中的 -> 是什么意思?

在《JAVA核心编程》中,有一段这样的代码import javax.swing.*; import java.awt.*; import java.io.File; public class ImageVi

【总结】Java核心技术36讲知识点大纲

前段时间在极客时间上购买了杨晓峰老师的《Java核心技术36讲》,趁着这段时间有空,对相关知识点做了一个整体的大纲,也对自己所掌握的

分享到:

栏目导航

推荐阅读

热门阅读