s****r 发帖数: 214 | 1 【 以下文字转载自 Whisper 讨论区 】
【 原文由 summer 所发表 】
问题的提出:
日常生活中碰见的,或许是很无聊的问题,但是最近老在想TA,而且也想不出好的答案。
问题一:电梯问题
学校的这栋楼共18层,一共六部电梯。由于老是有几层楼人很多,所以每次等得都很令人
发怒。我发现很多有趣的情况,比如你在一楼等往上的电梯,叮一声,电梯来了,人们都
拥进去,但是最后由于他们先碰到二楼的人群,所以反而会比稍后到的第二步电梯的速度
慢,但是第二步电梯比第一步电梯先到三楼,岂不是又要在三楼停顿很久,让第一部电梯
先到四楼?现在一共有六部电梯,假设轮流到达,那么应该乘哪部才能第一个到十八楼呢?
问题二:圣诞节分礼物问题
受到那个海盗分金子问题的启发,想出了这个问题。前两天到一个老板家party, 很多人。
人人必须带一件礼物,最后大家一个一个抽签。礼物有好有坏。游戏的最后一步是,当人
手一件礼物后,从一个人开始,可以点名要某个礼物。简单说来,比如10个人,开始每人
一个礼物。假设A1拿最好礼物,A2拿次好,类推下去。A10先挑,比如A10挑了A1的礼物L1,
现在A1每礼物了,则需要 | d*z 发帖数: 150 | 2 Person 9 (A8) will not pick the 8th gift the second time for
if the
person 10(A9) pick the 8th gift from his hand, now it's his
turn again?
Now Person 10 quit the game and person 9 put himself into
the situation of
person 10 and he will receive L10.
The First Person A10 select L1 first then he can make sure
that he owned L1,
because if any one else select L1 from him and make the
second choice of L1,
it is his turn now to make a choice. Then he can choice L1
again( the third choice of L1 to own | r*****e 发帖数: 10 | 3 先设计一个算法来考虑第一个问题中的最极端的情形:
将这个问题设计为六个线程,或者六个赛跑者;
1、六部电梯顺次开动,每部电梯(除了第一部)比前一部迟
后某个时间t0;
2、只有特定楼层有人,电梯通过每层的时间是固定的,设为
t1,那么某个固定层就可以用n*t1这个数字来表示。最高一
层为15*t1
3、而且电梯足够大,可以将该层的所有人都带走,而且每次载
人所花时间为t2;
因此为六部电梯赋予一个初始值,第一部设为0,其他顺次
为-t0,-2t0...;然后每次每部电梯数值增加t1,并且每次都与有人
的楼层中与六部电梯中最接近的那一层进行数值比较,找出六部
电梯数值中与该层数值最接近并且两者之差小于t1那一部电梯,
然后将该部电梯的此时的数值减去t2,然后有人的该层去除。这
样依次进行。最后看哪部电梯的数值最先接近15*t1.
如果画图,更容易理解一些。
假设 3 的合理性讨论:如果有人的楼层总是有源源不断的人
出现那么,第一部电梯无疑将最先到达;因为每部电梯都将遇到
相同时间的延迟。这个问题也就没有了意义。所以假设电梯足够大。
【在 s****r 的大作中提到】 : 【 以下文字转载自 Whisper 讨论区 】 : 【 原文由 summer 所发表 】 : 问题的提出: : 日常生活中碰见的,或许是很无聊的问题,但是最近老在想TA,而且也想不出好的答案。 : 问题一:电梯问题 : 学校的这栋楼共18层,一共六部电梯。由于老是有几层楼人很多,所以每次等得都很令人 : 发怒。我发现很多有趣的情况,比如你在一楼等往上的电梯,叮一声,电梯来了,人们都 : 拥进去,但是最后由于他们先碰到二楼的人群,所以反而会比稍后到的第二步电梯的速度 : 慢,但是第二步电梯比第一步电梯先到三楼,岂不是又要在三楼停顿很久,让第一部电梯 : 先到四楼?现在一共有六部电梯,假设轮流到达,那么应该乘哪部才能第一个到十八楼呢?
|
|