Ich möchte berechnen y(n)=32677Sin(45/1024•n), wo yeine Ganzzahl ist und nzwischen 0 und 2048 liegt. Wie kann ich diesen Prozess schneller und genauer machen? Jetzt möchte ich Ihnen eine Referenzantwort zeigen: Seit Sin(a+b)=Sin(a)Cos(b)+Cos(a)Sin(b)
Und Cos(a+b)=Cos(a)Cos(b)-Sin(a)Cos(b). So kann ich speichern Sin(45/1024•1)und nur. Cos(45/1024•1)Dann verwenden Sie diese Formel:
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), Auf diese Weise vielleicht schneller ohne großen Array zu speichern.
sin(x)wo xin Grad ist. Wenn dies der Fall ist, müssen Sie sich bewusst sein, dass das Argument für die Triggerfunktionen normalerweise im Bogenmaß lautet. Das Argument ist in C ++ im Bogenmaß angegeben. So wird diese Frage markiert.