蚂蚁走木棍

蚂蚁走木棍

百度面试题

有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。 木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。 当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。 编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

简化问题

看上去很复杂,但可以这样看问题:假设可以过两只蚂蚁,那么蚂蚁相撞两蚂蚁调头相当于不调头继续前进。 这样问题就可以迎刃而解了。最大的时间就是每只蚂蚁往远端前进(算出来是离一端最远的那只),最小的时间就是每只蚂蚁往近端前进(算出来是最后爬出来的那只)。 这样,最大时间就是3厘米的那只,耗时24秒。最小时间是11厘米那只,它最快要11秒才能出来。

小学竞赛题

这个题目让我想起一个竞赛题,大概是说,有两个人相距x米迎面走来(速度已知),其中有只狗在他们之间来回跑(狗的速度较快), 求两人相逢的时候,狗跑了多长距离。如果着眼点在狗每次跑动的距离,那一样非常复杂。如果着眼于时间, 则问题也就迎刃而解了。话说回来,类似的这些题目,更像是智力题而非编程题。

blog in github,新的开始

老掉牙的故事

我写博客也不算新鲜事了,不过已经有2年没写过博客了。很早之前就有blogspotbonyfish.cn, blogspot是我最初的博客地址,因为我比较喜欢blogspot那种简洁的风格,只是后来在天朝无法访问,所以把数据迁移出来。 后来自己弄了个域名,用wordpress重新搭建了一个,又这样持续了一两天。 前后加起来写过超过1000篇大大小小的博客,只是因为各种原因,后来没有坚持下来,回想起来,还是有些可惜的。 不过,我手头上还是有一份完整的数据库备份,算是留个纪念。

why blog, why github

这两年的工作比较忙,这也是没坚持下来的原因之一,但同样也是这次想重新捡起来的主要动力。 在这家公司里边,忙已经成为一种常态,常常没有时间停下来思考,把好的东西沉淀下来。 这是一家感觉很特别的公司,有很多人很认真,却忙得一塌糊涂,没时间学习。 不得不说,这真是很无奈的一件事。但我不想这样,我需要时常回顾一下做过的事情,希望能从中获取到一些东西。 或许哪天我离开这家公司,我希望带走更多东西,而不只是一些钱和一个漂亮的工作简历。

为什么选择github作为博客?我非常喜欢github,它给我的体验非常好,我在公司弄的code diff工具也借鉴了github的review功能。 github的博客功能其实是一个只支持静态页面的page功能,相对于正式的博客来说,只能用简陋来形容,但它符合KISS原则,能够让我关注不至于过于分散。 借助jekyll和markdown标记语言来生成静态页面也很简单,稍微试了一下,符合我的要求:足够简单。

关于jekyll的更多内容,可以参考原作者的博文:像黑客一样写博客(中文版)

关于markdown的更多内容,可以参考这个教程:Markdown 语法说明,你只要花半个小时到一个小时就差不多了。

我还整理了一个使用jekyll和markdown中遇到的问题

plan…and so on

我是使用Jekyll Bootstrap弄的,因为我对twitter bootstrap这套简洁的css框架还算了解。同时,我相信你也是喜欢上这个风格的。

我会争取一个星期至少更新一篇,这个频率虽然有点慢,但目标不要定太高,万事开头难嘛 :) 另外,我会抽时间整理一下以前老的博客,把还有点用的东西重新分享一番,但愿这些年没有白过了。

拭目以待吧!