Java中的随机数「建议收藏」

Java中的随机数「建议收藏」Java 产生可以随机数的有两个类 一个是 Random 类 另一个是 Math 类中的 random 方法 一 Random 类 在 java util 包中有一个 Random 类 该对象的几个方法可以生成不同数据类型的随机数 如 nextInt nextFloat nextLong nextBoolean 分别生成的是 int 整形 float 浮点型 double 浮点型

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);
}


}
}
编程小号
上一篇 2025-04-26 13:21
下一篇 2025-03-21 12:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/112694.html