首頁  >  文章  >  Java  >  Java 中的隨機數產生器

Java 中的隨機數產生器

WBOY
WBOY原創
2024-08-30 16:27:17854瀏覽

隨機數字通常用於創建桌上遊戲骰子、賭博程式等應用程式。通常,隨機數產生需要花費大量時間。但是,在 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
上一篇:Java 中的強數下一篇:Java 中的強數