心の中の曜日を計算する

画像 脳をポンピングする方法はたくさんあります。 頭の中のクイックカウントのスキルをトレーニングするための「n-back」またはモバイルアプリケーションのタスク。 しかし、これらのタスクは現在の現実とは離婚しているので、実践的なスキルで脳を動かしたいと思います。



なんで? 結局のところ、あなたはすぐにガジェットを頼りにすることができます。 悲しいかな、まったく速くない、なぜなら ガジェットの検索とアクティブ化、アプリケーションの検索、日付の入力、結果の認識に時間がかかります。 そして、突然現れた並外れた能力を持つ友人/ガールフレンドを喜ばせることができます。 ところで、友人は、音声インターフェイスで永遠のカレンダーを使用することの便利さをすぐに実感します。



可能ですか? どういうわけか、彼らはコンピューターなしでやっていました。 「才能を探している」テレビ番組の1つで、3桁の数字の積を計算できる(あなたの子供をthreeしまない)訓練を受けた3歳の子供を見せました。 しかし、成人はもはや子供ではなく、彼らの脳は教育水準が低いという意味で部分的に結晶化されています。 したがって、できるだけ覚える必要がなく、既存のスキルを最大限に活用する必要があります。



アルゴリズムでは、多くの場合、計算量はメモリ量によって相殺されます。 つまり 使用可能なRAMが多いほど、必要な計算は少なくなります。 脳も同様に機能します-記憶すればするほど、解決策をより早く探します。 ルービックキューブを組み立てるためのいくつかの公式を思い出しました-数分で(長いトレーニングの後)収集します。 150個の式を思い出しました。数十秒で収集できます。 2013世界記録 -8.18秒 繰り返しますが、覚えていればいるほど、決定は早くなります。



アルゴリズム


年の最初の日のオフセット(曜日)(y)と月のオフセット(m)を取得する必要があります。 次に、y + m + dの合計を計算します(dは月の日)。7で割った余りを見つけます。曜日の数を取得します。



覚えておくべきこと


反射
一般に、28年すべての曜日をすべて覚えておけば十分です(頻度は、うるう年と曜日の期間の積に比例します)。 シーケンスは10kです。 これはかなりたくさんあります。



1つの追加操作を追加する場合、数行の数行のみを記憶すれば十分です。



m(月)= {6 2 2 5 0 3 5 1 4 6 2 4}、1月から12月



y(年)= {6 0 1 2 4 5 6 0 2 3 4 5 0 1 2 3 5 6 0 1 3 4 5 6 1 2 3 4}、1988年から2015年



例:2013年9月13日=(13 + 4 + 2)%7 = 5(金曜日)



月のオフセットは、特定の年のカレンダーから取得されます。 月のオフセットは、月の初めの灰色の四角の数に等しくなります。 たとえば、2006年2006ではありません。 今年のオフセットは0になります。



画像



それでも、バイアスをすべての年にわたって覚えてから、迅速なインデックス検索を行うことは、かなり難しい認知作業です。 別の方法があります-計算する。 年の最後の2桁(XXI世紀では+100)-Yを取得する必要があります。次に、最も近い過去のうるうYを見つけます。 dY = Y-Yを取る。 その後、年のオフセットを計算できます



y(Y)=(50-Yv / 2 + dY)



この式の欠点は、2004年以降はバイアスが負になり、20世紀の初めと中期では2桁になるため、計算が少し複雑になることです。 世紀ごとに異なる式を使用できます。この式では、年の下2桁のみが考慮されます。 たとえば、2012年と1912年は12です。



XX:(50-Yb / 2 + dY)%7または(8-Yb / 2%7 + dY)

XXI:(7-Y/ 2%7 + dY)



その結果、次の形式のディスプレイスメントテーブルを覚えやすくなります。



画像



