题目内容
问题:有十人各拿一只水桶去打水,如果水龙头灌满第i个人的水桶需要ti分钟,且这些ti(i=1,2, …,10)各不相等,试问:若有两个相同的水龙头供水时,应如何安排这十个人的次序,使他们花费的总时间最少?这个最少的总时间是多少?
导思:考虑两个水龙头,要注意数组的搭配与数组中的大小顺序,可以联系教材上一个水龙头供水时的设定方法去求解.
探究:如果有两个水龙头,设总时间最少时有m个人在第一个水龙头打水,设依次所需时间为p1,p2, …,pm;有10-m个人在第二个水龙头打水,依次所需时间设为q1,q2, …,q10-m.显然必有一个水龙头的打水人数不少于5人,不妨设为第一个水龙头,也不可能有一个水龙头没人去打水,则5≤m<10.设
p1<p2<…<pm,q1<q2<…<q10-m.
总花费的时间为:
T=mp1+(m-1)p2+…+pm+(10-m)q1+(9-m)q2+…+q10-m.
其中{p1,p2, …,pm,q1,q2, …,q10-m}={t1,t2, …,t10},t1<t2<…<t10.
首先我们来证明m=5.若不然,我们让在第一个水龙头打水的第一人到第二个水龙头的第一位去,则总花费的时间变为:
T′=(m-1)p2+…+pm+(11-m)p1+(10-m)q1+…+q10-m.
T-T′=(
即当m>5时,我们让第一水龙头的第一人到第二水龙头去后,总时间减少.故在m=5时,总时间可能取得最小值.
由于m=5,故两个水龙头人一样多,总用时:
T=(5p1+4p2+3p3+2p4+p5)+(5q1+4q2+3q3+2q4+q5).
由于p1<p2<…<p5,q1<q2<…<q5.
不妨设p1=t1.下证q1<p2.否则我们交换用时为q1,p2的两人的位置后,总用时变为
T″=(5p1+4q1+3p3+2p4+p5)+(5p2+4q2+3q3+2q4+q5),
T-T″=q1-p2>0.
即经交换后总时间变少.故q1<p2.也即q1=t2.
类似地我们可以证明:pi<qi<pi+1(i=1,2,3,4),p5<q5.从而最省时的打水顺序为:
水龙头一:t1,t3,t5,t7,t9;
水龙头二:t2,t4,t6,t8,t10.
其中:t1<t2<…<t10.