2.(2002年北京高考题)

在研究并行计算的基本算法时,有以下简单模型问题:

用计算机求n个不同的数的和.计算开始前,n个数存贮在n台由网络连接的计算机中,每台机器存一个数.计算开始后,在一个单位时间内,每台机器至多到一台其它机器中读数据,并与自己原有的数据相加得到新的数据,各台机器可同时完成上述工作.为了用尽可能少的单位时间,使各台机器都得到这n个数的和,需要设计一种读和加的方法.比如n=2时,一个单位时间即可完成计算,方法可用下表表示:

机器号
 
初始时
第一单位时间
第二单位时间
第三单位时间
被读机号
结果
被读机号
结果
被读机号
结果
1

2

 
 
 
 
2

1

 
 
 
 

(Ⅰ)当n=4时,至少需要多少个单位时间可完成计算?把你设计的方法填入下表.

机器号
 
初始时
第一单位时间
第二单位时间
第三单位时间
被读机号
结果
被读机号
结果
被读机号
结果
1

 
 
 
 
 
 
2

 
 
 
 
 
 
3

 
 
 
 
 
 
4

 
 
 
 
 
 

(Ⅱ)当n=128时,要使所有机器都得到,至少需要多少个单位时间可完成计算?(结论不要求证明).

[答案与提示:1. C.  2.(Ⅰ)如下图;(Ⅱ)7]

机器号
 
初始时
第一单位时间
第二单位时间
第三单位时间
被读机号
结果
被读机号
结果
被读机号
结果
1

2

3

 
 
2

1

4

 
 
3

4

1

 
 
4

3

2

 
 
 0  250670  250678  250684  250688  250694  250696  250700  250706  250708  250714  250720  250724  250726  250730  250736  250738  250744  250748  250750  250754  250756  250760  250762  250764  250765  250766  250768  250769  250770  250772  250774  250778  250780  250784  250786  250790  250796  250798  250804  250808  250810  250814  250820  250826  250828  250834  250838  250840  250846  250850  250856  250864  447090 

违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com

精英家教网