电梯的最佳停靠位置

最早发现这个问题的时候是两年前在杭州。当时住在一个蛮高端的叫翡翠城的小区,楼里有两部电梯。
观察一段时间你会发现,两部电梯在很长时间没人乘坐后,它不会全部停在1层,而是一部在一层,另一部在楼的中间位置。比如那栋楼有16层高,经常在早上起来发现,电梯一部在1层,另一部在8层。
当时就在想,这么做的目的是什么?是为了让相对住在高层的业主能更快的坐到电梯?如果是这样,那这种一部停在中间,一部停在1层是不是最科学的方式?

先从只有一部电梯的情况开始分析。
我们假设楼有n层,到每一层去的人的概率是一样的, 同时从第x层下到1层的概率也是一样的。假设电梯的停靠位置是p,那么可以推出当p等于1的时候,总的代价最低(全部人上楼,下楼电梯运行的总楼层数)。

当有两部电梯的时候,情况要复杂很多,很难通过不等式来推理。
使用程序模拟,代码如下:

import sys
from math import *
#top floor
N = 10
#elevator number
M = 3
def distance(src, dest, elevator):
        return min(map(lambda x : abs(x-src), elevator)) + abs(src-dest)

#sum ditance
def up_down(elevator):
        sum = 0
        for i in range(1, N+1):
                sum += distance(1, i, elevator)
                sum += distance(i, 1, elevator)
        return sum
#elevator pos
def yield_elevator(m) :
        if (m == 1):
                for i in range(1, N+1):
                        yield [i]
        else:
                for ele in yield_elevator(m-1):
                        for i in range(ele[-1], N+1):
                                yield ele + [i]
min_dis = sys.maxint
for ele in yield_elevator(M):
        dis = up_down(ele)
        if (dis < min_dis):
                min_dis = dis
                res = [ele, dis]
print res

结果很有意思,并不是当时小区的设计方案。
而是应该:一部在1层,另一部在2/3楼层处位置。假设楼有24层,那么一部电梯应该停在1层,另一部停在16层。

当一栋楼有三部电梯时:第一部应该停在1层,第二部停在2/5位置处,第三部停在4/5位置处。假设楼有100层,那么第一部在1层,第二部在40层,第三部在80层。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 你有时会不会发现自己好像老了,即使是20多岁的年龄,却有着70岁老人的身子骨和状态。稍微使点劲儿就容易抽筋,一天什...
    惊讶喵MIKA阅读 2,271评论 0 0
  • 她再懒得跟他说,回想以前那些对他说过的话,切!那对他来说令他烦的,是挑拨他们的话,现在她都收起收紧,她变得很吝啬是...
    梅花一树盛开悬崖阅读 1,094评论 0 0
  • 了不起的地下工作者 说到蚯蚓,我们再熟悉不过了。乡间地头只要翻开泥土就有它,钓鱼做鱼饵的也常是它。它对我们来说就是...
    执笔抒情_6d6d阅读 1,099评论 0 0
  • 90天个人目标 1.养成健康生活方式:早睡早起,冥想,睡子午觉,运动,泡脚 2.学习:养成早起读书至少15分钟 3...
    心中的花朵儿阅读 1,117评论 0 0
  • 有僧者,历史传承出身,号称身怀门派绝技,遂下山游历江湖,江湖不可见刀兵,便以拳为器。 后遇一金主,见其生产...
    锦衣夜行佐大人阅读 1,684评论 0 0

友情链接更多精彩内容