# Friday the 13th

We all know that Friday the 13th is unlucky, but is it unlikely?

### Contents

#### Year 2012

I plan to post this article during the second week of July, 2012. The Friday in this week is a Friday the 13th, the third we've had so far this year. There were also ones in January and April. That seems like a lot. How often do we have three Friday the 13ths in the first seven months of a year? Well, it's not all that often. It usually happens only once every 28 years. The next time will be the year 2040. But sometimes, around the turn of centuries, it happens twice in 12 years. I mention all this to establish that our calendar does not have a simple periodic behavior. By the way, not to worry, after this week, it will be 14 months until the next Friday the 13th, in September, 2013.

#### Friday the 13th

Which brings us to the central topic of this post:

*What is the probability that the 13th of a month falls on a Friday?*

An obvious response is

*Easy question, the probability is 1/7.*

After all, there are seven days in a week and the 13th of a month is equally likely to fall on any one of them. Well, as we shall see, that's close, but not exactly right.

#### Calendars and Leap Years

Leap years make our calendar a nontrivial mathematical object. The leap year rule can be implemented by this anonymous function.

leapyear = @(y) mod(y,4)==0 & mod(y,100)~=0 | mod(y,400)==0;

This says that leap years happen every four years, except the turn of a century not divisible by 400 is skipped. Try a few year numbers.

y = [2012 2013 2000 2100]'; disp([y leapyear(y)])

2012 1 2013 0 2000 1 2100 0

So, this year is a leap year, next year is not, 2000 was a leap year, 2100 is not.

The leap year rule implies that our calendar has a period of 400 years. The calendar from 1601 to 2000 is being reused from 2001 to 2400. (Except the Gregorian calendar had not been invented in 1601, so I'm talking about the calendar that would have been used back then if they could have used today's calendar, but never mind.)

In a 400 year period, there are 97 leap years, 4800 months, 20871 weeks, and 146097 days. So the average number of days in a calendar year is not 365.25, but

```
format short
dpy = 365+97/400
```

dpy = 365.2425

We can compute the probability that the 13th of a month is a Friday by counting how many times that happens in 4800 months. The correct probability is then that count divided by 4800. Since 4800 is not divisible by 7, the probability does not reduce to 1/7.

#### Clock

MATLAB has a number of functions for doing computations involving calendars and dates. Many of these functions are in the MATLAB Toolbox, but some of the more specialized ones are in the Finance Toolbox. We encountered a few of these functions in my blog about biorhythms. The basis for all the functions is `clock`, which reads the system's clock and returns a 6-element vector

[year, month, date, hour, minute, seconds]

The first five elements have integer values. The sixth element has a fractional part whose accuracy depends upon the computer's internal clock. Here is the output generated when I `publish` this blog.

```
c = clock;
fprintf('clock = [ %4d %4d %5d %5d %5d %8.3f ]\n',c)
```

clock = [ 2012 7 5 11 53 14.258 ]

#### Datenum

The `datenum` function facilitates computations involving calendars by collapsing the `clock` vector into one value, the *serial date number*. This value is the number of days, and fractions of a day, since a reference time 20 centuries ago when `clock` would have been all zeros. Here are a couple of examples of the use of `datenum`. If you run this code yourself, your results should be different.

```
t = now;
fprintf('current_date_number = %10.3f\n',t)
date_string = datestr(t)
tday = fix(t)
tday_string = datestr(tday)
[week_day,week_day_name] = weekday(tday)
```

current_date_number = 735055.495 date_string = 05-Jul-2012 11:53:14 tday = 735055 tday_string = 05-Jul-2012 week_day = 5 week_day_name = Thu

#### Calendar number

The calendar for any year is determined by two pieces of information, the weekday of January 1st and whether or not the year is a leap year. So we need only 14 calendars. We could number all possible calendars, with the units digit specifying the starting week day and the tens digits indicating leap years. The 14 numbers would be `[1:7 11:17]`.

calendar_number = @(y) weekday(datenum(y,1,1)) + 10*leapyear(y);

If the calendar industry used this numbering scheme, here are the calendars you would need for the next 21 years.

y = (2012:2032)'; disp([y calendar_number(y)])

2012 11 2013 3 2014 4 2015 5 2016 16 2017 1 2018 2 2019 3 2020 14 2021 6 2022 7 2023 1 2024 12 2025 4 2026 5 2027 6 2028 17 2029 2 2030 3 2031 4 2032 15

#### Friday the 13th is likely

We are now ready to use the `weekday` function to count the number of times in a 400-year calendar cycle that the 13th of a month occurs on each of the various days of the week.

c = zeros(1,7); for y = 1601:2000 for m = 1:12 d = datenum([y,m,13]); w = weekday(d); c(w) = c(w) + 1; end end c

c = 687 685 685 687 684 688 684

A bar graph, with a line at a probability of 1/7, and week day axis labels.

bar(c) axis([0 8 680 690]) avg = 4800/7; line([0 8], [avg avg],'linewidth',4,'color','black') set(gca,'xticklabel',{'Su','M','Tu','W','Th','F','Sa'})

The probability for Friday is

p = c(6)/4800; fprintf('p = %8.6f\n',p) fprintf('1/7 = %8.6f\n',1/7)

p = 0.143333 1/7 = 0.142857

So, the 13th of a month is more likely to occur on Friday that any other day of the week. Only slightly more likely, I admit, but still ...

**类别:**- Fun

## 评论

要发表评论，请点击 此处 登录到您的 MathWorks 帐户或创建一个新帐户。