zl程序教程

您现在的位置是:首页 >  其他

当前栏目

从20211202这个“千年一遇”说起

2023-04-18 14:54:22 时间

今天一天,不少人都在转发这个图:

身为一个理工科的直男,看到题目之后首先思考了2个问题:

  1. 对称日真的是千年一遇吗?
  2. 公元纪年至今,真的是第515个对称日吗

本着实(xian)事(zhe)求(wu)是(liao)的原则,随便算了一下。

手头刚好打开了一个powerbi,就用它来做吧。

正文开始

第一步:获取日期

很显然,公元100年之前不会有对称现象发生,那么我们就获取从0100年到2021年之间所有的日期,并将它们写成20211202的形式:

日期 = CALENDAR (DATE(100,1,1), DATE(2021,12,31))
yyyymmdd = FORMAT('日期'[Date],"yyyymmdd")

第二步:判断日期是否为对称

用最笨的方法写就可以了,第1个数字等于第8个,第2个等于第7个,……

是否对称 = 
VAR a=[yyyymmdd]
return IF(
    MID(a,1,1)=MID(a,8,1)&&MID(a,2,1)=MID(a,7,1)&&MID(a,3,1)=MID(a,6,1)&&MID(a,4,1)=MID(a,5,1),
    1,0)

我们一共得到了83个日期,他们分别是:

0101-10-10、0110-01-10、0111-11-10、0120-02-10、0121-12-10、0130-03-10、0140-04-10、0150-05-10、0160-06-10、0170-07-10、0180-08-10、0190-09-10、0201-10-20、0210-01-20、0211-11-20、0220-02-20、0221-12-20、0230-03-20、0240-04-20、0250-05-20、0260-06-20、0270-07-20、0280-08-20、0290-09-20、0301-10-30、0310-01-30、0311-11-30、0321-12-30、0330-03-30、0340-04-30、0350-05-30、0360-06-30、0370-07-30、0380-08-30、0390-09-30、1001-10-01、1010-01-01、1011-11-01、1020-02-01、1021-12-01、1030-03-01、1040-04-01、1050-05-01、1060-06-01、1070-07-01、1080-08-01、1090-09-01、1101-10-11、1110-01-11、1111-11-11、1120-02-11、1121-12-11、1130-03-11、1140-04-11、1150-05-11、1160-06-11、1170-07-11、1180-08-11、1190-09-11、1201-10-21、1210-01-21、1211-11-21、1220-02-21、1221-12-21、1230-03-21、1240-04-21、1250-05-21、1260-06-21、1270-07-21、1280-08-21、1290-09-21、1301-10-31、1310-01-31、1321-12-31、1330-03-31、1350-05-31、1370-07-31、1380-08-31、2001-10-02、2010-01-02、2011-11-02、2020-02-02、2021-12-02

第三步:讨论分析

第一个对称日为01011010,属东汉孝和皇帝永元十三年,九月发生饥荒,汉和帝下诏减官俸,救济贫民。

今天20211202又是一个对称日,面对这一次次去了又来的疫情,无数党员干部和医护人员冲锋在前,全国劳动人民不断奋斗,建立起强大的内循环。

总说千年一遇,千年一遇,那么到底多长时间我们就会遇到一次对称日呢?

我们可以计算出每一个对称日的上一个对称日,再计算时间间隔:

以上为时间间隔从大到小排列,间隔最长的一次为1380-08-31(明洪武十三年)到2001-10-02,中间621年没有出现过对称日。

第二位的是0390-09-30到1001-10-01,中间611年没有出现过对称日。

其他所有的对称日时间间隔最长为20年,且只有两次,因此,对于大部分历史上的人来说,一辈子总能见到几次对称日的。

我们再按照从小到大的顺序排列。

第一次出现对称日是01011010,因此它没有上一次对称日期。

我们发现时间间隔最短为1.83年,历史上有13次时间间隔为1.83年,也就是669天。咳咳,不是马云的669

那么从101年至今总共是1921年,共有83次,平均23年就会出现一次对称日。

我们把目光放的再长远一些,计算所有四位数以内的年份中对称日的情况:

日期 = CALENDAR (DATE(100,1,1), DATE(9999,12,31))

一共计算得到366个对称日:

最小的时间间隔还是669:

而最大的间隔为711.5年:

也就是说,出生于x290年10月之后的,至死亡日日期在(x+1)001年9月之前的所有人,这辈子都不会遇到对称日。似乎有那么一丁点伤感。

那么我们还会遇到几次对称日呢?

距离我们最近的一次是8.25年也就是3012天后的3030年3月2日,再往后只能是10年才能遇到一次了,大家可以掰着手指头算算还能看见几个。

而大约170年之后的22900922这一天结束后,又要等711年才能出现对称日了,到那时候,恐怕真的要说“千年一遇”了。

第四步:得出结论

1.对称日真的是千年一遇吗?

回答:错误。最短1.83年,最长711.5年遇到一次,平均时间间隔为27年。

2.公元纪年至今,真的是第515个对称日吗?

回答:错误。今天是第83个对称日。