溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java生成隨機數的案例

發(fā)布時間:2020-08-20 14:51:20 來源:億速云 閱讀:131 作者:小新 欄目:編程語言

Java生成隨機數的案例?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热?,讓我們一起來看看吧?/p>

生成一系列隨機數是不時出現(xiàn)的常見任務之一。在Java中,只需使用java.util.Random類即可實現(xiàn)。

Java生成隨機數的案例

與使用任何API 類一樣,第一步是在程序類開始之前放入import語句:

 import java.util.Random;

接下來,創(chuàng)建一個Random對象:

 Random rand = new Random();

Random對象為您提供了一個簡單的隨機數生成器。對象的方法提供了選擇隨機數的能力。例如,nextInt()和nextLong()方法將分別返回int和long數據類型的值(負數和正數)范圍內的數字:

 Random rand = new Random();
for (int j=0;j < 5;j++)
{
  System.out.printf("%12d ",rand.nextInt());
  System.out.print(rand.nextLong());
  System.out.println();
}

返回的數字將隨機選擇int和long值:

-1531072189 -1273932119090680678
1849305478  6088686658983485101
1043154343  6461973185931677018
1457591513  3914920476055359941
-1128970433 -7917790146686928828

從某個范圍中挑選隨機數

通常,要生成的隨機數需要來自某個范圍(例如,包括1到40之間)。為此,nextInt()方法也可以接受int參數。它表示數字范圍的上限。但是,上限數字不包括在可以選擇的數字之一中。這可能聽起來令人困惑,但nextInt()方法從零開始工作。例如:

 Random rand = new Random();
rand.nextInt(40);

只會從0到39中選擇一個隨機數。要從以1開頭的范圍中進行選擇,只需將1添加到nextInt()方法的結果中即可。例如,要選擇1到40之間的數字,請在結果中添加一個:

 Random rand = new Random();
int pickedNumber = rand.nextInt(40) + 1;

如果范圍從一個更高的數字開始,您將需要:

減去上限數字的起始編號,然后加一。

將起始編號添加到nextInt()方法的結果中。

例如,要從5到35中選擇一個數字,上限數字將為35-5 + 1 = 31,并且需要將5添加到結果中:

 Random rand = new Random();
int pickedNumber = rand.nextInt(31) + 5;

隨機類是多么隨機?

我應該指出,Random類以確定的方式生成隨機數。產生隨機性的算法基于稱為種子的數字。如果種子數已知,那么可以計算出將從算法中產生的數字。為了證明這一點,我將使用Neil Armstrong首次踏上月球之日的數字作為我的種子數(1969年7月20日):

 import java.util.Random;
public class RandomTest {;
  public static void main(String[] args) {
    Random rand = new Random(20071969);
    for (int j = 0; j

無論誰運行此代碼,生成的“隨機”數字序列將是:

 3 0 3 0 7 9 8 2 2 5

默認情況下,使用的種子編號由:

 Random rand = new Random();

是自1970年1月1日以來的當前時間(以毫秒為單位)。通常,這將為大多數目的產生足夠隨機的數字。但是,請注意,在同一毫秒內創(chuàng)建的兩個隨機數生成器將生成相同的隨機數。

對任何必須具有安全隨機數生成器的應用程序(例如,賭博程序)使用Random類時也要小心。可以根據應用程序運行的時間猜測種子數。通常,對于隨機數絕對關鍵的應用程序,最好找到Random對象的替代方案。對于大多數只需要某個隨機元素的應用程序(例如,棋盤游戲的骰子),它可以正常工作。

感謝各位的閱讀!看完上述內容,你們對Java生成隨機數的案例大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI