又是13号星期五了

今天是2020年3月13日星期五。在世界许多地方,13日星期五被认为是不吉利的。我以前写过关于13日星期五的博客文章,20122018但是今天我要讲一些新的东西。

注意:不知怎么的,这些数字放错了位置。现在看起来还可以,但我保留了文本中的锚,以防万一。

内容

问题

星期五不仅仅是13号吗不幸的,它也是不太可能任何一个月的第13个星期五发生的几率有多大更有可能是13号星期五?哪一个更有可能是13号星期五?

闰年

闰年使我们的历法成为一个重要的数学对象。这个匿名函数可以实现闰年规则。

leapyear = @ (y)国防部(y, 4) = = 0 &国防部(y, 100) ~ = 0 |国防部(y, 400) = = 0;

这就是说,闰年每四年发生一次,除非世纪之交不能被400整除。让我们试试几年的数字。

y=[2020 2021 2000 2100];isleap=[y年(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,因为一周有七天,而且它们的概率都是相同的。但这并不完全正确。我们可以计算一个日历周期内4800个月内第13个星期五的发生次数。正确的概率是count divid因为4800不是7的倍数,所以概率不会减少到1/7。

Datetime

日期时间对象,在R2014b的MATLAB中引入,是我们完成这项工作所需要的工具。

文件日期时间是可用的在这里,或者,在MATLAB中,使用命令

医生datetime

例如,这里是我写这篇文章的日期和时间。

d = datetime (“现在”
d=日期时间2020年3月13日21:17:57

我可以指定一个自定义显示格式,其中包括工作日

d = datetime (d,“格式”'eeee, MMMM d, yyyy HH:mm:ss'
d = datetime, 2020年3月13日星期五21:17:57

可用的显示格式包括对国际标准的支持,金宝appISO 8601

Vectorize

让我们从13号星期五开始吧。就像MATLAB中的大多数东西一样日期时间与向量。的语句

y = 2000;m = 1:4800;t = 13;v = datetime (y、m、t);

生成行向量4800日期时间每个月的13号。前几个和最后几个是

流(' % s 'v(1:4))流(“…\n”)流(' % s ', v (end-3:结束)
2000年1月13日2000年2月13日2000年3月13日2000年4月13日

声明

w =工作日(v);

产生4800个燧石的行向量,位于1(用于周日)和7(用于周六)之间。前几个和后几个是

流(“% 3 d”,w(1:4))fprintf(“……”)流(“% 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
概率=0.1431 0.1427 0.1427 0.1431 0.1425 0.1433 0.1425

将这些值与其平均值进行比较。

avg =意味着(概率)
平均值=0.1429

4个概率低于平均值,3个概率高于平均值。

分类

让我们用a将计数与一周的天数配对分类变量,在R2013b中引入。

猫=分类(w 1:7 weekday_names);总结(cat)
星期日星期一星期二星期三星期四星期五星期六687 685 685 687 684 688 684

当我们绘制直方图时,x轴上提供了适当的标签。13号星期五是赢家。

直方图(猫,“条形宽度”,0.5,“FaceColor”甘氨胆酸,颜色(2))(,“ylim”690年[680])标题(“工作日算400年”

"工作日计数,400年"应该在上面。

个月

下面是13号星期五的其他一些分布图。首先,在400年的历法期间更可能是13号星期五?按月份创建一个分类变量。

星期五13S=v(w=6);月份分类(月份(星期五13S),1:12,月份名称);

柱状图显示,本月、3月和其他五个月的第13个星期五的数量略高于平均水平,8月和10月最少。

直方图(cat_months“条形宽度”,0.5,“FaceColor”甘氨胆酸,颜色(3))(,“ylim”,[55 59],“ytick”,56:58)标题(“星期五,月”

" 13号星期五,月"应该在上面。

哪一个更有可能是13号星期五?看年份的最后一个数字。

年份=mod10(年份(星期五13s),10);数字=split(字符串(num2str(0:9));类别=cate(年份=mod10,0:9,数字);

柱状图显示,今年、2020年和任何其他始于10年的年份,都是最不可能出现倒霉周五的年份。

直方图(cat_mod10“条形宽度”,0.5,“FaceColor”甘氨胆酸,颜色(4))(,“ylim”(64 73),“ytick”65:72)标题(“黑色星期五,一年的最后一个数字”

“13号星期五,今年最后一位数字”应该在这里上方。

频率

每年有多少个不太可能的星期五?这是一个粗略的直方图,显示了整个400年的日历期间每年的数字。我们可以看到,似乎每年有一到三个,但更具体的分布细节是难以捉摸的。

年=年(星期五13s);绘图(2000:2399,历史(年,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年将有三个。这是十年来唯一的三次统计。

嘘(年(十年)、2020:0.5:2029“宽度”,0.5)套(get(gca,“孩子”),“FaceColor”甘氨胆酸,颜色(5))(,“xlim”(2019 2030),“克斯蒂克”,2020:2029,...“ylim”[0 4],“ytick”,1:3)标题(“2020-2029年,每年第13个星期五”

“2020-2029年,每年13号星期五”应在此处上方。

测验

如果你和我在一起这么久,也许你已经准备好做作业了。

  • 解释一下为什么每年至少要有一个13号星期五。
  • 解释为什么任何一年都不能超过3个。
  • 一年中有多少种不同的方式拥有三个?2026年就是一个例子。

现在我最好还是在13号星期五的时候把这篇文章发出去。

祝你好运




发布与MATLAB®R2019b

|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。