Số giả ngẫu nhiên
Số giả ngẫu nhiên (pseudo-random numbers) là các dãy số được sinh ra bằng thuật toán máy tính, mang lại ấn tượng về sự ngẫu nhiên mặc dù chúng thực sự không hoàn toàn ngẫu nhiên. Mặc dù chúng không thực sự ngẫu nhiên, nhưng nếu được thiết lập đúng, chúng có thể mang lại hiệu quả tương đương với sự ngẫu nhiên thực sự trong nhiều ứng dụng.
Thuật toán Linear Congruential Generator (LCG):
- Là một trong những thuật toán sinh số giả ngẫu nhiên đơn giản nhất.
- Sử dụng phương trình đệ quy tuyến tính để tạo ra các số ngẫu nhiên.
- Đặc trưng bởi ba tham số: \(X_{n+1} = (aX_n + c) \mod m\)
- Dễ triển khai và hiệu suất tốt, nhưng có thể dẫn đến chuỗi số không ngẫu nhiên nếu các tham số không được lựa chọn đúng.
Thuật toán Mersenne Twister:
- Là một thuật toán sinh số giả ngẫu nhiên phổ biến và mạnh mẽ.
- Dựa trên các số nguyên tố Mersenne, có chu kỳ rất dài và độ chệch thấp.
- Thường được sử dụng trong nhiều ngôn ngữ lập trình vì độ tin cậy và hiệu suất cao.
Ví dụ, trong ngôn ngữ lập trình Python, thư viện random cung cấp các hàm để sinh số giả ngẫu nhiên. Dưới đây là một ví dụ sử dụng Python để sinh số giả ngẫu nhiên:
import random
# Thiết lập hạt giống để đảm bảo kết quả tái tạo được
random.seed(42)
# Sinh số giả ngẫu nhiên trong khoảng [0, 1)
random_number = random.random()
print("Số giả ngẫu nhiên:", random_number)
Chú ý là hàm random.random() sinh một số ngẫu nhiên trong khoảng [0, 1).
Số giả ngẫu nhiên thường được sử dụng trong nhiều lĩnh vực, bao gồm mô phỏng, tạo dữ liệu thử nghiệm, và trong các thuật toán mà yêu cầu sự ngẫu nhiên như các thuật toán tối ưu hóa và mô phỏng Monte Carlo.
Tài liệu tham khảo: https://vi.wikipedia.org/wiki/Ph%C6%B0%C6%A1ng_ph%C3%A1p_Monte_Carlo