首頁  >  文章  >  Java  >  儘管設定了種子,為什麼我的 Java 隨機數產生器始終會傳回相同的數字?

儘管設定了種子,為什麼我的 Java 隨機數產生器始終會傳回相同的數字?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-07 07:11:02612瀏覽

Why Does My Java Random Number Generator Always Return the Same Number Despite Setting a Seed?

儘管有種子,Java 隨機數產生器總是傳回相同的數字

在提供的Java 程式碼中,儘管設定了種子,但隨機數產生器始終傳回相同的數字產生相同的數字。為每個方法呼叫建立新的 Random 物件時會出現問題。這確保每次都會產生新的種子,從而導致隨機數的重複。

要解決此問題,必須在整個類別中共用單一 Random 實例。透過合併此更改,我們保證種子僅設定一次,從而產生一系列真正的隨機數。

public class Numbers {
    // Shared Random instance
    private Random randnum = new Random();

    public int random(int i) {
        randnum.setSeed(123456789);
        return randnum.nextInt(i);
    }
}

透過此修改,對 random 方法的後續呼叫將傳回不同的數字,遵循擁有固定種子的限制。

以上是儘管設定了種子,為什麼我的 Java 隨機數產生器始終會傳回相同的數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn