北京奥运倒计时器 闹出“天大玩笑”

2007年3月26日晚8时,北京奥运会倒计时进入500天。

  然而,竟然没有人发现,这座由欧米茄公司赞助并全权负责制作的,已经落成、启动并倒计时长达900多天的“高科技”产品出现了一个惊人的“漏洞”——在每一天晚8时整,在这一秒的时间里,倒计时种显示的数位都会出现一个同样的错误:天数的递减变化与“时、分、秒”的归零同时显示,导致前一秒钟显示出的时间段比后一秒时所显示的时间段少23小时59分59秒的情况。

  更严重的是,在2008年8月7日8时整(距目前预定的奥运开幕时点整整24小时),倒计时种的显示将出现“天、时、分、秒”都全部提前归零的“乌龙”!既然倒计时全部清零了,那就是“开幕”了啊,但此后一秒的显示是距开幕还有“0天23时59分59秒”,再倒计下去,直到8日晚8时第二次全部清零,奥运会才真正正式开幕。

  有摄影记者在天安门国家博物馆门前采用连拍方式,拍到晚8时前后三秒钟内三张倒计时锺的显示图片,仔细观察三张图,你会发现:在第二张图上,天数已经减少一天,而同时时、分、秒归零;第三张图,天数与第二张一致,时、分、秒显示为“23时59分59秒”,那么在下一秒显示的倒计时时间段竟然比上一秒还要长23小时59分59秒!这显然不合常识逻辑。


“天大玩笑”

  更重要的是,按照这样“读秒归零的同时天数递减变化”的显示规律,推算到2008年8月7日晚8时前后三秒内倒计时牌所显示的情形,就会出现如下奇特现象:

  这三张推演图片所示,第一张很正常,第二张则惊人地出现“天、时、分、秒”所有数位在这一秒的时间里全部归零的奇观!那么,此刻奥运该“开幕”了?而事实是,此时距奥运开幕还有整整24个小时!再看第三张图,显示的是“0天23时59分59秒”,这也是正确而符合常识逻辑的。

  按照常理和时间逻辑,在2008年8月8日奥运开幕的这一天的大部分时间里,倒计时牌所显示的应该是“0天××时××分”,那么此前一天(8月7日)的大部分时间里就应显示为“1天××时××分”。我们照此逻辑,对应到日历上从2008年8月8日倒数,数到2007年3月25日,晚8时后的确该显示为501天。这就证明,欧米茄公司也是照此常识逻辑去设计该倒计时锺的程式模组的,那么也就是说,我们上边三张虚拟图是符合该倒计时锺的程式设计的,而该倒计时锺照此下去在2008年8月7日的8时,就确定会出现所有数位全部归零,提前宣布24小时宣布奥运“开幕”的重大失误,尽管这个失误仅存在短短的一秒钟!
  
  最后再推演一下这个倒计时牌历史使命中最后两秒钟(2008年8月8日晚8点前):继2008年8月7日晚8时出现倒计时锺数位全部归零的情况后,2008年8月8日奥运真正开幕时又出现倒计时全部归零的情况,当然这后一次是正确无误的,而两天内两次倒计时归零,欧米茄公司的这个“玩笑”真是开大了!

  既然出了这个问题,那么“漏洞”是怎么出来的?哪个环节出了问题,该如何解决?

  按照欧米茄的设计师设定的倒计时程式,2008年北京奥运会将在最后一个计时周期内,将两次出现0天00时00分00秒的情况。而对于这样的乌龙,记者谘询了业界的相关专家,并向四川大学、电子科技大学两所学校的数学、电脑软体等方面的老师进行了求教。专家们认为,这是欧米茄公司的设计师在初始程式资料设定时出现了纰漏,专业术语:触发减一。但记者就此事采访欧米笳公司时,作为2008北京奥运会倒计时牌的赞助商,欧米茄公司却推三阻四,没有正面回应问题。

  其实倒计时的电脑程式在电脑编程上,是最入门、最初级的一种,编写起来也非常容易和简单,最常见的一种方法是采用DateDiff函数或者TapTime for palmOS的一种固定程式进行编写。在原始资料设定时,需要设定一个倒计时的开始时间,包括年、月、日、小时、分钟、秒钟,以及倒计时的终止时间,同样包括年、月、日、小时、分钟、秒钟等参数即可。在一个倒计时程式里,还包括计数器和记忆体两个关联程式。“如果欧米茄公司为北京奥运会设计的倒计时牌的确出现这样的故障的话,那很可能就是这两种计算器中的一种,在原始资料设定时出现了纰漏,这是一个编写程式时的BUG。”

  专家解释说:“举个最简单的例子。我们一般都是按照1、2、3、4……9这样的顺序计数,倒计时则是按照9、8、7、……1、0这样的倒序进行。这样就有可能在倒计时最后一个计时周期内,出现两次显示为零的状态,而实际上,在第一次显示为零的时候,还有一个计时周期没有被计算在内。拿专业术语来说是:触发减一。”

  最后,这位专家说:“其实把2008北京奥运会的倒计时牌的内部晶片重新进行编程,弥补这样一个BUG,将现在的倒计时牌的天数晚变一秒钟。到了最后一个计时周期内,就不会出现两次为零的状况了。这对于欧米茄这么一个公司来说,非常简单,一点都不困难!”
本文留言

近期读者推荐