是否可以将IEEE-754浮点数<1(即由随机数生成器生成,该随机数生成器生成大于等于0.0且小于1.0的数字)乘以某个整数(以浮点形式)是否等于或大于一个整数舍入该整数?
即
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
这可能等同于说是否存在N和R,使得如果R是小于1的最大数字(可以在IEEE-754中表示),则N * R> = N(其中*和> =是合适的IEEE- 754个运营商)
您能否说出N的范围,即它足够小以至于可以在IEEE-754双精度中精确表示吗?
—
2012年
@Pedro在这种特殊情况下,是的,这将是一个小整数-即10。我假设您是在说,如果N是一个非常大的整数,并且有很多有效数字,则可能无法准确表示吗?
—
Cade Roux 2012年
确切地说,如果,然后˚F 升(- [R × ˚F 升(Ñ ))可以大于ř Ñ。
—
2012年