Rumah > pembangunan bahagian belakang > C++ > Mengapakah `rand()` Menghasilkan Urutan Yang Sama Setiap Masa, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `rand()` Menghasilkan Urutan Yang Sama Setiap Masa, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Lepaskan: 2024-12-23 20:52:10
asal
106 orang telah melayarinya

Why Does `rand()` Produce the Same Sequence Every Time, and How Can I Fix It?

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:

  • http://www.dreamincode.net/forums/topic/24225-random-number-generation-102/
  • h ttp://www.dreamincode.net/forums/topic/29294-making-pseudo-random-number-generators-more-random/

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan