方法二:先计算x2的值,然后依次计算x2·x,(x2·x)·x,
((x2·x)·x)·x的值,这样每次都可以利用上一次计算的结果.
9次乘法运算,5次加法运算
与第一种做法相比,这种做法中,乘法的运算次数减少了, 因而能提高运算效率.而且对于计算机来说,做一次乘法所需的 运算时间比做一次加法要长得多,因此第二种做法能更快地得 到结果.
秦九韶算法
秦九韶和《数书九章》
秦九韶
秦九韶(约公元1202年-1261年),字 道古,南宋末年人,出生于鲁郡(今山东 阜一带人)
据史书记载,他“性及机巧,星象、 音律、算术以至营造无不精究”,还尝从李 梅亭学诗词。他在政务之余,以数学为主线 进行潜心钻研,且应用范围至为广泛:天文 历法、水利水文、建筑、测绘、农耕、军事、 商业金融等方面。
问题1:怎样求多项式f(x)=2x5-5x4-4x3+3x2-6x+7 当x=5时的值?
方法三:能否有更好的算法,解决任意多项式的求值问题?
f(x)=2x5-5x4-4x3+3x2-6x+7 =(2x4-5x3-4x2+3x-6)x+7 =((2x3-5x2-4x+3)x-6)x+7 =(((2x2-5x-4)x+3)x-6)x+7 =((((2x-5)x-4)x+3)x-6)x+7
①
v0=2 v1=v0x-5=2×5-5=5
问题1:怎样求多项式f(x)=2x5-5x4-4x3+3x2-6x+7 当x=5时的值?
方法三:能否有更好的算法,解决任意多项式的求值问题?
f(x)=2x5-5x4-4x3+3x2-6x+7 =(2x4-5x3-4x2+3x-6)x+7 =((2x3-5x2-4x+3)x-6)x+7 =(((2x2-5x-4)x+3)x-6)x+7 =((((2x-5)x-4)x+3)x-6)x+7