看板 NTUCE-94 關於我們 聯絡資訊
這個作業短短的 但是怎樣寫的漂亮才是問題所在 大家可以用這個作業來磨練一下思考力 首先 看看中心程式的直覺性寫法 A,B,N,F()為下界.上界.分割數.給定函數 H=(A-B)/N SUM=0 DO 10 I=0,N-1 X1=A+I*H X2=A+(I+1)*H SUM=SUM+(F(X1)+F(X2))*H/2 10 CONTINUE 這樣算出的答按是對的沒錯 但是注意一下 每迴圈一次須做幾次運算 且F(X2)的值再下一次迴圈便會用到 但卻又算了壹次 等於是多算了 所以整個可改成 H=(A-B)/N SUM=0 DO 10 I=1,N-1 X1=A+I*H SUM=SUM+F(X1) 10 CONTINUE SUM=SUM*2+F(A)+F(B) SUM=SUM*H/2 如此 每個切割點只要算一次 算梯形時的乘除法也只須一次 運算速度快了約3~4倍(在分割數很大時就有感覺) 答案正確度亦不減 這就是所謂的演算法 想要讓計程功力進步一定要常常想想 以上的成式用的是簡化的語法 我偷懶...... 第二種算法還有進步空間 大家可以試試讓他更完美 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.112.22.219