Java 中的随机数生成器
随机数通常用于创建桌面游戏骰子、赌博程序等应用程序。通常,随机数生成需要花费大量时间。但是,在 Java 编程语言中,可以使用三种方法来实现这一点。它们将在下面的“Java 中的随机数生成器函数”部分中进行讨论。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
Java 中的随机数生成器函数
在 Java 中,可以使用 3 种方式生成随机数:
- Math.random方法
- java.util.Random 类
- ThreadLocalRandom 类
1. Math.random() 方法
Java Math 类提供了多种计算方法,如对数、平均值、指数等。 random() 是其中的方法之一,它返回 0.0 到 1.0 范围内的正双精度值,其中 0.0包含在内,1.0 排除在外。该方法可以使用或不使用参数。如果给定参数,则生成的随机数将在给定参数的范围内。
示例#1
代码:
public class RandomNumber {
double num; //Declare a variable num
//Method which generates a random number
public double randnum()
{
num=Math.random();
return num;
}
// Main Method of a program
public static void main(String[] args) {
//Printing a random number
System.out.println("Random Number generated inside main method: "+Math.random());
//Create an object of the class RandomNumber
RandomNumber randomobj=new RandomNumber();
//Store the return value obtained from randnum method in a variable randomval
double randomval=randomobj.randnum();
//Printing the random number stored in variable randomval
System.out.println("Random Number generated inside randomnumber method: "+randomval);
}
}输出:

在上面的示例中,使用 Math.random() 方法生成随机数有两种方式:直接在 main 方法中应用它以及使用对象调用包含 Math.random() 的方法。 正如上面的解释中提到的,我们可以看到在 0.0 和 1.0 范围内生成了 2 个随机数。
生成参数范围内的随机数,一般使用的表达式如下:
Math.random()* ((最大值 – 最小值) +1 ) + 最小值
示例#2
其中 maxvalue 是范围的上限,min value 是范围的下限。例如,为了生成 10 到 20 之间的随机数,请将最大值设置为 20,最小值设置为 10。
代码:
public class RandomNumParameters {
public double randomnum(double x,double y)//max value-y, min value-x
{
double z =(Math.random()*((y-x)+1)+x); //Formula for random number generation within a range
return z;
}
public static void main(String[] args)
{
RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters
double num=ran.randomnum(3.0, 10.0); //Call the Method
System.out.println("Random number generated within the range of 3 and 10: "+num );
} }输出:

2. java.util.Random类
Java.util.random类生成不同数据类型的随机数,例如float、long、integer、double、Boolean等。也可以将数字范围作为参数传递以生成该范围内的随机数。为了使用这个类,必须导入java.util的Random类(java.util.Random)。导入此类后,创建一个实例并使用该实例调用 next long()、nextInt() 等方法。
示例
代码:
//Java program to generate Random numbers using Random class
package Sample;
import java.util.Random; //import Random Class
public class RandomNum {
public static void main(String[] args) {
Random rand=new Random(); //Create instance of Random class
double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable
System.out.println("Random Double value: "+ randomnum);
}
}输出:

在上面的程序中,使用 nextDouble() 方法生成随机双精度值。
3. ThreadLocalRandom 类
ThreadLocalRandom 类是 Java 版本 1.7 中引入的一种特殊类型的 Random 类。 ThreadLocalRandom.current().nextInt() 是用于生成随机数的常用方法之一。它通常用于多线程应用程序。
示例
代码:
//Java Program to generate random numbers using ThreadLocalRandom Class
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumThread {
public static void main(String[] args) {
//print a random double
System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble());
}
}输出:

整数的生成
可以使用 ThreadLocalRandom 类和 Random 类生成随机整数。在这两种情况下,方法 nextInt() 的用途相同:
示例
代码:
//Java program to generate Random integer numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomInteger {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
int randomnum1=rnd.nextInt(); //Random Integer value using Random Class
int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30
int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class
System.out.println("Random Integer value using Random Class: "+ randomnum1);
System.out.println("Random Integer value within the range of 30: "+ randomnum2);
System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3);
}
}输出:

在上面的示例中,生成了三个随机整数类型数字,其中 nextInt() 方法之一以 30 作为参数。因此,在生成随机数时,上限设置为 30,下限设置为 0(默认下限)。
生成浮点数
与生成整数类似,可以使用 nextFloat() 方法生成浮点数。该方法可以在 Random 类和 ThreadLocalRandom 类中使用:
示例
代码:
//Java program to generate Random Float numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFloat {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
float randomnum1=rnd.nextFloat(); //Random Float value using Random Class
float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class
System.out.println("Random float value using Random Class: "+ randomnum1);
System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2);
}
}输出:

结论 – Java 中的随机数生成器
Java 包含大量可在程序中使用的函数。这有助于减少处理时间和代码行数。随机数生成是我们可以使用其中一些函数的一项任务。本文档涵盖了实现此目的的不同方法。
以上是Java 中的随机数生成器的详细内容。更多信息请关注PHP中文网其他相关文章!
热AI工具
Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片
AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。
Undress AI Tool
免费脱衣服图片
Clothoff.io
AI脱衣机
AI Hentai Generator
免费生成ai无尽的。
热门文章
热工具
记事本++7.3.1
好用且免费的代码编辑器
SublimeText3汉化版
中文版,非常好用
禅工作室 13.0.1
功能强大的PHP集成开发环境
Dreamweaver CS6
视觉化网页开发工具
SublimeText3 Mac版
神级代码编辑软件(SublimeText3)
热门话题
突破或从Java 8流返回?
Feb 07, 2025 pm 12:09 PM
Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处
Java程序查找胶囊的体积
Feb 07, 2025 am 11:37 AM
胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4


