Rumah >pembangunan bahagian belakang >C++ >Mengapa Fungsi C rand() Saya Mengembalikan Nombor Rawak Yang Sama Berbilang Kali?
Fungsi Menghasilkan Nilai Rawak Yang Sama Berbilang Kali
Dalam C , fungsi rand() kerap digunakan untuk mencipta nombor rawak. Walau bagaimanapun, apabila fungsi ini dipanggil beberapa kali dalam satu fungsi, ia mungkin menjana hasil yang sama. Ini boleh membingungkan, terutamanya bagi pengaturcara baru.
Untuk memahami isu ini, adalah penting untuk memahami cara rand() berfungsi. Secara dalaman, ia mengekalkan nilai benih, yang digunakan untuk menjana urutan nombor. Secara lalai, srand() dimulakan menggunakan masa semasa, memastikan bahawa benih adalah unik merentas panggilan fungsi yang berbeza.
Walau bagaimanapun, apabila srand() dipanggil semula, benih ditetapkan semula, menyebabkan urutan nombor untuk memulakan semula. Ini mengakibatkan nombor rawak yang sama dijana setiap kali rand() digunakan.
Untuk menyelesaikan isu ini, adalah penting untuk mengelak daripada memanggil srand() sebelum setiap panggilan ke rand(). Sebaliknya, srand() hendaklah dimulakan sekali sahaja, biasanya pada permulaan program, untuk memastikan benih ditetapkan dengan betul dan dikekalkan sepanjang pelaksanaan program.
Dengan melaksanakan perubahan ini, anda boleh memastikan rand itu () boleh menjana nombor rawak unik, menghapuskan isu output pendua.
Atas ialah kandungan terperinci Mengapa Fungsi C rand() Saya Mengembalikan Nombor Rawak Yang Sama Berbilang Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!