首页  >  文章  >  Java  >  Java 中的随机数生成器

Java 中的随机数生成器

WBOY
WBOY原创
2024-08-30 16:27:17744浏览

随机数通常用于创建桌面游戏骰子、赌博程序等应用程序。通常,随机数生成需要花费大量时间。但是,在 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);
}
}

输出:

Java 中的随机数生成器

在上面的示例中,使用 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 );
} }

输出:

Java 中的随机数生成器

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

输出:

Java 中的随机数生成器

在上面的程序中,使用 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());
}
}

输出:

Java 中的随机数生成器

整数的生成

可以使用 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);
}
}

输出:

Java 中的随机数生成器

在上面的示例中,生成了三个随机整数类型数字,其中 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 包含大量可在程序中使用的函数。这有助于减少处理时间和代码行数。随机数生成是我们可以使用其中一些函数的一项任务。本文档涵盖了实现此目的的不同方法。

以上是Java 中的随机数生成器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn