13日の金曜日の謎

(初出:2017/08/31 最終更新:2018/05/22)


はじめに

私は迷信というものが嫌いです

13日の金曜日に特別な意味を持たせてしまうなんてナンセンス!だと思っています

だって、13日の金曜日なんて毎年必ずあるんですから、珍しくともなんともありません

なんて考えていたら、ふと疑問が沸いてきました

「13日の金曜日」に限らず、「○日の△曜日」は毎年全て揃っているんだろうか?

検証してみたら、面白い結果が出ました

暦の基礎

グレゴリオ暦ではカレンダーは本質的には14種類しか存在しない

1月1日の曜日
平年
閏年

従って、この14種類について「○日の△曜日」が存在するか否かを調べれば足りる

但し、「1日の△曜日」が全て存在する場合は、「1〜28日の△曜日」が全て存在することが明らか(逆もまた真)なため、28日〜31日についてのみ調べればよい

暦の(余計な)薀蓄

グレゴリオ暦では以下のように閏年が定められている

従って、暦は400年で一巡する

因みに、暦は400年で曜日も含めて一巡する(例えば、2001年1月1日(21世紀最初の日)は月曜日、2401年1月1日(25世紀最初の日)も月曜日)

そして、この400年の間に上記14種類のカレンダーは全て登場する

方法

