又是13号星期五
今天是2020年3月13日,星期五。在世界上的许多地方,13号星期五被认为是不吉利的。我之前写过关于13号星期五的博客,2012,2018但是今天我要讲一些新的东西。
注意:不知怎么的,这些数字放错了位置。现在看起来还可以,但我保留了文本中的锚,以防万一。
内容
问题
星期五不仅仅是13号吗不幸的,它也是不太可能?每个月的13号落在星期五的几率有多大?哪一个个月更有可能是13号星期五?哪一个年更有可能是13号星期五?
闰年
闰年使我们的历法成为一个重要的数学对象。这个匿名函数可以实现闰年规则。
leapyear = @ (y)国防部(y, 4) = = 0 &国防部(y, 100) ~ = 0 |国防部(y, 400) = = 0;
这就是说,闰年每四年发生一次,除非世纪之交不能被400整除。让我们试试几年的数字。
Y = [2020 2021 2000 2100]';Isleap = [y leapyear(y)]
Isleap = 2020 1 2021 0 2000 1 2100 0
所以,今年是闰年,但明年不是。两年前的世纪之交2000年是闰年,但下一个世纪之交2100年将不是闰年。
日历
闰年规则意味着我们的历法有400年的周期。2000至2399年的日历将在2400至2799年重用。在一个400年的周期中,有97个闰年、4800个月、20871个星期和146097天。所以,日历年的平均天数不是365.25天,而是
dpy = 365 + 97/400
dpy = 365.2425
乍一看,你可能会说任何一个月的13号是星期五的概率是1/7,因为一周有7天,它们都是等概率的。但这并不完全正确。我们可以计算出在日历期间的4800个月中,13号星期五出现的次数。正确的概率是这个数除以4800。因为4800不是7的倍数,所以概率不会减少到1/7。
Datetime
的datetime对象,在MATLAB中引入的R2014b,是我们需要的工具。
的文档datetime是可用的在这里,或者,在MATLAB中,使用命令
医生datetime
例如,这是我写这篇文章的日期和时间。
d = datetime (“现在”)
d = datetime 13-Mar-2020 21:17:57
我可以指定一个自定义显示格式,其中包括工作日
d = datetime (d,“格式”,'eeee, MMMM d, yyyy HH:mm:ss')
d = datetime, 2020年3月13日星期五21:17:57
可用的显示格式包括对国际标准的支持,万博1manbetxISO 8601.
Vectorize
我们继续13号星期五吧。和MATLAB中的大多数东西一样datetime与向量。的语句
y = 2000;m = 1:4800;t = 13;v = datetime (y、m、t);
生成行向量4800datetime每个月的13号。前几个和后几个是
流(' % s 'v(1:4))流(“……\ n”)流(' % s ', v (end-3:结束)
2000年1月13日2000年2月13日2000年4月13日…13- 9 -2399 13- 10 -2399 13- 11 -2399 13- 12 -2399
该声明
w =工作日(v);
产生4800个燧石的行向量,位于1(用于周日)和7(用于周六)之间。前几个和后几个是
流(“% 3 d”w(1:4))流(“……”)流(“% 3 d”, w (end-3:结束)
5 1 2 5…2 4 7 2
现在要算出工作日的数目,我们只需要
数量= histcounts (w)
计数= 687 685 685 687 684 688 684
好了。周五的死亡人数为688人,高于本周其他任何一天。任何一个月的13号都更有可能落在周五。
的概率是
概率= / 4800
probb = 0.1431 0.1427 0.1427 0.1431 0.1425 0.1433 0.1425
将这些值与它们的平均值进行比较。
avg =意味着(概率)
avg = 0.1429
4个概率低于平均值,3个概率高于平均值。
分类
让我们用a将计数与一周的天数配对分类变量,在R2013b中引入。
猫=分类(w 1:7 weekday_names);总结(cat)
星期日星期一星期二星期三星期四星期五星期六687 685 685 687 684 688 684
当我们绘制直方图时,x轴上提供了适当的标签。13号星期五是赢家。
直方图(猫,“BarWidth”, 0.5,“FaceColor”甘氨胆酸,颜色(2))(,“ylim”690年[680])标题(“工作日算400年”)
"工作日计数,400年"应该在上面。
个月
下面是13号星期五的其他一些分布图。首先,在400年的历法期间个月更有可能是13号星期五?按月份创建一个类别变量。
friday13s = v (w = = 6);cat_months =分类(月(friday13s), 1:12, month_names);
柱状图显示,这个月,3月和其他五个月,13号星期五的数量略高于平均水平。8月和10月最少。
直方图(cat_months“BarWidth”, 0.5,“FaceColor”甘氨胆酸,颜色(3))(,“ylim”(55 59),“ytick”56:58)标题(“星期五,月”)
" 13号星期五,月"应该在上面。
年
哪一个年更有可能是13号星期五?看年份的最后一个数字。
year_mod10 =国防部(年(friday13s), 10);数字=分裂(字符串(num2str (0:9)));cat_mod10 =分类(year_mod10、0:9位数);
柱状图显示,今年、2020年和任何其他始于10年的年份,都是最不可能出现倒霉周五的年份。
直方图(cat_mod10“BarWidth”, 0.5,“FaceColor”甘氨胆酸,颜色(4))(,“ylim”(64 73),“ytick”65:72)标题(“黑色星期五,一年的最后一个数字”)
" 13号星期五,一年的最后一个数字"应该在上面。
频率
每年有多少个不太可能的星期五?这是一个粗略的直方图,显示了整个400年的日历期间每年的数字。我们可以看到,似乎每年有一到三个,但更具体的分布细节是难以捉摸的。
年=年(friday13s);情节(2000:2399 histc(年,2000:2399),“。”甘氨胆酸)组(,“xlim”(1990 2409),“ylim”[0 4],“ytick”1:3)标题(“每年13号星期五,400年”)
"每年13号星期五,400年"应该在上面。
十年
让我们专注于这十年,从2020年到2029年。这里列出了这个范围内的所有16个星期五,13号。
Decade = (years>=2020 & years<2030);disp (friday13s(十年)”)
13- 3- 2020 13- 11 -2020 13- 8 -2021 13- 5 -2022 13- 1 -2023 13- 10 -2023 13- 9 -2024 13- 12 -2024 13- 6 -2025 13- 2 -2026 13- 3- 2026 13- 11 -2026 13- 8 -2027 13- 10 -2028 13- 4 -2029 13- 7 -2029
这是计数的直方图。今年我们看到了两起(今天和11月)。明年只有一个,后年也只有一个。但到2026年将会有3个。这是这十年中仅有的三次。
嘘(年(十年)、2020:0.5:2029“binwidth”甘氨胆酸,0.5)集(get (,“孩子”),“FaceColor”甘氨胆酸,颜色(5))(,“xlim”(2019 2030),“xtick”2020:2029,...“ylim”[0 4],“ytick”1:3)标题(“每年的13号星期五,2020-2029年”)
“2020-2029年,每年的13号星期五”应该在上面。
测试
如果你和我在一起这么久,也许你已经准备好做作业了。
- 解释一下为什么每年至少要有一个13号星期五。
- 解释为什么任何一年都不能超过3个。
- 一年中有多少种不同的方式拥有三个?2026年就是一个例子。
现在我最好还是辞职,趁现在还是13号星期五,把这篇文章贴出来。
祝你好运。
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。