クイズ大陸



履歴 検索 最新 出題

No. 3≫ No.4 ≫No. 5
?ゲーデル 2010/03/09 10:28
【後半】
1901 〜 2100 年 で通用するやり方です。
(実は、400年周期で同じになるので、下の<やること>のBを多少いじることで
任意の年に対応できます。ただ、まぁ必要ないですよね (^o^)

<覚えて練習すること>
その1.
まず、【左手の指】に、次のように1月〜12月の初期位置を割り当てます。
この位置は、体で覚えます。上段が1月〜6月、下段が7月〜12月です。

月木日
火金
水土


<初期位置>
<tt>□□□  □□□  □□□  □□□  □□■  □□□
□□   ■□   ■□   □■   □□   □□ 
□■   □□   □□   □□   □□   ■□ 

□□□  ■□□  □■□  □□□  □□□  □■□
□■   □□   □□   □□   ■□   □□ 
□□   □□   □□   □■   □□   □□ </tt>

その2.
指カレンダーで、任意の位置から、+1,+2,+3,+4,+5,+6 した時に
移る位置を、体で覚えます。7*6=42パターン覚えなければなりませんが、
規則性があるので、そこまで苦労せずとも覚えられます。
(+2,+5は慣れるのに時間がかかりますが・・・)
これによって、プログラムで言う x = (x+y) % 7 が一瞬で出来るようになります。
これが計算速度の決め手になりますので、練習を積む必要があります。

その3.
次の操作を体で覚えます。
40の時、+1
20の時、+4
8の時、+3
4の時、+5
(*ちなみに、これらの数字は、(400/8)%7,(200/8)%7,(80/8)%7,(40/8)%7 です。)

その4.
↓のフローチャートを体で覚えます。

<やること>
ccyy年m月d日とする。
@mによって、初期位置 x に移動します。
Ad%7を暗算し、それを x に足します。
Bcc=19なら、1 を x に足します。
Cyy を、40未満になるまで40で引きながら、その都度 1 を x に足します。
Dyy を、20未満になるまで20で引きながら、その都度 4 を x に足します。
Eyy を、8未満になるまで8で引きながら、その都度 3 を x に足します。
Fyy を、4未満になるまで4で引きながら、その都度 5 を x に足します。
Gyy を x に足します。
HGの時点でyy=0 で、更にm=1or2なら 6 を x に足します。
編集