zoukankan      html  css  js  c++  java
  • 编程之美---蚂蚁爬杆

    一根长27cm的木棍上,在5个点上有5只蚂蚁,蚂蚁在开始的时候朝任意方向出发,只能掉头或者往前走。让任意两只蚂蚁碰头时,它们同时掉头朝反方向走。假设蚂蚁的速度都是一秒一厘米,求蚂蚁都离开木棍的最短时间和最长时间。

    蚂蚁相遇后掉头往反向走,可以看作蚂蚁相遇后,擦肩而过,相当于两只蚂蚁互换了各自的行程。所以把每只蚂蚁离自己较远的一端,和较近的一端计算出来,分别取最大值,就是最长时间和最短时间。

    扩展问题 参考网址 http://blog.csdn.net/weichaohnu/article/details/8748138

    1、第i个蚂蚁,什么时候走出木杆?

    可以想象成每只蚂蚁背着一袋粮食,蚂蚁相遇后,相互交换自己的粮食,蚂蚁仍掉头。假设刚开始有m只蚂蚁往右走,n-m只蚂蚁往左走,则最后一定有m只蚂蚁从右边出来,n-m只蚂蚁从左边出来。且从右边出来的的m只蚂蚁一定是靠近最右边的m只蚂蚁。因此只要找到第i个蚂蚁背的粮食就可以了。如果第i<=m,那么只要找到最开始往右走的第i袋粮食即可。

    2、如果蚂蚁在一个平面上运动,同样也是碰头后原路返回(这样和弹性碰撞不同,不能等同于两个蚂蚁交换继续前进),问蚂蚁如何走出平面?

    3、蚂蚁一共会碰撞几次?

  • 相关阅读:
    Python 十七天 成员
    python学习17——字典。
    python学习16——列表。
    python学习15——Random。
    python学习14——分支和函数。
    python学习13——while循环。
    python学习12——循环和列表
    python学习8——整理第一部分。
    Flask HTTP请求与响应
    Falsk 路由简析
  • 原文地址:https://www.cnblogs.com/wen-ge/p/4194167.html
Copyright © 2011-2022 走看看