作者:
pengkuny 百度到我们学校来招人的一道面试题,被贴在本校BBS上, 发帖者不屑一顾的加一句:"心算答案都出来了".
我和寝室同学讨论了老半天,也没找到什么有效的算法,(当然那种遍历求解的算法不叫算法,小学生都会.)
直到我获知"鬼魂算法"后,才拍案叫绝啊!它的思想真是"好,很好,非常好,好得很哪,真得非常好,不是一般的好!".所谓"鬼魂算法",是一个非正式名称,网络上都搜不到,也即把蚂蚁视作鬼魂,可以彼此穿过对方的身体.
废话少说,且看贴.
有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各
有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任
意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时
调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。
编写程序,求所有蚂蚁都离
开木杆的最小时间和最大时间。
再三说明,32种情况遍历求解傻瓜也会,不要提它!
好好想一想吧,尤其是最大时间是多少?
也有人有更另类的想法,不过感觉那种方法不太适合于编程.
posted on 2006-11-09 23:05
哈哈 阅读(2963)
评论(17) 编辑 收藏 引用