Mersenne Twister được coi là tốt. Heck, nguồn CPython nói rằng nó "là một trong những máy phát điện được thử nghiệm rộng rãi nhất trong sự tồn tại." Nhưng nó có nghĩa gì? Khi được yêu cầu liệt kê các thuộc tính của trình tạo này, hầu hết những gì tôi có thể cung cấp đều tệ:
- Nó đồ sộ và không linh hoạt (ví dụ: không tìm kiếm hoặc nhiều luồng),
- Nó thất bại trong các bài kiểm tra thống kê tiêu chuẩn mặc dù kích thước nhà nước khổng lồ của nó,
- Nó có vấn đề nghiêm trọng khoảng 0, cho thấy nó ngẫu nhiên khá kém,
- Nó hầu như không nhanh
vân vân So với các RNG đơn giản như XorShift *, nó cũng vô cùng phức tạp.
Vì vậy, tôi đã tìm kiếm một số thông tin về lý do tại sao điều này từng được cho là tốt. Bài báo gốc đưa ra rất nhiều bình luận về thời kỳ "siêu thiên văn" và sự phân chia 623 chiều, cho biết
Trong số nhiều biện pháp đã biết, các thử nghiệm dựa trên tính đồng nhất về chiều cao hơn, chẳng hạn như thử nghiệm quang phổ (cf, Knuth [1981]) và thử nghiệm phân phối k, được mô tả dưới đây, được coi là mạnh nhất.
Nhưng, đối với tài sản này, máy phát điện bị đánh bại bởi một bộ đếm có chiều dài đủ! Điều này làm cho không có bình luận về các bản phân phối cục bộ , đó là những gì bạn thực sự quan tâm trong một trình tạo (mặc dù "cục bộ" có thể có nghĩa là nhiều thứ khác nhau). Và ngay cả CSPRNG cũng không quan tâm đến những khoảng thời gian lớn như vậy, vì nó không quan trọng từ xa.
Có rất nhiều bài toán trong bài báo, nhưng theo tôi có thể nói rất ít về điều này thực sự là về chất lượng ngẫu nhiên. Khá nhiều đề cập đến điều đó nhanh chóng quay trở lại với những tuyên bố ban đầu, phần lớn là vô dụng.
Có vẻ như mọi người đã nhảy vào nhóm nhạc này với chi phí cho các công nghệ cũ hơn, đáng tin cậy hơn. Ví dụ: nếu bạn chỉ tăng số lượng từ trong LCG lên 3 (ít hơn nhiều so với "chỉ 624" của Mersenne Twister) và xuất ra từ hàng đầu mỗi lần vượt qua, nó sẽ vượt qua BigCrush ( phần khó hơn của bộ kiểm tra TestU01 ), mặc dù Twister không thành công ( giấy PCG, hình 2 ). Đưa ra điều này, và bằng chứng yếu mà tôi có thể tìm thấy để hỗ trợ cho Mersenne Twister, điều gì đã gây ra sự chú ý để ủng hộ nó hơn các lựa chọn khác?
Đây cũng không hoàn toàn là lịch sử. Tôi đã được thông báo rằng Mersenne Twister ít nhất được chứng minh trong thực tế hơn là, ngẫu nhiên , PCG . Nhưng các trường hợp sử dụng có sáng suốt đến mức chúng có thể làm tốt hơn các bài kiểm tra pin của chúng tôi không? Một số Googling cho thấy họ có thể không.
Nói tóm lại, tôi tự hỏi làm thế nào Mersenne Twister có được danh tiếng tích cực rộng rãi, cả trong bối cảnh lịch sử và mặt khác. Một mặt tôi rõ ràng hoài nghi về phẩm chất của nó, nhưng mặt khác thật khó để tưởng tượng rằng đó là một sự xuất hiện hoàn toàn ngẫu nhiên.