Dalam ceramah terkenal "rand() Dianggap Memudaratkan," menggunakan pengedaran enjin paradigma untuk penjanaan nombor rawak dianjurkan ke atas penyederhanaan modulus std::rand() klasik.
Untuk menguji tuntutan yang dibuat, percubaan membandingkan std::rand() dengan std::mt19937 plus std:: uniform_int_distribution, telah dijalankan:
Anehnya, taburan agregat gulung adalah sama untuk kedua-dua kaedah, menunjukkan bahawa std::mt19937 plus std::uniform_int_distribution tidak memberikan sebarang keseragaman tambahan. Walau bagaimanapun, kaedah baharu itu kira-kira 4x lebih perlahan.
Walaupun percubaan ini nampaknya menunjukkan bahawa std::rand() tidak semestinya lebih rendah, adalah penting untuk mempertimbangkan batasan yang wujud bagi std::rand():
Sebaliknya,
Dari segi prestasi, adalah dicadangkan std::minstd_rand mungkin merupakan pengganti yang sesuai untuk std ::mt19937 apabila kualiti LCG mencukupi, berpotensi menawarkan kelajuan yang lebih baik (terutamanya apabila mengelakkan pelarasan pengedaran menggunakan uniform_int_distribution).
Akhirnya, pilihan penjana nombor rawak bergantung pada keperluan khusus aplikasi, tetapi yang baharu
Atas ialah kandungan terperinci Adakah Pustaka Rawak Baharu Benar-benar Lebih Baik Daripada `std::rand()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!