年のオフセットは、次に小さいうるう年のオフセットと目的の年との差の合計から計算できます。 7桁は28よりも覚えやすいです。さらに、番号はステップ2で降順に並べられます(はい、はい、(0-2)は5になります。7で割った余りを覚えてください)。 数値(6、4、2、0、-2、-4、-6)を覚えておくことができますが、計算では同様の結果が得られます。 20の倍数は、中央の2000年以降の「騎士の動き」パターンに従って、3x3の斜めの正方形に配置されています。 月と年の変位の値は、2000年に変位が0になるように調整されます。隣接する行の間のステップは28年です。



たとえば、2014年の場合、オフセットはy(2014)= y(2012)+ 2 = 1 + 2 = 3になります。また、2014年9月13日のプログラマーの日は(y(2014)+ m(Sep)+ 13)=(3 + 4 + 13)= 20 => 20%7 = 6、つまり 土曜日。



数か月間、一連のオフセットを構成します。 値は季節ごとに覚えておくと便利です:春、夏、秋、冬。



画像



突然(?)、上から下へ、左から右へ順番に、数字が増加する行に並んでいることに注意してください(最初のカラーテーブル)。 7で除算した残りの部分(2番目のカラーテーブル)のみを記憶するか、テーブル全体を復元するために差異のみを記憶します(最後のテーブル)。 1から1を加算すると、3月2日、6月2日+ 1 = 3、9月3日+ 1 = 4などになります。 同じ値が同じ色でペイントされます。 すばやく検索するには、2番目のカラーテーブルが役立ちます。 列は春から始まる季節であることを忘れないでください。 これは非常に珍しいことです。 しかし、古代ローマでは、その年は3月に始まりました。 これは、月の名前にラテン数字で反映されます: セプテムビール/ オクトビール/ノベムビール/デセンビール-7/8/9/10、すなわち 2月はうるう日が追加された年の最後の12か月でした。



画像



1961年4月12日:(6 + 1 + 5 + 12)=(0 + 5 + 12)=> 17%7 = 3-水曜日。



重要な!!! プログラマーは、失われたユニットに永遠の問題を抱えています。 私たちの仕事はそれなしではありませんでした。 うるう年の1月と2月については、1を引く必要があります。



2012年2月14日=(y(2012)+ m(Feb)+14) -1 =(1 + 2 +14) -1 => 16%7 = 2、つまり 火曜日。



また、4で割った年がすべてうるう年になるわけではないことを覚えておく必要があります(例外-2100、1900、1800、...)。 したがって、まぶたの変位を考慮する必要があります。 ただし、最後の例外を考慮しなくても、XX世紀とXXI世紀の曜日を正しく操作できます。これは、ほとんどの日常的な場合に十分です。



少し最適化。


計算はストリーミングモードで実行できます。 通常、生年月日(またはその他の日付)は、1913年12月23日など、月の日から報告されます。 つまり 日付を報告するプロセスでは、希望の金額23 + m(dec)= 27または23%7 + m(dec)= 2 + 4 = 6を部分的に計算し、y(1913)= y(1912)+ 1 = 3について考えることができますその結果、レポート30%7 =(6 + 3)%7 = 2、火曜日。



多くの場合、現在の年の日付で操作する必要があります。 つまり あなたは常に年のオフセットを覚えているでしょう、 頻繁に使用すると、値はキャッシュされます。 たとえば、2014年の場合、オフセットは3です。



私たちは何を得ました。 テーブルに記入するためのルールは簡単で、おそらく覚えておくことができ、いつでもどこでもチートシートをプレイできます。 ただし、すばやくカウントするために、テーブル全体を記憶する方が簡単です。 結局のところ、レジの前での変化を計算するために加算と乗算のテーブルを復元しません。 これらのテーブルは、小学校で「ステッチ」されています。 テーブルを記憶する最も簡単な方法は、Week Brain Calc(Windows Phone)シミュレーターを使用することです。



短いトレーニングセッションの後、あなたはあなたの愛する人に彼らのユニークな能力を喜ばせることができます。



All Articles