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' ;
}
이는 R이 1보다 작은 가장 큰 숫자 인 경우 IEEE-754로 표현 될 수있는 N * R> = N (여기서 * 및> =은 적절한 IEEE- 754 연산자)
N의 범위에 대해 말할 수 있습니까? 즉, IEEE-754 배정 밀도로 정확하게 표현하기에 충분히 작습니까?
—
페드로
@Pedro이 특별한 경우에, 그것은 작은 정수일 것입니다. 즉, 10입니다. N이 매우 큰 수의 유효 자릿수를 가진 매우 큰 정수라면 정확하게 표현할 수 없을 것이라고 말하고 있다고 가정합니다.
—
Cade Roux
정확하게, , f l ( R × f l ( N ) ) 은 R N 보다 클 수있다 .
—
페드로