Tạo số ngẫu nhiên c ++

tạo số ngẫu nhiên c++Trong quá trình test chương trình, vấn đề nhập số liệu có thể làm bạn cảm thấy vô cùng nhàm chán, tốn thời gian và thậm chí là khiến bạn căng thẳng. Đặc biệt, điều này càng dễ dàng xảy ra hơn nếu bạn gặp phải lỗi phải sửa đi sửa lại nhiều lần hoặc số lượng số liệu cần nhập quá nhiều. Bằng cách tạo số ngẫu nhiên c++ với hàm rand(), bạn có thể dễ dàng tạo ra input cho các bài test một cách nhanh chóng

Tiền đề bài viết

Trong quá trình làm việc và học tập, tôi thật sự bị căng thẳng với việc phải nhập hàng loạt những số liệu khi debug một chương trình. Vì thế, tôi đã tìm kiếm công cụ giúp mình giải quyết vấn đề căng thẳng này. Sau quá trình tìm hiểu và thu thập kiến thức từ nhiều nguồn, tôi đã tìm được hàm rand(). Tôi viết bài viết này nhằm chia sẻ những hiểu biết của mình về nó.

Đối tượng hướng đến

Bài viết hướng đến những lập trình viên mới bước chân vào lập trình căn bản và cần tìm hiểu thêm về cách tạo số ngẫu nhiên trong C++. Bên cạnh đó những lập trình viên khác có thể xem đây như là tài liệu để tham khảo.

Tạo 1 số ngẫu nhiên bất kì

Để tạo ra một số ngẫu nhiên, chúng ta sử dụng hàm rand(). Hàm này trả về cho chúng ta kết quả là một giá trị nguyên có giá trị từ 0 đến RAND_MAX, với RAND_MAX là một hằng số được định nghĩa trong thư viện <cstdlib>. Vì vậy, bạn cần khai báo thư viện <cstdlib> trước khi sử dụng hàm rand().
Ví dụ:

Lưu ý: Giá trị RAND_MAX trên từng trình biên dịch là không giống nhau. Chẳng hạn như với trình biên dịch của g++ trên ubuntu 16.04, giá trị RAND_MAX là 2147483647. Bạn có thể kiểm tra giá trị này một cách dễ dàng bằng đoạn code ngắn gọn sau.

Tạo số ngẫu nhiên c++ thay đổi theo thời gian

Khi sử dụng hàm rand() để tạo ra một số ngẫu nhiên bất kì như trên, nếu bạn chạy thử đoạn code ấy nhiều lần thì sẽ phát hiện ra được một điểm bất thường. Đó là giá trị ngẫu nhiên của các biến không thay đổi qua nhiều các lần chạy. Để giải quyết điểm bất thường này, chúng ta sẽ sử dụng hàm srand() thuộc thư viện <ctime>. Chúng ta có thể sử dụng hàm này bằng cách đặt dòng code srand(time(NULL)); trước khi hàm rand() được sử dụng.

Tạo số ngẫu nhiên c++ với một khoảng xác định

Hai cách sử dụng trên đều cho bạn kết quả giá trị ngẫu nhiên là những giá trị trong khoảng từ 0 đến RAND_MAX. Vậy nếu bạn muốn tạo ra một giá trị ngẫu nhiên trong khoảng xác định mà mình muốn thì sao? Rất đơn giản, thay vì sử dụng hàm rand() như những cách trên đây, bạn có thể sử dụng theo công thức sau:

rand() % (b – a + 1) + a.

Khi ấy, bạn sẽ nhận được kết quả trả về là một giá trị nằm trong khoảng từ a đến b.

Ví dụ: tạo số ngẫu nhiên c++ giá trị trong khoảng [1, 50]

Hy vọng với những kiến thức mình cung cấp  sẽ giúp ít cho bạn được phần nào trong việc debug 😀

Để tìm hiểu rõ hơn về hàm rand(). bạn có thể đọc tài liệu trên trang cplusplus.com

BÌNH LUẬN

Please enter your comment!
Please enter your name here