Mengapa rand() Mengembalikan Urutan Boleh Diramal?
Fungsi rand() menghasilkan urutan nombor yang kelihatan rawak. Walau bagaimanapun, jika anda perasan ia menjana nilai yang sama dalam setiap program yang dijalankan, isu ini timbul kerana benih penjana nombor rawak tidak dimulakan.
Untuk menyelesaikan masalah ini, gunakan srand((unsigned int)time(NULL) ), yang menjana benih menggunakan masa semasa, memastikan faktor rawak sebenar dalam jujukan. Ini amat relevan untuk fungsi seperti rand() yang menggunakan penjana nombor rawak pseudo, di mana nombor yang dijana tidak benar-benar rawak tetapi mengikut corak penentu.
Dengan memulakan benih dengan nombor yang benar-benar rawak, anda boleh memecahkan ulangan dan mendapatkan urutan yang lebih tidak dapat diramalkan. Untuk pemahaman lanjut, rujuk perkara berikut sumber:
Atas ialah kandungan terperinci Mengapakah `rand()` Menghasilkan Urutan Yang Sama Setiap Masa, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!