本题导读
本题考查并行计算的算法设计。核心在于倍增合并减少时间。
📌【题干】
Question
(2002年北京卷(文)) 在研究并行计算的基本算法时,有以下简单模型问题:用计算机求 个不同的数 的和 .计算开始前, 个数存贮在由网络连接的 台计算机中,每台机器存一个数.计算开始后,在一个单位时间内,每台机器至多到一台其他机器中读数据,并与自己原有数据相加得到新的数据,各台机器可同时完成上述工作.
(1) 当 时,至少需要多少个单位时间可完成计算?
(2) 当 时,要使所有机器都得到 ,至少需要多少个单位时间可完成计算?
🔍【思路分析】
破题导航
- 时两两合并再合并, 个单位时间。
- 时倍增合并,。
✅【答案】
Success
(1) 个单位时间
(2) 个单位时间
✍【详细解析】
Abstract
(1) 第一单位时间 、 号机器与 、 号机器分别两两相加,第二单位时间再合并,故 时至少 个单位时间. (2) 每次单位时间可使”已知部分和”的机器数倍增, 时需 个单位时间.
💡【考点归纳与避坑指南】
Danger
核心考点:并行计算时间
核心方法: 时 个单位时间; 时 个单位时间(倍增求和)
避坑指南:并行计算时间按 估计
📖【试题探源与推广】
Tip
试题探源:源于教材算法与倍增
结论推广:一般地,并行求和时间为
方法推广:倍增合并思路
🔗【关联脉络】
Multi column
知识锚点 (Nodes)
类题演练 (Links)