Bir IEEE-754 kayan nokta sayısı <1 (yani, = = 0,0 ve <1,0 olan bir sayı üreten rasgele sayı üreteci ile üretilir), eşit veya daha büyük bir sayı elde etmek için bir tamsayı (kayan nokta biçiminde) ile çarpılabilir mi? yuvarlama nedeniyle tamsayı?
yani
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
Bu, R'nin IEEE-754'te temsil edilebilen 1'den küçük en büyük sayı olması durumunda N * R> = N (burada * ve> = uygun IEEE- 754 operatör)
Bu , bu belgeye ve postgresql rastgele işlevine dayanan bu sorudan gelir.