C ++ srand () - Thư viện chuẩn C ++

Hàm srand () trong C ++ tạo hạt giống cho trình tạo số ngẫu nhiên giả được sử dụng bởi hàm rand ().

Hàm srand () trong C ++ tạo hạt giống cho trình tạo số ngẫu nhiên giả được sử dụng bởi hàm rand (). Hạt giống cho hàm rand () theo mặc định là 1.

Có nghĩa là nếu không có srand () nào được gọi trước hàm rand (), thì hàm rand () sẽ hoạt động như thể nó được gieo bằng srand (1).

nguyên mẫu srand ()

 void srand (unsigned int seed);

Hàm srand () nhận một số nguyên không dấu làm tham số của nó được dùng làm hạt giống bởi hàm rand ().

Nó được định nghĩa trong tệp tiêu đề.

tham số srand ()

  • seed: Giá trị hạt giống kiểu unsigned int

srand () Giá trị trả về

  • không ai

Hàm srand () không trả về bất kỳ giá trị nào.

Ví dụ 1: Hàm srand () hoạt động như thế nào?

 #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; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Hạt giống = 1, Số ngẫu nhiên = 41 Hạt = 5, Số ngẫu nhiên = 54

Một thực tiễn tốt là chỉ gieo trình tạo số ngẫu nhiên giả một lần khi bắt đầu chương trình và trước bất kỳ lệnh gọi nào của hàm rand (). Nó không nên được gieo mỗi khi chúng ta cần tạo một bộ số mới.

Thực hành tiêu chuẩn là sử dụng kết quả của lời gọi thời gian (0) làm hạt giống. Hàm time () trả về số giây kể từ 00:00 giờ, ngày 1 tháng 1 năm 1970 UTC (tức là dấu thời gian unix hiện tại). Giá trị của hạt giống thay đổi theo thời gian. Vì vậy, mỗi khi chúng tôi chạy chương trình, một tập hợp số ngẫu nhiên mới được tạo ra.

Ví dụ 2: Hàm srand () với time ()

 #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; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Hạt giống = 1485583981 Số ngẫu nhiên = 22589

thú vị bài viết...