美文网首页
用代码解出,电梯停靠的最佳位置

用代码解出,电梯停靠的最佳位置

作者: 查理不是猹 | 来源:发表于2021-12-27 15:44 被阅读0次

大家好,我是查理
最近回家坐电梯,突然又想起电梯的最佳停靠位置。
最早发现这个问题的时候是两年前在杭州。当时住在一个蛮高端的叫翡翠城的小区,楼里有两部电梯。
观察一段时间你会发现,两部电梯在很长时间没人乘坐后,它不会全部停在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层。

相关文章

  • 用代码解出,电梯停靠的最佳位置

    大家好,我是查理最近回家坐电梯,突然又想起电梯的最佳停靠位置。最早发现这个问题的时候是两年前在杭州。当时住在一个蛮...

  • 电梯的最佳停靠位置

    最早发现这个问题的时候是两年前在杭州。当时住在一个蛮高端的叫翡翠城的小区,楼里有两部电梯。观察一段时间你会发现,两...

  • 【15th】高宁(6.26-7.1)

    一、 场景①:写字楼早上上班等电梯时间太长或者电梯停靠太久。 需求:快速坐上电梯并快速上楼。 类型:强需求。 产品...

  • 你可以过得更好点

    会车时,左边有车,右边有石柱,相会的越野车已经尽量的往最佳位置停靠了,可路还是非常的窄。为了能过去,左边车的反光...

  • 杭电-1009 elevator

    这题就是简单的计算,没什么坑直接就ac了,注意更新当前电梯的位置就行。 AC代码

  • 闪婚

    潘虹疾步走出公司大门,到电梯口,正好有电梯停靠,电梯开门的一瞬间,她便埋头匆匆进去了,然后靠着电梯的一个角落站着。...

  • 最佳位置

    旁边位置都可坐一坐我想照顾你 法学学霸和小姨都说 其实希望可以是我 去苏州 会不会 不一样 最佳位置

  • 最佳位置

    当你热爱自己,热爱每一个当下,你会热爱任何一个人和万事万物。 你会发现:当初让你觉得受伤害的人或事,现在看来是成就...

  • 最佳位置

    和帅哥(C和W)两个人出来找市场,一边找合适的房子一边看哪一个地方更适合开工作室… 第一天上午去的是JX,看这个县...

  • C语言-查找奥运五环色的位置,用指针数组实现

    问题描述:查找奥运五环色的位置,用指针数组实现 源代码: 源代码:/查找奥运五环色的位置,用指针数组实现/#inc...

网友评论

      本文标题:用代码解出,电梯停靠的最佳位置

      本文链接:https://www.haomeiwen.com/subject/gtuyqrtx.html