主题:[讨论]解释这两个算法的步骤 悬赏!!
lizhenhua
[专家分:0] 发布于 2010-03-23 13:58:00
y=sqrt(1/2-(cos(PI/3))/2);
y=sqrt((1-cos(PI/3))/2);
分析第一个步骤就可以了。
回复列表 (共11个回复)
沙发
强强 [专家分:4740] 发布于 2010-03-23 14:01:00
看看运算符号优先级就明白了,再有一点你再看看“算法”的概念,你搞混了。
板凳
lizhenhua [专家分:0] 发布于 2010-03-23 14:08:00
我是想把第一个错了的那个步骤找出来 你说的那个优先级我昨天都看过了 我现在就是找不出错在哪 第二个就是我想要的答案
3 楼
quhailiang1984 [专家分:1720] 发布于 2010-03-23 15:53:00
两个都没有错误,只是运算的顺序不一样,导致最后的近似结果不一样而已。
4 楼
liudan319 [专家分:3780] 发布于 2010-03-23 16:12:00
运算顺序不一样,何必这么较真呢
5 楼
雪光风剑 [专家分:27190] 发布于 2010-03-23 19:16:00
第一个算式中cos整体产生一次误差,/2产生一次误差,浮点减法产生一次相对稍大的误差
第二个算式中cos整体产生一次误差,1-产生一个较小的误差,/2的误差可以忽略了
6 楼
lpf46261479 [专家分:970] 发布于 2010-03-24 13:12:00
这就是个运算顺序呀
(1+(2*3))
((1+2)*3)
这2个为什么不一样
7 楼
fortech [专家分:20] 发布于 2010-04-01 21:23:00
第一个会报错
因为1/2的两个操作数都为整型,运算结果也会强制转为整型,结果为0。
而函数sqrt的参数不能为负。
8 楼
lizhenhua [专家分:0] 发布于 2010-04-25 19:26:00
继续回帖 讨论者 还有分加
9 楼
dzt2 [专家分:0] 发布于 2010-04-25 22:12:00
第一个先求出cos(PI/3),再求cos(PI/3)/2 然后再用它减1/2,然后求开方。
第二个先求cos(PI/3),用它减1/2,再去除以2.优先级的问题,那个括号
10 楼
cxxcomp [专家分:2370] 发布于 2010-04-25 22:32:00
我怎么对“悬赏”贴这么没兴趣呢
我来回复