Rubyで、上記14種類(平年・閏年/1月1日が日曜〜土曜)のカレンダーについて、「○日の△曜日」が存在しない条件を抽出するプログラムを作成した(表示)(ダウンロード

結果

Leap:  no    Day of Jan 1: sun    Date: 31    DOW: sat
Leap:  no    Day of Jan 1: mon    Date: 31    DOW: sun
Leap:  no    Day of Jan 1: tue    Date: 31    DOW: mon
Leap:  no    Day of Jan 1: wed    Date: 31    DOW: tue
Leap:  no    Day of Jan 1: thu    Date: 31    DOW: wed
Leap:  no    Day of Jan 1: fri    Date: 31    DOW: thu
Leap:  no    Day of Jan 1: sat    Date: 31    DOW: fri
Leap: yes    Day of Jan 1: sun    Date: 31    DOW: sun
Leap: yes    Day of Jan 1: mon    Date: 31    DOW: mon
Leap: yes    Day of Jan 1: tue    Date: 31    DOW: tue
Leap: yes    Day of Jan 1: wed    Date: 31    DOW: wed
Leap: yes    Day of Jan 1: thu    Date: 31    DOW: thu
Leap: yes    Day of Jan 1: fri    Date: 31    DOW: fri
Leap: yes    Day of Jan 1: sat    Date: 31    DOW: sat

結果の見方

Leap:閏年かどうか(no:平年、yes:閏年)

Day of Jan 1:1月1日の曜日

Date 及び DOW(Day of Week):その年に「Date日のDOW曜日」は存在しない

例えば1行目、日曜始まりの平年(例えば2017年)には、「31日の土曜日」は存在しない

或いは11行目、水曜始まりの閏年(例えば2020年)には、「31日の水曜日」は存在しない

考察

結果より先ず、全ての年において、31日以外の日付(1日〜30日)については特定の曜日が存在しない条件がない、ということが言える

つまり、「1〜30日の日〜土曜日」は毎年必ず存在する(即ち、13日の金曜日も毎年必ず存在する)

次に、31日について見てみると、平年・閏年問わず全ての年について、「31日の△曜日」が存在しない条件が必ず1つだけ存在している

つまり、いずれの年においても、31日については必ず1つだけ存在しない曜日がある(他の曜日は全て存在する)、ということが言える

2017/09/24 追記;2018/02/11 追記

加藤一郎氏より以下のご指摘をいただいた

(前略)
ちなみに、PT2Kさんが導いた曜日不在リストを眺めていたら、
面白いことに気付きました。

「平年の31日不在曜日は、その年の元日の曜日から1つだけ前にずれている」
例えば、
元日が(火)なら不在曜日は(月)、
元日が(金)なら不在曜日は(木)

そして、
「閏年の31日不在曜日は、その年の元日の曜日と等しい」

(前略)
よりスッキリとしたルール表現を思い付いたので、
記帳しておこうと思います。

(中略)

<新表現>
「平年の31日不在曜日は、前年の大晦日の曜日と等しい」
「閏年の31日不在曜日は、その年の元日の曜日と等しい」

まあ、本質的には何も変わらないんですけど・・・(汗)

でも、紅白歌合戦を見ながら、
「今日は木曜日かぁ〜、じゃあ来年の31日には木曜日はないんだな」
という感じで考えやすいかもです。

つまり、曜日を相対化すればカレンダーは平年と閏年の2種類しか存在しないため、「31日の△曜日」が存在しない曜日(「不在曜日」)を決定するルールは平年と閏年との2つがあればいい、ということである

14個のルールより2個のルールの方が当然美しい

感服し、ここに掲載する

2018/04/29 追記

更に考察する

平年の場合、1月1日が日曜日(例えば2017年)なら、2月1日は水曜日、3月1日も水曜日、4月1日は土曜日……となる

1月1日が月曜日(例えば2018年)なら、→木曜日→木曜日→日曜日……となる

つまり、2月1日の曜日は1月1日の曜日に対して3日進み、3月1日は2月1日に対して0日、4月1日は3月1日に対して3日……と、前の月からの曜日の進みは、平年と閏年とで一意に定まる

以下にその一覧を示す(但し、2〜27日はずっと同じパターンなので割愛してある)

平年

01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
01日 0 3 0 3 2 3 2 3 3 2 3 2
28日 0 3 0 3 2 3 2 3 3 2 3 2
29日 0 - 3 3 2 3 2 3 3 2 3 2
30日 0 - 3 3 2 3 2 3 3 2 3 2
31日 0 - 3 - 5 - 5 3 - 5 - 5

閏年

01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
01日 0 3 1 3 2 3 2 3 3 2 3 2
28日 0 3 1 3 2 3 2 3 3 2 3 2
29日 0 3 1 3 2 3 2 3 3 2 3 2
30日 0 - 4 3 2 3 2 3 3 2 3 2
31日 0 - 4 - 5 - 5 3 - 5 - 5

つまり、前記のとおり、曜日を相対化すればカレンダーは平年と閏年の2種類しか存在しない

曜日を相対化した各日付のカレンダー(1月1日の曜日を0とする)を以下に示す

平年

01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
01日 0 3 3 6 1 4 6 2 5 0 3 5
02日 1 4 4 0 2 5 0 3 6 1 4 6
27日 5 1 1 4 6 2 4 0 3 5 1 3
28日 6 2 2 5 0 3 5 1 4 6 2 4
29日 0 - 3 6 1 4 6 2 5 0 3 5
30日 1 - 4 0 2 5 0 3 6 1 4 6
31日 2 - 5 - 3 - 1 4 - 2 - 0

閏年

01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
01日 0 3 4 0 2 5 0 3 6 1 4 6
02日 1 4 5 1 3 6 1 4 0 2 5 0
27日 5 1 2 5 0 3 5 1 4 6 2 4
28日 6 2 3 6 1 4 6 2 5 0 3 5
29日 0 3 4 0 2 5 0 3 6 1 4 6
30日 1 - 5 1 3 6 1 4 0 2 5 0
31日 2 - 6 - 4 - 2 5 - 3 - 1

平年は、1〜28日で相対的に同じパターンで0〜6の数字がすべて揃っている(つまり、すべての曜日が存在する)

29日と30日は、相対的に同じパターン(但し、1〜28日のパターンとは別のもの)で、やはり0〜6が揃っている

31日は、6がないため、1月1日の前日(前の年の大晦日)と同じ曜日のみ存在しない

閏年は、1〜29日で相対的に同じパターンで0〜6の数字がすべて揃っている

30日は、1〜29日とは違うパターンで、やはり0〜6が揃っている

31日は、0がないため、1月1日と同じ曜日のみ存在しない

平年・閏年ともに、31日は7回しかないにも拘らず、上記の表で2がダブっているため、すべての曜日が揃うことはない

平年では、1月と10月のカレンダーが完全に一致する(つまり、1月31日と10月31日の曜日が一致するためダブっている)

閏年では、1月と7月のカレンダーが完全に一致する

まとめ

「○日の△曜日」が毎年存在するのか、という問いに対して、1〜30日と31日とで全く異なる結果を得た

「1〜30日の日〜土曜日」は毎年必ず全て存在する

「31日の△曜日」は毎年必ず1つだけ存在しない

2017/09/24 追記;2018/02/11 一部追記

存在しない曜日は、

である

2018/05/18 追記

別の言い方をすれば、存在しない曜日は

である

注記:勿論、12月30日でも3月11日でも5月13日でも、3月以降の条件に合う日付ならいずれでも構わないのだが、日本人にとっての覚えやすさから4月1日を採択したものである

謝辞

2018/05/22 追記

加藤一郎氏より以下のご投稿をいただきました

> 平年・閏年ともその年の4月1日の曜日と同じ
これが最終表現だと思います!
見事です。

初稿を取り敢えず発表して以来、加藤さんの献身的なご指摘を受けて、改稿を重ねてきました
二人三脚で進めてきた思索も、ひと先ず私としては結論に達しました
素晴らしい思索の推進を支援してくださった加藤さんに深甚の感謝を捧げます(2018/05/22)


以上


Valid HTML 4.01 Strict Valid CSS 2.1