C ++ srand () - C ++ Standard Library

Fungsi srand () dalam C ++ menge-seed generator bilangan acak semu yang digunakan oleh fungsi rand ().

Fungsi srand () dalam C ++ menge-seed generator bilangan acak semu yang digunakan oleh fungsi rand (). Fungsi seed untuk rand () adalah 1 secara default.

Artinya jika tidak ada srand () yang dipanggil sebelum rand (), fungsi rand () berperilaku seolah-olah diunggulkan dengan srand (1).

prototipe srand ()

 void srand (biji int unsigned);

Fungsi srand () menggunakan unsigned integer sebagai parameternya yang digunakan sebagai seed oleh fungsi rand ().

Ini didefinisikan dalam file header.

Parameter srand ()

  • benih: Nilai benih jenis unsigned int

srand () Nilai kembali

  • Tidak ada

Fungsi srand () tidak mengembalikan nilai apa pun.

Contoh 1: Bagaimana fungsi srand () bekerja?

 #include #include using namespace std; int main() ( int random = rand(); /* No srand() calls before rand(), so seed = 1*/ cout << "Seed = 1, Random number = " << random << endl; srand(5); /* Seed = 5 */ random = rand(); cout << "Seed = 5, Random number = " << random << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Benih = 1, Nomor Acak = 41 Benih = 5, Nomor Acak = 54

Merupakan praktik yang baik untuk menyemai generator bilangan acak semu hanya sekali pada awal program dan sebelum panggilan rand (). Ini tidak boleh diunggulkan setiap kali kita perlu membuat kumpulan angka baru.

Praktik standarnya adalah menggunakan hasil panggilan ke waktu (0) sebagai benih. Fungsi time () mengembalikan jumlah detik sejak jam 00:00, 1 Jan 1970 UTC (yaitu stempel waktu unix saat ini). Nilai benih berubah seiring waktu. Jadi setiap kali kita menjalankan program, satu set nomor acak baru dihasilkan.

Contoh 2: Fungsi srand () dengan waktu ()

 #include #include #include using namespace std; int main() ( srand(time(0)); int random = rand(); cout << "Seed = " << time(0) << endl; cout << "Random number = " << random << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Benih = 1485583981 Nomor acak = 22589

Artikel yang menarik...