Czy liczba zmiennoprzecinkowa IEEE-754 <1 (tj. Generowana za pomocą generatora liczb losowych, który generuje liczbę> = 0,0 i <1,0) może być kiedykolwiek pomnożona przez jakąś liczbę całkowitą (w postaci zmiennoprzecinkowej), aby uzyskać liczbę równą lub większą niż ta liczba całkowita z powodu zaokrąglenia?
to znaczy
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
Może to być równoważne stwierdzeniu, że istnieje N i R, tak że jeśli R jest największą liczbą mniejszą niż 1, która może być reprezentowana w IEEE-754, to N * R> = N (gdzie * i> = są odpowiednie IEEE- 754 operatorów)
Wynika to z tego pytania opartego na tej dokumentacji i losowej funkcji postgresql