[問題] 96年地特 程式語言

作者: a303121 (夏夜星)   2016-06-22 21:56:55
題目與解答如下 http://imgur.com/a/kWsgb
在最後部分Horner's method部分完全看不懂
Pi=a[N],dPi=0;
for(i=1;i<=N;i++)
{
dPi=dPi*x+Pi;
Pi=Pi*x+a[N-1];
}
printf("P(%d)=%d,dP(%d)=%d\n",x,Pi,x,dPi)
請教一下 dPi=dPi*x+Pi和Pi=Pi*x+a[N-1]
1.目的是甚麼?
2.分解動作也不是很懂
謝謝各位教導!
作者: SSiuan (打屁的人)   2016-06-22 22:11:00
歡迎入我們資訊處理的賴群組喔!站內信給我你的賴即可
作者: s2327259 (史東)   2016-06-22 23:34:00
Horner's method就是計算多項式的另一種解法,將式子化成aX+b的形式,a又可以提出X變cX+d,這樣層層提出藉由提出公因數x以減少次方項運算的次數(也就是乘法次數)。導數只是Pi對x微分...程式碼最後只是照題目給的公式寫,迭代算出P(x)跟dP(x)的值而已
作者: a303121 (夏夜星)   2016-06-22 23:43:00
所以不能用一般多項式的眼光來看是這個意思嗎?
作者: s2327259 (史東)   2016-06-23 00:05:00
可以,但題目要求用這個方法,所以你寫別的方法會沒分數
作者: a303121 (夏夜星)   2016-06-23 00:06:00
謝謝 大概懂了

Links booklink

Contact Us: admin [ a t ] ucptt.com