Số hiệu dấu phẩy động IEEE-754 <1 (nghĩa là được tạo bằng bộ tạo số ngẫu nhiên tạo ra một số> = 0,0 và <1.0) có thể được nhân với một số nguyên (ở dạng dấu phẩy động) để có được một số bằng hoặc lớn hơn số nguyên đó do làm tròn?
I E
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
Điều này có thể tương đương với việc nói rằng có tồn tại N và R sao cho nếu R là số lớn nhất nhỏ hơn 1 có thể được biểu thị trong IEEE-754 thì N * R> = N (trong đó * và> = là phù hợp với IEEE- 754 nhà khai thác)
Điều này xuất phát từ câu hỏi này dựa trên tài liệu này và hàm ngẫu nhiên postgresql