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

Bagaimana untuk Menjana Nombor Rawak Unik dalam Gelung C?

Patricia Arquette
Patricia Arquetteasal
2024-12-06 19:41:12871semak imbas

How to Generate Unique Random Numbers in a C   Loop?

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!

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