What is the correct way to ensure a different sequence of random numbers in each program run?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "srand(time(NULL));". Hàm rand sinh dãy giả ngẫu nhiên hoàn toàn xác định từ một hạt giống; không gieo hạt thì chương trình coi như hạt bằng 1 và mỗi lần chạy lại cho đúng dãy cũ. Gọi srand với time(NULL), tức số giây tính từ mốc thời gian hệ thống, làm hạt đổi theo từng lần chạy nên dãy số cũng đổi. Chỉ nên gieo một lần ở đầu chương trình, gieo lại trong vòng lặp sẽ phản tác dụng vì trong cùng một giây hạt không đổi. Lựa chọn "rand(time(0));" sai vì rand không nhận đối số, nhiệm vụ gieo hạt thuộc srand. Lựa chọn "srand();" thiếu đối số bắt buộc nên không dịch được, và nếu bỏ hẳn lời gọi thì lại rơi vào hạt mặc định. Lựa chọn "randomize();" là hàm riêng của Borland, không có trong thư viện chuẩn nên mã dùng nó không dịch được ở nơi khác.

Cùng phần 6

Xuất hiện trong 1 bộ đề