Membaca jawaban untuk pertanyaan SO ini: Mengapa kita tidak menggabungkan generator bilangan acak? , itu berbicara tentang
PRNG yang sangat tinggi (Pseudo Random Number Generator)
jadi itu membuat saya bertanya-tanya apa yang merupakan PRNG berkualitas tinggi, saya berasumsi Anda dapat meringkasnya karena menjadi "lebih acak", tetapi
Pertanyaan1: Kualitas PRNG mana yang digunakan untuk menggambarkan seberapa 'acak' atau 'baik' itu?
Pertanyaan2: Jika Anda memiliki PRNG 'kualitas buruk', apakah ada cara untuk menjadikannya lebih baik?
Jawaban:
Ada beberapa kriteria untuk kualitas PRNG:
Dua kriteria terakhir sangat terkait.
Jika Anda memiliki PRNG kualitas buruk, Anda sering dapat membuatnya lebih baik dengan amplifikasi kekerasan . Ambil beberapa salinan PRNG (menggunakan kunci acak berbeda) dan XOR bersama-sama. Dalam banyak (walaupun tidak semua) hal ini akan secara signifikan meningkatkan kualitasnya.
sumber
Ada beberapa pertimbangan praktis: Seberapa mudah digunakan? Seberapa cepat? Seberapa mudah untuk menghasilkan urutan angka acak yang berbeda? Seberapa mudah untuk memutar ulang angka acak (misalnya, jika Anda menghasilkan 10 miliar angka acak, dapatkah Anda menghasilkan 10 miliar angka acak yang sama persis lagi?)
Pertanyaan besar: Apakah angka yang dihasilkan berperilaku seperti urutan angka acak? PRNG pertama yang pernah saya gunakan memiliki properti aneh yang memiliki dua nilai berturut-turut, yang kedua lebih besar dengan probabilitas sekitar 0,6. Tidak terlalu acak. Jadi, Anda dapat menjalankan semua jenis uji statistik dan memeriksa apakah generator nomor acak Anda berperilaku secara acak. Semakin berperilaku seperti acak, semakin baik.
Dan kemudian muncul keacakan kriptografis. Jika saya memberi Anda n angka acak terakhir, dan pengetahuan lengkap bagaimana generator angka acak berperilaku, dapatkah Anda memprediksi angka acak berikutnya? Jika ya, itu membuatnya tidak cocok dalam situasi di mana Anda memiliki musuh.
sumber
Saya akan menambahkan distribusi seragam ke daftar kualitas yang diinginkan.
sumber