Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Nombor Rawak Unik dalam Gelung C?
Menjana Nombor Rawak Unik Dalam Gelung dalam C
Semasa menggelung melalui set lelaran, adalah wajar untuk menjana nombor rawak yang berbeza setiap kali gelung dilaksanakan. Walau bagaimanapun, menggunakan penjana nombor rawak lalai dalam C (srand) dalam gelung boleh menyebabkan nombor yang sama dijana berulang kali.
Menetapkan Semula Permulaan Nombor Rawak
Untuk mengelakkan isu ini dan memastikan penjanaan nombor rawak yang unik, adalah penting untuk menetapkan semula benih penjana nombor rawak menggunakan srand(). Fungsi ini mengambil integer sebagai hujah dan apabila dipanggil, ia memulakan keadaan dalaman penjana nombor rawak.
Pelaksanaan
Berikut ialah contoh yang mempamerkan cara untuk jana nombor rawak unik dalam gelung:
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand(time(NULL)); // Initialize the random number generator once // Execute the loop 10 times and generate a different random number each time for (int t = 0; t < 10; t++) { int random_x = rand() % 100; std::cout << "\nRandom X = " << random_x << std::endl; } return 0; }
Bagaimana ia Berfungsi
Dalam contoh ini, kami menggunakan fungsi masa(NULL) untuk menjana benih berdasarkan masa semasa. Ini memastikan bahawa benih akan berbeza setiap kali program dijalankan. Dengan menetapkan benih dengan srand() sekali di luar gelung, kami menjamin bahawa penjana nombor rawak akan menghasilkan aliran nombor yang unik.
Menetapkan Semula Permulaan Nombor Rawak
Fungsi srand() juga menetapkan semula penjana nombor rawak kepada keadaan awalnya, membuang sebarang benih sebelumnya. Ini bermakna bahawa panggilan berikutnya ke rand() akan menjana urutan nombor baharu berdasarkan benih yang baru ditetapkan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak Unik dalam Gelung C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!