cmath exp()
和log()
函数总是对称的吗?
如果我这样做的话
double x;
double y = exp(log(x));
assert(x == y);
Run Code Online (Sandbox Code Playgroud)
断言是否会失败,在这种情况下:在什么情况下?我们可以假设这x
是一个有理数> 0.
tmy*_*ebu 11
浮点log
不能是一对一的.它需要单调递增,满足log(64) > 4.15
和log(128) < 4.86
.在64和128之间有2 52 double
秒,但在4.15和4.86之间少于2 50 double
秒.doubles
在该范围内有多个具有相同的双精度对数,因此exp(log(x)) == x
必须至少其中一个失败.