Mersenne Twister secara luas dianggap baik. Heck, sumber CPython mengatakan bahwa itu "adalah salah satu generator paling banyak diuji yang ada." Tapi apa artinya ini? Saat ditanya daftar properti generator ini, sebagian besar yang dapat saya tawarkan adalah buruk:
- Ini sangat besar dan tidak fleksibel (mis. Tidak mencari atau beberapa aliran),
- Itu gagal tes statistik standar meskipun ukuran negara besar,
- Ini memiliki masalah serius di sekitar 0, menunjukkan bahwa itu mengacak dirinya sendiri dengan buruk,
- Ini tidak cepat
dan seterusnya. Dibandingkan dengan RNG sederhana seperti XorShift *, ini juga sangat rumit.
Jadi saya mencari beberapa informasi tentang mengapa ini dianggap baik. Makalah asli membuat banyak komentar pada periode "super astronomi" dan pemerataan distribusi 623 dimensi, kata
Di antara banyak langkah yang diketahui, tes berdasarkan keseragaman dimensi yang lebih tinggi, seperti tes spektral (lih, Knuth [1981]) dan uji distribusi k, yang dijelaskan di bawah ini, dianggap paling kuat.
Tapi, untuk properti ini, generator dikalahkan oleh penghitung yang cukup panjang! Ini tidak membuat komentar tentang distribusi lokal , yang sebenarnya Anda pedulikan dalam generator (meskipun "lokal" dapat berarti berbagai hal). Dan bahkan CSPRNG tidak peduli untuk periode besar seperti itu, karena itu tidak terlalu penting.
Ada banyak matematika di koran, tetapi sejauh yang saya tahu sedikit ini sebenarnya tentang kualitas keacakan. Hampir setiap penyebutan dengan cepat melompat kembali ke klaim asli, sebagian besar tidak berguna ini.
Sepertinya orang melompat ke kereta musik ini dengan mengorbankan teknologi yang lebih tua dan lebih dapat diandalkan. Misalnya, jika Anda hanya menambah jumlah kata dalam LCG menjadi 3 (jauh lebih sedikit daripada "hanya 624" dari Mersenne Twister) dan menampilkan kata teratas setiap pass, ia melewati BigCrush ( bagian yang lebih sulit dari TestU01 test suite ), meskipun Twister gagal ( kertas PCG, gbr. 2 ). Mengingat ini, dan bukti-bukti yang lemah saya bisa menemukan mendukung Mersenne Twister, apa yang lakukan menyebabkan perhatian untuk mendukung itu atas pilihan lain?
Ini juga bukan murni sejarah. Saya telah diberitahu secara sepintas bahwa Mersenne Twister setidaknya lebih terbukti dalam praktik daripada, katakanlah, PCG acak . Tetapi apakah penggunaan case sangat cerdas sehingga mereka bisa melakukan lebih baik daripada baterai tes kami? Beberapa Googling menyarankan mereka mungkin tidak.
Singkatnya, saya bertanya-tanya bagaimana Mersenne Twister mendapatkan reputasi positif luasnya, baik dalam konteks historisnya maupun sebaliknya. Di satu sisi saya jelas skeptis terhadap kualitasnya, tetapi di sisi lain sulit membayangkan bahwa itu adalah kejadian yang sepenuhnya acak.