首頁 > Java > java教程 > 為什麼在 Java 中使用相同的種子時會得到相同的隨機數?

為什麼在 Java 中使用相同的種子時會得到相同的隨機數?

DDD
發布: 2024-11-09 14:53:02
原創
643 人瀏覽過

Why do I get identical random numbers when using the same seed in Java?

固定種子的 Java 隨機數:為什麼輸出相同?

在您的程式碼中,您定義了一種使用以下方法產生隨機數的方法指定的種子。但是,您會注意到,當您提供相同的種子時,所有 100 個產生的數字都是相同的。

此行為是預期的,因為在 Random 建構函式中使用相同的種子會產生可預測的數字序列。種子是初始化隨機數產生器的種子值。這是測試的一個重要功能,因為它可以在重新運行測試時獲得一致的結果。

理解偽隨機數產生

偽隨機數產生器 (PRNG),如 Java 中的 Random產生接近真實隨機性的序列。然而,它們有一小部分初始值,包括種子,它完全決定了序列。

修正程式碼

要產生不同的隨機數序列,您應該避免每次使用相同的種子。相反,請在方法外部建立 Random 實例,並在不帶參數的情況下對其進行初始化。此實例將使用 nanoTime 方法產生唯一的種子值。

以下是更正後的程式碼:

private Random generator = new Random();
double randomGenerator() {
    return generator.nextDouble() * 0.5;
}
登入後複製

透過此更改,每次您都會獲得不同的隨機數序列呼叫 randomGenerator 方法。

以上是為什麼在 Java 中使用相同的種子時會得到相同的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板