永发信息网

汇编编程求一弧度的正弦或余弦?

答案:6  悬赏:40  手机版
解决时间 2021-11-09 17:14
  • 提问者网友:听门外雪花风
  • 2021-11-09 13:17
汇编编程求一弧度的正弦或余弦?
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-11-09 13:58
cos double cos(double x); 计算x弧度的余弦值
acos double acos(double x); 计算绝对值不大于1的浮点数的反余弦值
该指令从运算栈中弹出一个操作数,计算它(弧度)的三角余弦值,并将结果压入运算栈。
全部回答
  • 1楼网友:忘川信使
  • 2021-11-09 18:05
java.lang.math.sin(double a);
java.lang.math.cos(double a);
java.lang.math.tan(double a);

a 为弧度,角度自己转一下就好了。
  • 2楼网友:轻熟杀无赦
  • 2021-11-09 17:46
您好,如果对时间密集度要求比较高,即会频繁使用sin,cos函数,不肯花费大量指令,建议采用查表法:

建议起一个已知数据的映射关系(最简单的,数组就可以了),直接查表,精度差一点也没关系。只需要建立从0~45度的表就可以了知道全部了,利用三角函数代换可以知道余弦和其他任何角度的正弦。

//
如果对指令的时间要求比较宽松,但对数据精度要求很高,建议使用“dmal - 高级经理 七级 ”的taylor展开法。这样虽然麻烦,但可以达到你所需要的精度。
  • 3楼网友:洎扰庸人
  • 2021-11-09 16:02
首先,只考虑x在[0,Pi/2]的范围,其他范围很用以用这个范围的替换.
然后用sin(x)的泰勒展开式,取前几项就可以了.
12位是10进制位还是2进制位
(Pi/2)^17/17!=6*10^(-12),
(Pi/2)^19/19!=4.4*10^(-14)
所以计算到第17次方这一项足够了.
这样
sin(x)=x-x^3/3!+x^5/5!-....+x^17/17!
总共9项,每项需要一次浮点乘法,一次定点乘法(还可以预先计算),一次浮点除法.
sum=cur=x;
sqrx=x*x;
cur*=sqrx;
cur/=(2*3);
sum-=cur;
cur*=sqrx;
cur/=(4*5);
sum+=cur;
...
cur*=sqrx;
cur/=(16*17);
sum+=cur;
  • 4楼网友:归鹤鸣
  • 2021-11-09 15:23
java.lang.math.sin(double a);
java.lang.math.cos(double a);
java.lang.math.tan(double a);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