回 帖 发 新 帖 刷新版面

主题:[讨论]解释这两个算法的步骤  悬赏!!


y=sqrt(1/2-(cos(PI/3))/2);
y=sqrt((1-cos(PI/3))/2);
分析第一个步骤就可以了。

回复列表 (共11个回复)

沙发

看看运算符号优先级就明白了,再有一点你再看看“算法”的概念,你搞混了。

板凳


我是想把第一个错了的那个步骤找出来  你说的那个优先级我昨天都看过了  我现在就是找不出错在哪   第二个就是我想要的答案  

3 楼

两个都没有错误,只是运算的顺序不一样,导致最后的近似结果不一样而已。

4 楼

运算顺序不一样,何必这么较真呢

5 楼

第一个算式中cos整体产生一次误差,/2产生一次误差,浮点减法产生一次相对稍大的误差
第二个算式中cos整体产生一次误差,1-产生一个较小的误差,/2的误差可以忽略了

6 楼

这就是个运算顺序呀


(1+(2*3))
((1+2)*3)

这2个为什么不一样

7 楼


第一个会报错
因为1/2的两个操作数都为整型,运算结果也会强制转为整型,结果为0。
而函数sqrt的参数不能为负。

8 楼

继续回帖 讨论者  还有分加

9 楼

第一个先求出cos(PI/3),再求cos(PI/3)/2 然后再用它减1/2,然后求开方。
第二个先求cos(PI/3),用它减1/2,再去除以2.优先级的问题,那个括号

10 楼

我怎么对“悬赏”贴这么没兴趣呢

我来回复

您尚未登录,请登录后再回复。点此登录或注册