隨機數字通常用於創建桌上遊戲骰子、賭博程式等應用程式。通常,隨機數產生需要花費大量時間。但是,在 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中文網其他相關文章!