随机数通常用于创建桌面游戏骰子、赌博程序等应用程序。通常,随机数生成需要花费大量时间。但是,在 Java 编程语言中,可以使用三种方法来实现这一点。它们将在下面的“Java 中的随机数生成器函数”部分中进行讨论。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
在 Java 中,可以使用 3 种方式生成随机数:
Java Math 类提供了多种计算方法,如对数、平均值、指数等。 random() 是其中的方法之一,它返回 0.0 到 1.0 范围内的正双精度值,其中 0.0包含在内,1.0 排除在外。该方法可以使用或不使用参数。如果给定参数,则生成的随机数将在给定参数的范围内。
代码:
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 ) + 最小值
其中 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.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() 方法生成随机双精度值。
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 中的随机数生成器的详细内容。更多信息请关注PHP中文网其他相关文章!