指カレンダーの使い方(復刻版改) 

説明

前記事に掲載した復刻版を少し変えたもの. 記憶量が減って使いやすくなった.

準備

日付について

曜日を知りたいグレゴリオ暦の1年1月1日以降の任意の日付に対して, 年の下4桁をY(ただし年の下4桁が0のときはY=10000),月をM,日をDとする. 下で1と3の場合にY年は平年. 2と4の場合にY年は閏年.

  1. Yが4で割り切れない.
  2. Yが4で割り切れて,かつ100で割り切れない.
  3. Yが100で割り切れて, かつ400で割り切れない.
  4. Yが400で割り切れる.
使う部分

左手の人差し指, 中指, 薬指にある関節で区切られた部分のうち7つを親指で押さえて数える。各位置には番号が付けられており, それぞれ人差し指の先から0, 1, 2, 中指の先から3, 4, 5, 薬指の先が6.
f:id:suzuki-kentaro:20161205195721j:plain

月の位置

1,2,3,...,12に対して, 指の位置0,3,3,6,1,4,6,2,5,0,3,5を月の位置と呼ぶ.
f:id:suzuki-kentaro:20161205195746j:plain

ルート1

指の位置について, 0,1,2,...,6,0,1,2,...という順番をルート1と呼ぶ.
f:id:suzuki-kentaro:20161205195812j:plain

ルート4

指の位置について, 0,4,1,5,2,6,3,0,4,1,...という順番をルート4と呼ぶ.
f:id:suzuki-kentaro:20161205195836j:plain

ルート5

指の位置について, 0,5,3,1,6,4,2,0,5,3,...という順番をルート5と呼ぶ.
f:id:suzuki-kentaro:20161205195852j:plain

答えの曜日

手順を実行して最後に押さえている位置が0,1,2,...,6のとき, 目的の曜日は月,火,水,...,日.
f:id:suzuki-kentaro:20161205195911j:plain

手順

(図は3556年9月14日)

Step1

対応する月の位置を押さえて, 1,2,3,...,Mと数える.
f:id:suzuki-kentaro:20161205195936j:plain

Step2

押さえている位置を移動せずに, 1と数える.
f:id:suzuki-kentaro:20161205195949j:plain

Step3

Dを超えない限り, 7ずつ足した数を数える. ただし押さえている位置は移動させない.
f:id:suzuki-kentaro:20161205200000j:plain

Step4

Dを超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.
f:id:suzuki-kentaro:20161205200017j:plain

Step5

押さえている位置を移動せずに, Y以下で最大の400で割ると1余る整数を数える.
f:id:suzuki-kentaro:20161205200032j:plain

Step6

Yを超えない限り, 100ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.
f:id:suzuki-kentaro:20161205200102j:plain

Step7

Yを超えない限り, 20ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート4に従って移動させる.
f:id:suzuki-kentaro:20161205200118j:plain

Step8

Yを超えない限り, 4ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.
f:id:suzuki-kentaro:20161205200130j:plain

Step9

Yを超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.
f:id:suzuki-kentaro:20161205200141j:plain

Step10

Y年が閏年で, かつ3≤Mの場合は, 押さえている位置をルート1に従って1回移動させる.
f:id:suzuki-kentaro:20161205200155j:plain

(答えは金曜日)

指カレンダーの使い方(復刻版) 

説明

2002年から2009年までに発表していたものを多少アレンジして再構成してみた。3月1日ではなく1月1日を基準にしていることがポイントで、該当年が閏年か平年かを判断する必要がある。

準備

日付について
曜日を知りたいグレゴリオ暦の1年1月1日以降の任意の日付に対して, 年の下4桁をY(ただし年の下4桁が0のときはY=10000),月をM,日をDとする. 下で1と3の場合にY年は平年. 2と4の場合にY年は閏年.

  1. Yが4で割り切れない.
  2. Yが4で割り切れて,かつ100で割り切れない.
  3. Yが100で割り切れて, かつ400で割り切れない.
  4. Yが400で割り切れる.
使う部分

左手の人差し指, 中指, 薬指にある関節で区切られた部分のうち7つを親指で押さえて数える。各位置には番号が付けられており, それぞれ人差し指の先から0, 1, 2, 中指の先から3, 4, 5, 薬指の先が6.
f:id:suzuki-kentaro:20160914151450j:plain

月の位置

1,2,3,...,12に対して, 指の位置0,3,3,6,1,4,6,2,5,0,3,5を平年の月の位置と呼ぶ.
f:id:suzuki-kentaro:20160914151514j:plain

同様に, 1,2,3,...,12に対して, 指の位置0,3,4,0,2,5,0,3,6,1,4,6を閏年の月の位置と呼ぶ.
f:id:suzuki-kentaro:20160914151527j:plain

ルート1

指の位置について, 0,1,2,...,6,0,1,2,...という順番をルート1と呼ぶ.
f:id:suzuki-kentaro:20160914151539j:plain

ルート4

指の位置について, 0,4,1,5,2,6,3,0,4,1,...という順番をルート4と呼ぶ.
f:id:suzuki-kentaro:20160914151550j:plain

ルート5

指の位置について, 0,5,3,1,6,4,2,0,5,3,...という順番をルート5と呼ぶ.
f:id:suzuki-kentaro:20160914151600j:plain

答えの曜日

