Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Nombor Rawak Berbeza dalam Gelung C?

Bagaimana untuk Menjana Nombor Rawak Berbeza dalam Gelung C?

DDD
DDDasal
2024-12-09 17:20:12855semak imbas

How to Generate Distinct Random Numbers in a C   Loop?

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!

Kenyataan:
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