Java中的随机数

本文介绍了Java中生成随机数的两种方式:Random类和Math.random()方法。通过实例展示了如何生成不同类型的随机数,包括整数、浮点数和布尔值,并讲解了如何限定随机数的区间。同时,对比了Random类的nextInt()和nextLong()方法以及Math.random()方法的使用方法,提供了生成特定区间随机数的技巧。
摘要由CSDN通过智能技术生成

        Java产生可以随机数的有两个类,一个是Random类,另一个是Math类中的random()方法。

一、Random类

        在java.util包中有一个Random类,该对象的几个方法可以生成不同数据类型的随机数。如nextInt(),nextFloat(),nextLong(),nextBoolean()分别生成的是int整形,float浮点型,double浮点型,boolean布尔类型的随机数,也必须要用制定的数据类型的变量接收。

        例如:输出五个随机的布尔类型

import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			boolean temp = rd.nextBoolean();
			System.out.println(temp);
		}
		
		
	}
}

        

        此外,可以生成int整形的nextInt()方法,有一个重载方法nextInt(int bound),多了一个传入的bound整形,该方法可以使其生成[0,bound)区间的整形随机数。bound不能<=0会报错。

        例如:随机输出5个0-99的随机数。


import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			int temp = rd.nextInt(100);
			System.out.println(temp);
		}
		
		
	}
}

        输出结果也是随机的0-99:

        我们发现,nextLong()同样是生成整形的随机数,但是没有指定限制随机区间的重载函数,那么就可以使用人为的方式来限制随机区间。

        1. nextLong()%n使其随机数区间在(-n,n)

        例如 : 输出(-10,10)的5个随机数。


import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = rd.nextLong()%10;
			System.out.println(temp);
		}
		
		
	}
}

        

        2.使用 Math.abs()  限制随机数为非负数。

        例如:输出5个 0-9的随机数

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = Math.abs( rd.nextLong())%10;
			System.out.println(temp);
		}
		
		
	}
}

         其中的nextFloat(),nextDouble()方法分别生成0-1的8位有限小数,16位有限小数的随机数。

        例如:输出5个16位有限小数的随机数。

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.abs( rd.nextDouble())%10;
			System.out.println(temp);
		}
		
		
	}
}

        

二、Math.random()方法

        生成的随机数和Random类的nextDouble()类似,也是16位有限小数。

        例如:输出5个0-1区间的16位有限小数的随机数。

import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.random();
			System.out.println(temp);
		}
		
		
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tanxinji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值