を計算しますy(n)=32677Sin(45/1024•n)
。y
は整数で、n
範囲は0〜2048です。このプロセスをより速く、より正確にするにはどうすればよいですか?以来:今、私はあなたの参照の答えを示したい Sin(a+b)=Sin(a)Cos(b)+Cos(a)Sin(b)
とし Cos(a+b)=Cos(a)Cos(b)-Sin(a)Cos(b)
。だから私は保存することができ Sin(45/1024•1)
、そして Cos(45/1024•1)
次の公式を使います:
Sin(45/1024•2)=Sin(45/1024•1+45/1024•1)
、
Cos(45/1024•2)=Cos(45/1024•1+45/1024•1)
、
Sin(45/1024•n)=Sin(45/1024•(n-1)+45/1024•1)
、
Cos(45/1024•n)=Cos(45/1024•(n-1)+45/1024•1)
、この方法で多分速く大きな配列を格納せずに。
sin(x)
であなたが欲しいと思うようになりますx
。その場合は、トリガー関数への引数は通常ラジアンであることに注意する必要があります。引数はC ++ではラジアンです。これにより、この質問にタグが付けられます。