Yapabilirdin şu şekilde aralık [0,1) çıkış çiftler arasında bir tamsayıdır göre bir rasgele sayı üreteci değiştirin: randint() 32 bitlik bir sayı üretir halinde
double randDouble = randInt()/(RAND_INT_MAX + 1.0)
Bununla birlikte, bu olmaz çiftteki tüm bitleri doldurun çünkü çiftin 53 mantissa biti vardır. Açıkça tüm mantissa bitlerini doldurmak için iki rastgele tamsayı üretebilirsiniz. Ya da Ramdom.nextDouble() uygulamasının kaynak koduna bir göz atabilirsiniz. Neredeyse bir tamsayı RNG kullanır ve çıktıyı iki katına dönüştürür.
Performans açısından, en iyi performans gösteren rasgele sayı üreteçleri lineer uyumlu jeneratörlerdir. Bunlardan Sayısal Tarifler jeneratörünü kullanmanızı tavsiye ederim. LCG'ler hakkında daha fazla bilgiyi Vikipedi'den edinebilirsiniz:
Ancak, iyi bir rasgelelik ve performans istiyorsanız, bu önemli değil, Mersenne Twister en iyi seçimdir. Ayrıca bir Vikipedi sayfası: http://en.wikipedia.org/wiki/Mersenne_Twister
http://www.pcg-random.org/'da açıklanan PCG adı verilen yeni bir rasgele sayı üreteci var. Bu, LCG çıktısının rasgeleliğini artıran LCG için bir işlem sonrası aşamadır. PCG'nin LCG'den daha yavaş olduğunu unutmayın, çünkü bu sadece LCG için bir işlem sonrası adımdır. Böylece performans çok önemli ve rastgelelik kalitesi önemli değilse, PCG yerine LCG kullanmak istersiniz.
Belirttiğim jeneratörlerden hiçbirinin kriptografik olarak güvenli olmadığını unutmayın. Kriptografik uygulamalar için değerlere ihtiyacınız varsa, şifreli olarak güvenli bir algoritma kullanmalısınız. Ancak, iki katın şifreleme için kullanılacağına gerçekten inanmıyorum.
Ne kadar yavaş rapor? Ne kadar hızlı ihtiyacınız var? –
ve ayrıca ne kadar rasgele ve ne kadar güvenli. Linux'ta SecureRandom kullanıyorsanız, daha fazla sistem entropisini beklemek zorunda kalabilirsiniz, bkz. Http://www.tldp.org/HOWTO/Security-HOWTO/kernel-security.html#AEN806 – Leo
Simülasyon için kullanıyorum. Güvende olması gerekmiyor. Ben stokastik modeller için kullanıyorum, bu yüzden LOT rasgele sayılara ihtiyacım var. Ben herşeyin olasılıklarını hesaplıyorum ve bunun bir darboğaz olduğunu anladım –