我最近遇到了 一个问题,它可以很容易地用模除法求解,但输入是一个浮点数:
给定一个周期函数(例如
sin
)和一个只能在周期范围内计算的计算机函数(例如[-π,π ]) ,创建一个可以处理任何输入的函数。
“显而易见”的解决方案是这样的:
#include <cmath>
float sin(float x){
return limited_sin((x + M_PI) % (2 *M_PI) - M_PI);
}
为什么这个不起作用? 我得到这个错误:
error: invalid operands of types double and double to binary operator %
有趣的是,它确实可以在 Python 中工作:
def sin(x):
return limited_sin((x + math.pi) % (2 * math.pi) - math.pi)