本题导读

本题考查秦九韶算法中乘法与加法次数的定性分析,以及等差数列通项在算法复杂度中的度量。

📌【题干】

Question

(2005年北京卷(理)) 14. 已知 次多项式 . 如果在一项算法中,计算 () 的值需要 次乘法,计算 的值共需要 9 次运算 (6 次乘法, 3 次加法),那么计算 的值共需要次运算. 下面给出一种减少运算次数的算法: , (). 利用该算法,计算 的值共需要 6 次运算,计算 的值共需要次运算.

🔍【思路分析】

破题导航

  1. 分析第一空(传统朴素算法):
  • 加法次数:一个 次多项式总共有 项,两两相加需要 次加法。因此 确定需要 10 次加法。
  • 乘法次数:计算 时,需要先算 (由题意需 次乘法),再乘以系数 (需 1 次乘法)。求和列出关于 的等差数列,利用求和公式算出 时的总乘法次数。
  1. 分析第二空(秦九韶算法):
  • 观察递推式 ,每向后递推一次(即多项式次数增加 1 次),提取出公因式后,都只需要进行 1 次乘法和 1 次加法,总计 2 次运算。
  • 计算 次多项式一共需要进行 次这样的递推步。因此总运算次数可以直接建模为 。

✅【答案】

Success

✍【详细解析】

Abstract

解:

(1) 第一空:计算第一种传统算法下的 运算总数

对于 次多项式 :

  • 加法次数分析: 多项式共有 个项,将这 个单项式相加,一共需要 次加法。 当 时,加法次数为 10 次。

  • 乘法次数分析: 根据题意,计算 的值需要 次乘法,则计算带有系数的单项式 需要 次乘法(其中 1 次为乘以系数 )。 各单项式的乘法消耗情况具体为:

  • 项:0 次乘法;

  • 项:1 次乘法(即乘以系数 );

  • 项:2 次乘法;

  • 项: 次乘法。

所以,计算整个 次多项式所需的总乘法次数为等差数列求和:

当 时,乘法次数为:

  • 总运算次数:

(2) 第二空:计算新改进算法(秦九韶算法)下的 运算总数

新算法的递推关系式为:

  • 单步递推开销分析: 从 计算到 ,解析式右侧只有两步运算:
  1. (1 次乘法)

  2. (1 次加法) 也就是说,每增加 1 次次数,固定增加 1 次乘法和 1 次加法,即共需要 2 次运算。

  • 总运算次数分析: 要计算出 次多项式 的值,需要从 一直递推到 ,总共执行了 步这样的操作。 所以计算 次多项式所需的总运算次数为:

题干中“计算 的值共需要 6 次运算”符合 的规律。 当 时,计算 的值所需的总运算次数为:

💡【考点归纳与避坑指南】

Danger

核心考点:秦九韶算法中乘法与加法次数的定性分析、等差数列通项在算法复杂度中的度量。 核心方法:递推步开销分析法、分组求和法。

避坑指南:

  • 切勿在第一空中漏掉“乘以系数 ”的那一次乘法。部分同学容易直接将乘法次数算成 ,从而导致总数偏小。牢记:不仅幂次自乘需要消耗乘法,系数与幂次变量之间相乘同样属于必不可少的乘法运算。

📖【试题探源与推广】

Tip

变式练习:改变递推式的首项或系数,用待定系数法构造等比数列,或改用裂项、错位相减求和。

🔗【关联脉络】

Multi column

知识锚点 (Nodes)

类题演练 (Links)