zoukankan      html  css  js  c++  java
  • 面试:等车时间

    已知我家门口的公交站有两班公交车.

    其中一辆每隔M分钟经过我家门口.

    另外一辆每隔N分钟经过我家门口.

    我随便等到一辆车都可以坐车去上班....

    那么平均情况下 我要等多久 才能等到一辆车??

    应用场景是在做地图寻路算法的时候....要计算等车时间, (用于估计你要多久才能到达目的地).

    一个很简单的提示:如果只有一辆车M,平均时间是M/2,如果多了一辆车n...用的时间必然小于M/2.

    PS: 有很多朋友会认为答案是(M+N)/2 这明显是不对的 因为我只要随便等到一辆车就能上班了.

    PS: M*N/(M+N) 也是错的.

    PS:我也不知道什么时候出门等车啦 ,也不知道m和n什么时候发车,反正就是随机的.

    附上一些简单的验证逻辑用于验算:

    假设结果是s

    那么必然有

    s<n/2

    s<m/2

    假设m非常大 那么必然有 s约等于n/2

    PS:目前为止 最快的一个朋友用了40分钟想出来.....- -# 额..其实这个题目很简单的

    PS:做程序做太久了脑筋别僵化了....尝试计算下 看看脑子能不能转的过弯来吧

    PS:...先放出一部分答案

    1.当m=n的时候 两个车的间隔时间就是相等的 , 那么两班车之间的时间间隔就很很重要了

      假设时间间隔为k  那么平均时间为 对k积分 从0到n  (2k*k+n*n-2kn)dk/2n*n

      那么平均等车时间为 n /3 

      搞不上来积分的图片..郁闷

    2. 当2n>m>n

      假设时间间隔为k  那么平均时间为 对k积分 从0到m 

      (2k*k+2n*n+m*m-2mk-2mn-2nk)dk/2m*m

      结果为(3n*m*m-9m*n*n+11n*n*n)/18m*m

     

    如果算错了 还请各位朋友指正

  • 相关阅读:
    移动端兼容
    三点优化
    面向对象(一)
    BootCDN和npm
    分页逻辑
    多物体运动框架
    兼容样式
    省略
    行内元素在水平和垂直排列的时候会有间距
    [Swift]LeetCode1053.交换一次的先前排列 | Previous Permutation With One Swap
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/1914241.html
Copyright © 2011-2022 走看看