Một câu trả lời gần đây đã đề cập đến việc sử dụng Máy tạo số ngẫu nhiên ( RNG ) của Fortuna hoặc Mersenne Twister để tạo ra một mô phỏng Monte Carlo . Tôi chưa nghe nói về Fortuna trước đây vì vậy tôi đã tra cứu nó - có vẻ như nó chủ yếu dành cho mục đích sử dụng mật mã.
Tôi hiện đang sử dụng Mersenne Twister trong mã sản xuất để tạo ra thuật toán K-Means.
Mà (Fortuna hoặc Mersenne Twister) được coi là tốt nhất cho các ứng dụng "gieo hạt thuật toán" (ví dụ: gieo hạt Monte Carlo và K-Means)? Hoặc là "tung lên" - tức là sử dụng thuận tiện nhất.
Từ nơi tôi đang ngồi, "tốt nhất" sẽ cung cấp các số ngẫu nhiên chất lượng cao nhất, hoạt động nhanh chóng và (có thể) có dấu chân bộ nhớ thấp. Trong số này, chất lượng có lẽ là quan trọng nhất đối với hầu hết chúng ta.
RAND_MAX=32768
các giá trị có thể. Tôi hiện đang sử dụng MT cho sim raytracing Monte Carlo. Tuy nhiên, tôi không thấy MT là một nút cổ chai hiệu năng trong trình hồ sơ của mình, có lẽ vì tôi đang tạo ra những thứ "ngẫu nhiên" như các hướng tia như một tiền xử lý . Ví dụ: tôi có thể tạo ra một mảng gồm 100.000 tia khi khởi động, lưu trữ chúng trong một mảng và chọn ngẫu nhiên vị trí bắt đầu mảng khi chạy (chạy cho 10.000 tia hoặc hơn bộ sưu tập). Điều này có chi phí bộ nhớ tương đối cao, để đổi lấy phân phối số ngẫu nhiên tốt.