• 面试:等车时间


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

    其中一辆每隔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

     

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

  • 相关阅读:
    (转)Zipalign——Android apk优化工具
    (转)Android 数字证书详
    (转)ant深入浅出
    (转)Java调用Ant API用法
    (转)Java 代码调用ANT
    (转) Android如果对APK进行加密,提高反编译难度(思路)
    (转)Ant自动打包
    (转)Ant build.xml中的各种变量,使用系统环境变量
    (转)JAVA调用脚本
    (转)Android 编译,打包、签程名详细教
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/1914241.html
Copyright © 2020-2023  润新知