Rumah  >  Artikel  >  Java  >  Mengapakah Penjana Nombor Rawak Java Saya Sentiasa Mengembalikan Nombor Yang Sama Walaupun Menetapkan Benih?

Mengapakah Penjana Nombor Rawak Java Saya Sentiasa Mengembalikan Nombor Yang Sama Walaupun Menetapkan Benih?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 07:11:02616semak imbas

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

Java Random Number Generator Sentiasa Mengembalikan Nombor Yang Sama Walaupun Benih

Dalam kod Java yang disediakan, walaupun menetapkan benih, penjana nombor rawak secara konsisten menghasilkan nombor yang sama. Isu timbul apabila mencipta objek Rawak baharu untuk setiap panggilan kaedah. Ini memastikan bahawa benih baharu dijana setiap kali, mengakibatkan pengulangan nombor rawak.

Untuk menyelesaikan masalah ini, adalah penting untuk berkongsi satu kejadian Rawak di seluruh kelas. Dengan memasukkan perubahan ini, kami menjamin bahawa benih ditetapkan sekali sahaja, membawa kepada urutan nombor rawak yang tulen.

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

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

Dengan pengubahsuaian ini, panggilan seterusnya kepada kaedah rawak akan mengembalikan nombor yang berbeza, mematuhi kekangan mempunyai benih tetap.

Atas ialah kandungan terperinci Mengapakah Penjana Nombor Rawak Java Saya Sentiasa Mengembalikan Nombor Yang Sama Walaupun Menetapkan Benih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Jumlah Tatasusunan BerjalanArtikel seterusnya:Jumlah Tatasusunan Berjalan