本题导读
本题考查秦九韶算法中乘法与加法次数的定性分析,以及等差数列通项在算法复杂度中的度量。
📌【题干】
Question
(2005年北京卷(理)) 14. 已知 次多项式 . 如果在一项算法中,计算 () 的值需要 次乘法,计算 的值共需要 9 次运算 (6 次乘法, 3 次加法),那么计算 的值共需要次运算. 下面给出一种减少运算次数的算法: , (). 利用该算法,计算 的值共需要 6 次运算,计算 的值共需要次运算.
🔍【思路分析】
破题导航
- 分析第一空(传统朴素算法):
- 加法次数:一个 次多项式总共有 项,两两相加需要 次加法。因此 确定需要 10 次加法。
- 乘法次数:计算 时,需要先算 (由题意需 次乘法),再乘以系数 (需 1 次乘法)。求和列出关于 的等差数列,利用求和公式算出 时的总乘法次数。
- 分析第二空(秦九韶算法):
- 观察递推式 ,每向后递推一次(即多项式次数增加 1 次),提取出公因式后,都只需要进行 1 次乘法和 1 次加法,总计 2 次运算。
- 计算 次多项式一共需要进行 次这样的递推步。因此总运算次数可以直接建模为 。
✅【答案】
Success
✍【详细解析】
Abstract
解:
(1) 第一空:计算第一种传统算法下的 运算总数
对于 次多项式 :
加法次数分析: 多项式共有 个项,将这 个单项式相加,一共需要 次加法。 当 时,加法次数为 10 次。
乘法次数分析: 根据题意,计算 的值需要 次乘法,则计算带有系数的单项式 需要 次乘法(其中 1 次为乘以系数 )。 各单项式的乘法消耗情况具体为:
项:0 次乘法;
项:1 次乘法(即乘以系数 );
项:2 次乘法;
项: 次乘法。
所以,计算整个 次多项式所需的总乘法次数为等差数列求和:
当 时,乘法次数为:
总运算次数:
(2) 第二空:计算新改进算法(秦九韶算法)下的 运算总数
新算法的递推关系式为:
- 单步递推开销分析: 从 计算到 ,解析式右侧只有两步运算:
(1 次乘法)
(1 次加法) 也就是说,每增加 1 次次数,固定增加 1 次乘法和 1 次加法,即共需要 2 次运算。
- 总运算次数分析: 要计算出 次多项式 的值,需要从 一直递推到 ,总共执行了 步这样的操作。 所以计算 次多项式所需的总运算次数为:
题干中“计算 的值共需要 6 次运算”符合 的规律。 当 时,计算 的值所需的总运算次数为:
💡【考点归纳与避坑指南】
Danger
核心考点:秦九韶算法中乘法与加法次数的定性分析、等差数列通项在算法复杂度中的度量。 核心方法:递推步开销分析法、分组求和法。
避坑指南:
- 切勿在第一空中漏掉“乘以系数 ”的那一次乘法。部分同学容易直接将乘法次数算成 ,从而导致总数偏小。牢记:不仅幂次自乘需要消耗乘法,系数与幂次变量之间相乘同样属于必不可少的乘法运算。
📖【试题探源与推广】
Tip
变式练习:改变递推式的首项或系数,用待定系数法构造等比数列,或改用裂项、错位相减求和。
🔗【关联脉络】
Multi column