撰写电脑技术杂文十余年

WWW.Dzwebs.NET

烧绳子计时间的办法

  首先说明,下面的这个经典例子,用烧绳子来计时的办法,我本人看题目以后,琢磨了些许时间,未想到问题的解决办法。因此可断定,本人的智商不及出题者。本人借此提醒我自己,我仅仅是个平常的人,需要多学习多总结,切勿妄自尊大。

  例子如下:

  烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时1小时15分钟呢?

  总体思路分析:

  1小时15分钟 = 1小时 + 15分钟;当一只绳子燃烧完后,点燃另外一根绳子,可以对时间进行加法。

  通过1个小时的绳子,我们可以准确的得到30分钟,方法是:

  对一根完整的绳子两端同时开始烧,烧完的时候就是30分钟;

  同理,根据30分钟的绳子,我们可以准确的得到15分钟;

  因此,我们可以这样得到1小时15分钟:

  第一步:将一根完整的绳子A两端同时开始烧,另一根完整的绳子B一端开始烧;

  第二步:当A烧完的时候(30分钟),我们再将B的另一端点燃,即对一根30分钟的绳子两端同时烧;

  第三步:当B烧完的时候(30 + 15),我们得到了45分钟;

  第四步:再如同1,我们再从两端同时开始烧一跟绳子C,烧完时候即又过去30分钟,所有总共得到:30 + 15 + 30 = 1小时15分钟

  推广:

  1. 通过点燃绳子两端,可以获得这根绳子二分之一的时间;

  2. 当一只绳子燃烧完后,点燃另外一根绳子,可以对时间进行加法;

  3. 同时点燃两根绳子,可以获得两根绳子燃烧结束的时间差,也就是对时间进行减法;

  综上所述,也就是说,通过燃烧绳子,我们可以对时间进行除2,加法 和 减法 三种操作。

  有上面关于这些运算的讨论,通过燃烧绳子,我们可以获得任意满足公式(60 * m) / (2 ^ n)的时间,其中m和n为整数。如果只考虑整数时间,由于60和2^n的最大公约数为4(另外一个思路是15分钟再分就是7.5分钟),我们可以获得的最小时间是15分钟,因为我们可以得到 m*15分钟,即可以获得任意15的倍数的时间。

Admin|2013-1-23 11:08:52|已被浏览:8875上一篇

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2020-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231