91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java?Random類里的種子問題怎么解決

發布時間:2022-05-13 13:46:01 來源:億速云 閱讀:154 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Java Random類里的種子問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java Random類里的種子問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

可以說在現在的計算機語言里面,以及普通用戶這里,都是沒有辦法獲得真正的 隨機數的。真正的隨機數現在也只有在量子計算機當中才有獲得。

所以我們現在所說的隨機數,也可以稱為偽隨機數,偽隨機數是通過一種算法并且結合當下一個有規律其不斷改變的數(比如時間)獲得的結果。

我們將這種通過算法集合時間作為初始獲得隨機數的基準的數據稱為種子。

Java當中創建隨機數的方式是有兩種的:

第以種就是直接創建Random對象

Random random = new Random();

在底層就會調用這個方法來得到種子:

Java?Random類里的種子問題怎么解決

第二種就是將自己創建的種子傳進去:

Random random = new Random(5);

Java?Random類里的種子問題怎么解決

在源碼里我們可以直接看出種子的數據類型為long型,是長整形。

所以我們現在就有一種辦法,在它最開始生成Random對象的時候,獲得它生成的種子,然后將獲得的種子又傳入創建Random的對象當中。是不是就可以獲得上面一模一樣的隨機數了?

先拿java語言來實現一下:

import java.util.Random;

public class Demo02 {
    public static void main(String[] args) {
        Random random = new Random(5);//在這將5作為種子傳入
        System.out.println("第一次調用:");
        for (int i = 0; i < 5; i++) {
            System.out.print(random.nextInt(10) + "\t");
            //獲得10以內的隨機數(不包括10)
        }
        random.setSeed(5);//在這再將種子5傳入Random的種子當中
        System.out.println("\n第二次調用:");
        for (int i = 0; i < 5; i++) {
            System.out.print(random.nextInt(10) + "\t");
        }
    }
}

Java?Random類里的種子問題怎么解決

在這明顯的看出,這個隨機數是一點都不隨機的。兩次只要種子一樣,就能返回相同的結果。

在這我再用python語言在實現一次這個功能(主要是java當中沒有能調用輸出當前種子的方法)。用python有一個更好的理解。

在python里面我會更加詳細的寫清注釋,詳細不會很難理解不了的。

import random  #導入random內庫
x = random.getstate()  # 獲得當前random里的種子
print('第一次循環:') #輸入語句
for i in range(5):
    #for循環  for i in range(5)  ===》 for (int i = 0; i < 5; i++)
    #在python里面并沒喲什么大括號去吧什么括起來,而是要注意鎖定,一個鎖定就是一個整體
    print(random.randint(1, 10), end='\t')
    #random.randint(1, 10)生成1~10(不包括10)的隨機數,
    # end='\t'表示當前print沒有結束,還有一個制表符的鍵位,也就不換行了
print('\n第二次循環')
random.setstate(x)#將上面獲得的種子再次傳入進去
for i in range(5): #這里和上面一樣,循環出5次
    print(random.randint(1, 10), end='\t')

Java?Random類里的種子問題怎么解決

讀到這里,這篇“Java Random類里的種子問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

蓝山县| 巴马| 互助| 尚义县| 万年县| 晋江市| 玛纳斯县| 莒南县| 瑞金市| 泸溪县| 成武县| 巍山| 斗六市| 宁波市| 承德县| 南投县| 铜陵市| 阜宁县| 郸城县| 邻水| 革吉县| 呼和浩特市| 东安县| 丁青县| 中卫市| 广元市| 建宁县| 芦溪县| 繁峙县| 台安县| 陆川县| 河池市| 获嘉县| 二连浩特市| 永宁县| 梧州市| 定州市| 东辽县| 萨迦县| 丰顺县| 乾安县|