简化计算步骤以减少误差

简化计算步骤以减少误差

同样一个计算问题,若能减少运算次数,既可以节省计算机的计算时间,还可以减小舍人误差。

计算 x 255 x^{255} x255的值.

如果逐个相乘要用 254 次乘法,但若写成
x 255 = x ⋅ x 2 ⋅ x 4 ⋅ x 8 ⋅ x 16 ⋅ x 32 ⋅ x 64 ⋅ x 128 , x^{255}=x\cdot x^2\cdot x^4\cdot x^8\cdot x^{16}\cdot x^{32}\cdot x^{64}\cdot x^{128}, x255=xx2x4x8x16x32x64x128,
只要做 14 次乘法运算即可。

再例如计算多项式的值

P n ( x ) = a n x n + a n − 1 x n − 1 + ⋅ ⋅ ⋅ + a 1 x + a 0 P_n(x)=a_nx^n+a_{n-1}x^{n-1}+\cdotp\cdotp\cdotp+a_1x+a_0 Pn(x)=anxn+an1xn1+⋅⋅⋅+a1x+a0

若直接计算 a k x k a_kx^k akxk再逐项相加,一共需做

n + ( n − 1 ) + ⋅ ⋅ ⋅ + 2 + 1 = n ( n + 1 ) 2 n+(n-1)+\cdotp\cdotp\cdotp+2+1=\frac{n(n+1)}2 n+(n1)+⋅⋅⋅+2+1=2n(n+1)

次乘法和 n n n次加法.

若采用秦九韶算法

{ S n = a n , S k = x S k + 1 + a k P n ( x ) = S 0 , ( k = n − 1 , n − 2 , ⋅ ⋅ ⋅ , 0 ) , \begin{cases}S_n=a_n,\\S_k=xS_{k+1}+a_k\\P_n(x)=S_0,\end{cases}(k=n-1,n-2,\cdotp\cdotp\cdotp,0), Sn=an,Sk=xSk+1+akPn(x)=S0,(k=n1,n2,⋅⋅⋅,0),

只要做 n n n次乘法和 n n n次加法就可算出 P n ( x ) P_n(x) Pn(x)的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F_D_Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值