Tôi đang chơi xung quanh với PRNG (như Mersenne Twister và rand()
chức năng của stdlib) và tôi muốn thử nghiệm tốt sẽ giúp tôi xác định chất lượng dữ liệu ngẫu nhiên do PRNG tạo ra. Tôi đã tính toán giá trị của Pi bằng cách sử dụng các số ngẫu nhiên được tạo ra bởi các PRNG, và tôi thấy rand()
và Mersenne Twister rất gần để đưa ra một sự phân biệt (tôi có cần phải xem xét kỹ sau 10 dấu thập phân không?).Kiểm tra chất lượng của PRNGs
Tôi không có nhiều ý tưởng về mô phỏng Monte Carlo; xin vui lòng cho tôi biết về một số thuật toán/ứng dụng (có thể một cái gì đó đơn giản nhưng có thể cung cấp suy luận tốt) sẽ giúp tôi phân biệt chúng về chất lượng.
EDIT 1: Tôi không để ý trước đây, nhưng có một sợi tương tự: How to test random numbers?
EDIT 2: tôi không thể để phiên dịch các kết quả của NIST, như đã đề cập trong một trong những ý kiến. Tôi có ý tưởng trực quan này giải thích mẫu (nếu có) từ random.org và sau đó là vì nó đơn giản. Tôi sẽ rất vui mừng nếu ai đó có thể nhận xét về quá trình thử nghiệm của tôi:
- Tạo N randoms từ [0,1] sử dụng rand() và MT1997
- nếu
(round(genrand_real1()/rand_0_1()))
điểm ảnh sau đó màu đỏ, khác màu đen
Vì tôi hiểu rằng đây không phải là giải pháp rất chính xác, nhưng nếu điều này cung cấp một ước tính hợp lý, thì tôi có thể sống với điều này tại thời điểm hiện tại.
Tôi không chắc chắn về việc nhận bất kỳ ** dữ liệu ngẫu nhiên ** nào từ ** trình tạo số giả ngẫu nhiên ** - nhưng tôi nghĩ bạn có thể triển khai http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin với họ .. – Aprillion
bạn có nói rằng vì các giá trị được tạo ra từ PRNG có thể dự đoán được không? cảm ơn bạn – Sayan
vâng, đó là sự khác biệt - nó chỉ là một lời nhắc nhở cho bạn để kiểm tra xem một PRNG là đủ tốt cho ứng dụng của bạn và bạn không cần một TRNG như [random.org] (http://random.org) – Aprillion