0

我应该创建一个程序来计算一系列角度 k*α 的余弦和正弦,其中 k 是一个不断增长的自然数(即 0、1、2、...),α 是一个介于 0 之间的常数角和π。我想让这个程序尽可能快。

因此,我想先计算每个角度的余弦,然后计算相关的正弦sqrt(1-cos(k*α)^2)。问题是正弦的符号,应该由角度k*α在实线上的位置来确定。

我想知道如何尽可能快地实现这种动态比较,或者最快的方法是否也是直接计算正弦。

4

1 回答 1

0

一段时间后,我再次思考这个问题,我找到了一个非常简单的解决方案:

n = floor(k*alpha/pi);

if (n % 2 == 0)

    sin_alpha = +sqrt(1-pow(cos(k*alpha,2)));

else

    sin_alpha = -sqrt(1-pow(cos(k*alpha,2)));

问题解决了。:)

于 2012-12-21T16:52:46.817 回答