Menjana Nombor Rawak Berbeza Dalam Gelung dalam C
Dalam C , menulis kod untuk menjana nombor rawak dalam gelung kadangkala boleh menghasilkan keputusan yang tidak dijangka . Pertimbangkan coretan kod berikut:
for (int t = 0; t < 10; t++) { int random_x; srand(time(NULL)); random_x = rand() % 100; cout << "\nRandom X = " << random_x; }
Isu dengan kod ini terletak pada penggunaan berulang srand(time(NULL)) dalam gelung. Walaupun srand() digunakan untuk memulakan penjana nombor rawak, memanggilnya beberapa kali semasa lelaran akan menghasilkan penjanaan urutan nombor rawak yang sama.
Untuk menjana nombor rawak yang berbeza dalam setiap lelaran, srand( ) hendaklah dipanggil sekali sahaja, sebaik-baiknya pada permulaan program. Ini memastikan bahawa benih untuk penjana nombor rawak ditetapkan sekali sahaja, dengan berkesan "merawakkan" titik permulaan untuk setiap lelaran.
int main() { srand(time(NULL)); for (int t = 0; t < 10; t++) { int random_x = rand() % 100; cout << "\nRandom X = " << random_x; } }
Selain itu, jika anda perlu menetapkan semula permulaan nombor rawak sepenuhnya, anda boleh panggil srand() sekali lagi dengan nilai benih yang berbeza. Ini akan menjana urutan nombor rawak baharu, berbeza daripada yang sebelumnya.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak Berbeza dalam Gelung C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!