计算机等级考试题目

2020-12-21 23:16:18 +08:00
 sheepxxman

计算机等级考试题,有答案但始终没想出解答思路,有大佬知道这道题是怎么解的吗?

在动物园里,饲养员要给 8 种不同的动物喂食,每种动物的喂食时间分别为 3 、9 、6 、5 、8 、2 、7 、6,

如果可以任意调整喂食的顺序, 那么这些动物等待食物的最短时间为 ?( )

A.46 B.121 C.167 D.206

答案:B

2725 次点击
所在节点    程序员
18 条回复
Jooooooooo
2020-12-21 23:27:53 +08:00
因为喂一个动物其他动物都得等着, 等待时间是 喂的时间 * 等的动物数量, 要这个值最小

注意到 喂完的动物就不用等了, 等于喂一只等的动物少一只. 那么当等的动物多的时候喂的时间少是最好的

那么喂的逻辑就是从小的开始喂, 先 2 那只, 其他 7 只都等着, 等待时间是 2*7

然后喂 3 那只, 剩下 6 只都等着, 等待时间是 3*6, 这么从小到大喂, 算完答案是 121
sheepxxman
2020-12-22 00:00:17 +08:00
@Jooooooooo
感谢提供思路,
为什么等待时间要乘以剩下动物的数量?
剩下的动物是在一起等待,时间是相同的啊?
user8341
2020-12-22 00:02:40 +08:00
这题是操作系统调度策略:最短作业优先(shortest job first)。
xcstream
2020-12-22 00:05:28 +08:00
先喂快的
klesh
2020-12-22 00:10:39 +08:00
这考的应该是操作系统的任务调度,等待时间就是加起来的,定义如此。
这种不清不楚的包袱题很讨厌。
learningman
2020-12-22 00:48:05 +08:00
这不就是贪心吗,算法入门
ssssshi
2020-12-22 08:59:10 +08:00
最短作业优先( SJF )调度算法,2*7+3*6+5*5+6*4+6*3+7*2+8*1=121
Tink
2020-12-22 09:40:48 +08:00
楼上正解,SJF 算法
wsseo
2020-12-22 09:43:05 +08:00
这样有什么意义?不管怎么喂,喂食所需时间都是一样的。
locoz
2020-12-22 10:03:51 +08:00
@wsseo #9 意义在于用时短的可以先吃上啊,你楼上不是说了吗😂😂
wsseo
2020-12-22 10:20:10 +08:00
@locoz 这是现象,不是意义。
wsseo
2020-12-22 10:21:16 +08:00
@wsseo 让最短的先吃上貌似没什么意义,除非让我先吃上。
2G
2020-12-22 10:47:39 +08:00
@wsseo 意义就是优点,比先来先服务算法改善平均周转时间和平均带权周转时间,缩短作业的等待时间;提高系统的吞吐量;
pandanrain123
2020-12-22 10:52:40 +08:00
短任务优先策略
lzyliangzheyu
2020-12-22 11:03:54 +08:00
电梯调度也是这么个策略吗
ssssshi
2020-12-22 11:21:37 +08:00
@lzyliangzheyu 现在肯定不是这个啦,如果电梯用这个的话,估计大部分时间都在人最多那几层来回转了,上不去下不来的,该产生饥饿现象了
learningman
2020-12-22 15:07:15 +08:00
@lzyliangzheyu 电梯不知道哪层人多
lzyliangzheyu
2020-12-22 17:40:03 +08:00
@learningman 哈哈哈哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/737652

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX