支持科学新闻报道
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。 通过购买订阅,您正在帮助确保未来能够继续讲述关于发现和塑造我们当今世界的想法的具有影响力的故事。
时不时地,就会有著名的宗教狂热分子宣称末日即将来临。 哈罗德·康平 就是这样一位末日预言家的最新例子。 他宣称审判日于 2011 年 5 月 21 日开始,他还预言宇宙的毁灭将在 10 月 21 日随之而来。 如果能知道我们的宇宙会在星期几结束岂不是很好? 毕竟,如果要是在星期二,为什么还要在那一周去上班呢?
很容易宣布 10 月 21 日是星期五,很多人也能告诉你 5 月 21 日是星期六——因为这些都是相对近期的日期。 真正的挑战是确定历史上任意日期的星期几。 人们无需寻觅太久就能找到一个 任意的末日日期。
在 一本名为 1994? 的书中,康平预测 1994 年 9 月 6 日将是末日。 当然,那天来了又走了,没有发生任何事故。 但那天是星期几呢? 既然我们提到了这个,不如让我们将日历再往前翻几个世纪,进一步提高难度:1752 年 9 月 6 日在英国及其美洲殖民地是星期几?
仙境中的算法
刘易斯·卡罗尔在创作像《爱丽丝梦游仙境》这样的文学作品之余,还涉猎数学。 他的副业成果之一是 1887 年的万年历算法,用于计算给定日期的星期几。 在卡罗尔之前,已经有很多日历算法了。 事实上,伟大的数学家卡尔·弗里德里希·高斯在 1800 年就有了自己的版本。 但卡罗尔是第一个设计出适合心算的算法的人。 卡罗尔本人可以在脑海中执行他的日历算法,在约 20 秒内计算出给定日期的星期几。
多年以后,长期担任《大众科学》专栏作家的马丁·加德纳 读到了卡罗尔的日历算法。 (除了撰写他广受欢迎的“数学游戏”专栏外,加德纳还是一位严肃的卡罗尔学者。) 加德纳随后将卡罗尔的算法告诉了他的朋友约翰·霍顿·康威,并挑战康威提出一个更简单的算法。 康威是一位世界级的数学家,他确实在 1973 年提出了一个更简单的算法。 他将他的算法称为“末日规则”。
末日规则现在更普遍地被称为 末日算法。 该算法很简单,只涉及基本的算术。 此外,它只需要很少的记忆。 通过练习,它可以仅用几秒钟在脑海中完成,无需纸和笔。 在 1999 年《大众科学》的马克·阿尔珀特对康威的个人简介中,写道康威的电脑被编程为用随机日期来考他; 他通常可以在两秒钟内给出答案。
末日尚未到来
尽管末日算法在追溯康平和末日预言者的失败预测方面很有用,但它与世界末日无关。 康威以发现一年中某一天(他称之为“末日”)的有趣属性来命名他的日历算法。 但他对“末日”的使用可能用词不当。 人们可以很容易地将其称为“锚定日”。
使末日算法起作用的想法是,某些可记忆的日期在任何给定年份内总是共享相同的星期几。 例如,4 月 4 日、6 月 6 日、8 月 8 日、10 月 10 日和 12 月 12 日在 2011 年都是星期一。 此外,您可以在日历上查看,这些日期在任何年份都落在同一星期几。 例如,在 1994 年,它们也都是星期一。 康威利用这个事实作为他算法的基础。 这个特殊的星期几,由 4/4、6/6、8/8、10/10 和 12/12 共享,就是锚定日。 (锚定日落在星期几每年都在变化。)
其他可记忆的日期也落在给定年份的锚定日:5/9、9/5、7/11 和 11/7 在 1994 年和 2011 年都是星期一。 正如 4/4、6/6、8/8、10/10 和 12/12 因重复数字而易于记忆一样,人们可以使用康威的简单助记符轻松记住另外四个日期:“朝九晚五在 7-11 工作”。 有了这些可记忆的锚定日期,人们可以轻松确定附近日期的星期几。 (还有其他技巧可以帮助记住年初几个月的日期——例如,二月的最后一天始终是锚定日,无论是否闰年。) 例如,既然我们已经知道 9/5 在 1994 年是星期一,那么很容易推断出 1994 年 9 月 6 日——哈罗德·康平的爽约末日——是星期二。 使用附近的锚定日是末日算法的关键。
漂移的锚定日
对于给定的日期,星期几每年都会漂移。 2010 年 10 月 21 日是星期四。 2011 年 10 月 21 日将是星期五,并且——假设世界在那一天没有真正结束——2012 年 10 月 21 日将是星期日,而 2013 年 10 月 21 日将是星期一。 这里一定有规律。 事实上,给定日期的星期几每年都会向前推移一天,除非在闰年,闰年会向前推移两天。 此外,有一个简单的数学公式可以测量从世纪初开始的星期几的累积年度漂移。 虽然这个公式很简单,但没有纸和笔很难解出。 刘易斯·卡罗尔在 1887 年发现了另一种计算方法,这种方法看起来更复杂,但实际上更适合心算。 事实上,康威重新使用了卡罗尔的方法 作为末日算法的一部分。
去年,空军技术学院的迈克尔·K·沃尔特斯和我提出了一种不同的计算星期几累积漂移的方法。 我们认为我们的方法比卡罗尔的方法更容易用心算执行,因为我们的方法需要更少的除法和记忆。 我们将我们的方法称为 Odd+11 方法。 我们的方法的摘要在此处以流程图的形式提供。
那么,1752 年 9 月 6 日是星期几呢? 要回答这个问题,需要了解一些关于我们当前日历系统的历史。 地球每年绕其轴自转约 365.24219 次。 这个速率被称为平均回归年。 平均回归年的真实天数实际上随时间略有变化。 我们现代的 12 个月日历系统始于公元前 45 年左右的儒略历。 儒略历将平均回归年近似为 365.25 天,并提出每四年一次 366 天的闰年。 这种近似使儒略历在几个世纪内相当准确地跟踪年度季节。 但最终,近似误差累积了。 到 1582 年,儒略历与季节已经不同步了好几天。 教皇格雷戈里十三世下令改革日历; 他的格里高利历将平均回归年近似为 365.2425 天。 教皇因此修改了确定闰年的规则:能被 100 整除的年份只有在也能被 400 整除的情况下才是闰年。 例如,2000 年是闰年,但 1900 年不是,因为当除以 400 时,它不会得到整数。
格里高利历直到很久以后才在世界范围内得到广泛采用。 事实上,大英帝国及其殖民地直到 1752 年才使用更新后的日历系统。 到那时,儒略历与季节已经不同步了 11 天。 为了与格里高利历同步,规定 1752 年 9 月 2 日星期三之后是 1752 年 9 月 14 日星期四。 因此,1752 年 9 月 6 日这个日期在英国和美国历史上并不存在! 不存在的日期当然没有星期几。 如果你觉得夏令时令人困惑,那就试试跳过几天来感受一下吧。