手順を実行して最後に押さえている位置が0,1,2,...,6のとき, 目的の曜日は月,火,水,...,日.
f:id:suzuki-kentaro:20160914151612j:plain

手順

(図は6121年6月27日)

Step1.

Y年が平年の場合は, 対応する平年の月の位置を押さえて, 1,2,3,...,Mと数える.
同様に, Y年が閏年の場合は, 対応する閏年の月の位置を押さえて, 1,2,3,...,Mと数える.
f:id:suzuki-kentaro:20160914151633j:plain

Step2.

押さえている位置を移動せずに, 1と数える.
f:id:suzuki-kentaro:20160914151643j:plain

Step3.

Dを超えない限り, 7ずつ足した数を数える. ただし押さえている位置は移動させない.
f:id:suzuki-kentaro:20160914151657j:plain

Step4.

Dを超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.
f:id:suzuki-kentaro:20160914151708j:plain

Step5.

押さえている位置を移動せずに, Y以下で最大の400で割ると1余る整数を数える.
f:id:suzuki-kentaro:20160914151718j:plain

Step6.

Yを超えない限り, 100ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.
f:id:suzuki-kentaro:20160914151730j:plain

Step7.

Yを超えない限り, 20ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート4に従って移動させる.
f:id:suzuki-kentaro:20160914151741j:plain

Step8.

Yを超えない限り, 4ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.

Step9.

Yを超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.

(答えは金曜日)

指カレンダーの使い方(改) 

説明

前に紹介したものを少しアレンジして、1月から数える方式にした。

準備

日付について
曜日を知りたいグレゴリオ暦の0年3月1日以降の任意の日付に対して, 年の下4桁をY,月をM,日をDとする. M<3の場合は, Y'=Y-1(ただし, Y=0のときはY'=9999), M≥3の場合はY'=Yとする.

使う部分

左手の人差し指, 中指, 薬指にある関節で区切られた部分のうち7つを親指で押さえて数える。各部には番号が付けられており, それぞれ人差し指の先から0, 1, 2, 中指の先から3, 4, 5, 薬指の先が6.
f:id:suzuki-kentaro:20160419151733j:plain

月の位置

1,2,3,...,12に対して, 指の位置0,3,2,5,0,3,5,1,4,6,2,4を月の位置と呼ぶ.
f:id:suzuki-kentaro:20160419151810j:plain

ルート1

指の各部について, 0,1,2,...,6,0,1,2,...という順番をルート1と呼ぶ.
f:id:suzuki-kentaro:20160419151825j:plain

ルート4

指の各部について, 0,4,1,5,2,6,3,0,4,1,...という順番をルート4と呼ぶ.
f:id:suzuki-kentaro:20160419151835j:plain

ルート5

指の各部について, 0,5,3,1,6,4,2,0,5,3,...という順番をルート5と呼ぶ.
f:id:suzuki-kentaro:20160419151845j:plain

答えの曜日

手順を実行して最後に押さえている位置が0,1,2,...,6のとき, 目的の曜日は日,月,火,...,土.
f:id:suzuki-kentaro:20160419151903j:plain

手順

(図は4352年4月16日)

Step1.

対応する月の位置を押さえながら, 1,2,3,...,Mと数える.
f:id:suzuki-kentaro:20160419151915j:plain

Step2.

押さえている位置を移動せずに, D以下で最大の7の倍数を数える.
f:id:suzuki-kentaro:20160419151925j:plain

Step3.

Dを超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.
f:id:suzuki-kentaro:20160419151934j:plain

Step4.

押さえている位置を移動せずに, Y'以下で最大の400の倍数を数える.
f:id:suzuki-kentaro:20160419151944j:plain

Step5.

Y'を超えない限り, 100ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.
f:id:suzuki-kentaro:20160419151954j:plain

Step6.

Y'を超えない限り, 20ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート4に従って移動させる.
f:id:suzuki-kentaro:20160419152003j:plain

Step7.

Y'を超えない限り, 4ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート5に従って移動させる.
f:id:suzuki-kentaro:20160419152013j:plain

Step8.

Y'を超えない限り, 1ずつ足した数を数える. ただし数を数えるごとに押さえている位置はルート1に従って移動させる.

(答えは水曜日)

指カレンダーの証明

過去の成果を利用して前記事の指カレンダーを証明した。証明のコンセプトは参照先にある通りだが、重要なのは、

任意の整数y, ただしy \ge 0について, {q}_{i}, {r}_{i}, i = 1, 2, \dots , 5

y = 400{q}_{1} + {r}_{1}, 0 \le {r}_{1} < 400,
{r}_{1} = 100{q}_{2} + {r}_{2}, 0 \le {r}_{2} < 100,
{r}_{2} = 20{q}_{3} + {r}_{3}, 0 \le {r}_{3} < 20,
{r}_{3} = 4{q}_{4} + {r}_{4}, 0 \le {r}_{4} < 4,
{r}_{4} = 1{q}_{5} + {r}_{5}, 0 \le {r}_{5} < 1

である整数とすると,

146097{q}_{1} + 36524{q}_{2} + 7305{q}_{3} + 1461{q}_{4} + 365{q}_{5}
 = 365y + \lfloor \frac{y}{4} \rfloor - \lfloor \frac{y}{100} \rfloor + \lfloor \frac{y}{400} \rfloor

が成り立つ.

という点。Fairfield公式を経由しない簡易版にも取り組みたい。

YubiCalendarProof.pdf 直